<?
$conn = mysql_connect("localhost","root","");
$selectdb = mysql_select_db("test",$conn);
mysql_query("set names 'gbk'");//使用GBK编码
//载入数据库if (isset($_COOKIE['cookie'])!=='on'){?>
<form action="login.php" method="POST" onsubmit="return Login()" name="admin">
用户名:<input type="text" name="us" /><br />
密  码:<input type="password" name="pw" / size="21"><br />
              <input type="submit" name="enter" value="登陆" />
</form> <script type="text/javascript">
function Login()
{
if (admin.us.value="")
{
alert ("请输入用户名");
admin.us.focus();
return false;
}
if (admin.pw.value="")
{
alert ("请输入密码");
admin.ps.focus();
return false;
}
}
</script>
<?
}if (isset($_POST['enter'])){
if (isset($_POST['us'])=='admin'){
$pw = md5(isset($_POST['pw']));
if ($pw == '21232f297a57a5a743894a0e4a801fc3'){
setcookie("cookie","on");
} }
}if ($_COOKIE['cookie']=='on'){
echo $_POST['us'] . ",您已登录:<a href='?login=out'>下线</a> <a href='?login=cleardb'>清空留言</a>";
if (isset($_GET['login'])=='cleardb'){
$deletedb = "DELETE FROM `message`";
mysql_query($deletedb);
}
if (isset($_GET['login'])=='out'){
$_COOKIE['cookie'] = 'off';
}
}?>
我把isset删除掉了 直接改成if ($_COOKIE['cookie']!=='on')这样也不好使啊,情况照常
$conn = mysql_connect("localhost","root","");
$selectdb = mysql_select_db("test",$conn);
mysql_query("set names 'gbk'");//使用GBK编码
//载入数据库$login = false;if (isset($_COOKIE['cookie']) && $_COOKIE['cookie']=='on'){
$login = true;
} elseif (isset($_POST['enter'])){
if (isset($_POST['us']) && $_POST['us']=='admin'){
$pw = isset($_POST['pw']) ? md5($_POST['pw']) : '';
if ($pw == '21232f297a57a5a743894a0e4a801fc3'){
setcookie("cookie","on");
$login = true;
}
}
}if ($login){
echo $_POST['us'] . ",您已登录:<a href='?login=out'>下线</a> <a href='?login=cleardb'>清空留言</a>";
if (isset($_GET['login']) && $_GET['login'] =='cleardb'){
$deletedb = "DELETE FROM `message`";
mysql_query($deletedb);
}
if (isset($_GET['login']) && $_GET['login'] =='out'){
setcookie("cookie","off");
}
} else {
?>
<form action="login.php" method="POST" onsubmit="return Login()" name="admin">
用户名:<input type="text" name="us" /><br />
密  码:<input type="password" name="pw" / size="21"><br />
              <input type="submit" name="enter" value="登陆" />
</form> <script type="text/javascript">
function Login()
{
if (admin.us.value="")
{
alert ("请输入用户名");
admin.us.focus();
return false;
}
if (admin.pw.value="")
{
alert ("请输入密码");
admin.ps.focus();
return false;
}
}
</script>
<?
}
?>未经测试,你试试看
这时浏览器收到cookie才会在客户端设置cookie,
然后下一次提交到服务器的请求才会含cookie值, 服务端才能读到$_COOKIE的值一个简单的实例: 假设存为test.php
<?php
setcookie('test', $_POST['t']);
?>
<div>--<?=$_COOKIE['test'] ?>--</div>
<form method="post">
<input type="text" name="t" value="t1" /><br/>
<input type="submit" name="s" value="submit" />
</form>清除浏览器cookie后, http://localhost/test.php
点一次submit,注意cookie仍为0,
再点一次, 这次才为 --t1--
所以,你对提交表单的判断必须加上$_POST的判断才能对第一次提交正确
echo md5(isset($_POST['pw'])); //out: c4ca4238a0b923820dcc509a6f75849b
等价于 md5(1)
绝不会是 21232f297a57a5a743894a0e4a801fc3
$conn = mysql_connect("localhost","root","");
$selectdb = mysql_select_db("test",$conn);
mysql_query("set names 'gbk'");//使用GBK编码
//载入数据库if (isset($_POST['enter'])) {
if ($_POST['us']=='admin') {
$pw = md5($_POST['pw']);
if ($pw == md5('admin')) {
setcookie("cookie","on");
echo "登录成功";
exit;
}
}
die($_POST['us']."登录失败!");
} else if ($_COOKIE['cookie']=='on') {
echo $_POST['us'] . ",您已登录:<a href='?login=out'>下线</a> <a href='?login=cleardb'>清空留言</a>";
if (isset($_GET['login'])=='cleardb'){
$deletedb = "DELETE FROM `message`";
mysql_query($deletedb);
}
if (isset($_GET['login'])=='out'){
$_COOKIE['cookie'] = 'off';
}
} else {?>
<form action="login.php" method="POST" onsubmit="return Login()" name="admin">
用户名:<input type="text" name="us" value="" /><br />
密  码:<input type="password" name="pw" size="21" value=""><br />
<input type="submit" name="enter" value="登陆" />
</form> <script type="text/javascript">
function Login()
{
if (admin.us.value=="")
{
alert ("请输入用户名");
admin.us.focus();
return false;
}
if (admin.pw.value=="")
{
alert ("请输入密码");
admin.ps.focus();
return false;
}
}
</script>
<?
}
?>
以上代码我测试过,没问题,对你的代码改动的也很少。你代码的javascript部分注意:是if(admin.us.value=="")而不是if(admin.us.value=""),否则php得不到$_POST['us']和$_POST['pw']。
} else if ($_COOKIE['cookie']=='on') {
if ($_GET['login']=='cleardb'){
$deletedb = "DELETE FROM `message`";
mysql_query($deletedb);
}
if ($_GET['login']=='out'){
setcookie("cookie","off");
die("已下线");
}
echo $_POST['us'] . ",您已登录:<a href='?login=out'>下线</a> <a href='?login=cleardb'>清空留言</a>";
} else {
我决定去纹身,在我脸上纹俩等于号!!!!!眼大漏神
echo $_POST['us'] . ",您已登录:<a href='?login=out'>下线</a> <a href='?login=cleardb'>清空留言</a>";我提交后有您已登录,但前面没显示出来用户名