首页 / PHP / 这验证cookie怎么没用啊
这验证cookie怎么没用啊
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了这验证cookie怎么没用啊,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5091字,纯文字阅读大概需要8分钟。
内容图文
![这验证cookie怎么没用啊](/upload/InfoBanner/zyjiaocheng/196/e28ba1d74b124b50a233734ef8b9e2b4.jpg)
$sql="select * from dh_admin where uname='$lname' and upass='$ckpass' and work=1";
$result=mysql_query($sql,$conn);
if(mysql_num_rows($result)<=0)
{
echo "账号信息有误";
exit;
}
else
{
$row=mysql_fetch_array($result);
$lid=$row["id"];
$ltime=date('y-m-d h:i:s',time());
$user_IP=@($_SERVER["HTTP_VIA"])?$_SERVER["HTTP_X_FORWARDED_FOR"]:$_SERVER["REMOTE_ADDR"];
$user_IP=($user_IP)?$user_IP:$_SERVER["REMOTE_ADDR"];
$lsql="INSERT INTO dh_alog(aid,logtime,logip) VALUES ('$lid','$ltime','$user_IP')";
if(!mysql_query($lsql,$conn))
{
die('Error: '.mysql_error());
}
setcookie("uname",$lname,time()+3600);
//echo $_COOKIE["uname"];
echo "";
exit;
}
这段登陆验证并写入cookie 输出cookie也是正常的
接着跳转到index_home.php这页面,该页面调用了验证页面admin_chk.php
代码如下:
session_start();
if(isset($_COOKIE["uname"]))
{
echo $_COOKIE["uname"];
}
else
{
echo "";
exit;
}
?>
这代码哪里写错了么?我这调试一登录就温馨提示:您的权限已经超时,请重新登录。
求高人指点,谢谢
回复讨论(解决方案)
代码没什么问题,你是怎么调试的。用多个浏览器测试下。
代码没什么问题,你是怎么调试的。用多个浏览器测试下。
谢谢啊 难道PHP还跟浏览器有关啊?
代码没什么问题,你是怎么调试的。用多个浏览器测试下。
我这换了IE 和 火狐 还是不行额
我直接在admin_chk.php 输出 $_COOKIE["uname"] 它报错说未定义。
怎么回事哦,我这刚学PHP就遇到这么奇怪的事啊
不知道你的 admin_chk.ph 代码是如何写的
cookie路径对么?
header("Content-Type: text/html; charset=gb2312");
session_start();
if(!isset($_COOKIE["uname"]))
{
echo "";
exit;
}
?>
这是admin_chk.php 文件
其中index_home.php 和 admin_chk.php 不是在一个目录下的
index_home.asp 引用:
include "inc/admin_chk.php"
?>
....
大神吃饭去了吗??
index_home.php 就是那点代码,前面还有不有?
文档布局
index_home.php
inc/admin_chk.php
inc/admin_chk.php 中有 setcookie("uname",$lname,time()+3600);
是这样吧?
那么
setcookie("uname",$lname,time()+3600);
应写作
setcookie("uname",$lname,time()+3600, '/');
index_home.php 就是那点代码,前面还有不有?
前面没了 后面就是一些html代码了
文档布局
index_home.php
inc/admin_chk.php
inc/admin_chk.php 中有 setcookie("uname",$lname,time()+3600);
是这样吧?
那么
setcookie("uname",$lname,time()+3600);
应写作
setcookie("uname",$lname,time()+3600, '/');
setcookie("uname",$lname,time()+3600); 这句是在登录验证login_ck.php的时候就写了的
登录界面是通过ajax 异步login_ck.php验证:
header("Content-Type: text/html; charset=gb2312");
session_start();
$lname=$_POST["Loname"];
if($lname=="")
{
echo "请输入用户名";
exit();
}
$lpass=$_POST["Lopass"];
if($lpass==""){
echo "请输入密码";
exit();
}
$lsx=$_POST["Losx"];
if($lsx=="")
{
echo "请输入密令";
exit();
}
if($lsx!="dhsystem")
{
echo "密令错误";
exit();
}
$lcode=strtolower($_POST["Locode"]);
if($lcode=="")
{
echo "请输入验证码";
exit();
}
if($lcode!=strtolower($_SESSION["randcode"]))
{
echo "验证码输入错误";
exit();
}
$ckpass=substr(md5($lpass),9,12);
$conn = mysql_connect("localhost","root","*******");
if(!$conn)
{
die('Could not connect: '.mysql_error());
}
mysql_select_db("dhbase",$conn);
$sql="select * from dh_admin where uname='$lname' and upass='$ckpass' and work=1";
$result=mysql_query($sql,$conn);
if(mysql_num_rows($result)<=0)
{
echo "账号信息有误";
exit;
}
else
{
$row=mysql_fetch_array($result);
$lid=$row["id"];
$ltime=date('y-m-d h:i:s',time());
$user_IP=@($_SERVER["HTTP_VIA"])?$_SERVER["HTTP_X_FORWARDED_FOR"]:$_SERVER["REMOTE_ADDR"];
$user_IP=($user_IP)?$user_IP:$_SERVER["REMOTE_ADDR"];
$lsql="INSERT INTO dh_alog(aid,logtime,logip) VALUES ('$lid','$ltime','$user_IP')";
if(!mysql_query($lsql,$conn))
{
die('Error: '.mysql_error());
}
setcookie("uname",$lname,time()+3600);
//echo $_COOKIE["uname"];
echo "";
exit;
}
mysql_close($conn);
?>
这个是login_ck.php的
你的登陆不是请求到 inc/admin_chk.php 的吗?
那么在 inc/admin_chk.php 中设置的 cookie 只在 inc 目录中有效
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
参数 path
说明 Cookie 在服务器端的有效路径。
如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。 默认值为设定 cookie 的当前目录。
搞到了 真是路径问题 我之前用asp的 PHP 这cookie还存在路径问题啊
谢谢啊 谢谢
你的登陆不是请求到 inc/admin_chk.php 的吗?
那么在 inc/admin_chk.php 中设置的 cookie 只在 inc 目录中有效
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
参数 path
说明 Cookie 在服务器端的有效路径。
如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。 默认值为设定 cookie 的当前目录。
谢谢
我也学习了
内容总结
以上是互联网集市为您收集整理的这验证cookie怎么没用啊全部内容,希望文章能够帮你解决这验证cookie怎么没用啊所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。