这验证cookie 怎么没用啊
cookie 验证
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) {
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 "<script>location.href='index_home.php';</script>";
exit;
}
这段登陆验证并写入cookie 输出cookie也是正常的
接着跳转到index_home.php这页面,该页面调用了验证页面admin_chk.php
代码如下:
session_start();
if(isset($_COOKIE["uname"]))
{
echo $_COOKIE["uname"];
}
else
{
echo "<script>alert('温馨提示:您的权限已经超时,请重新登录');location.href='index.php'</script>";
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 "<script>alert('温馨提示:您的权限已经超时,请重新登录');location.href='index.php'</script>";
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) {
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 "<script>location.href='index_home.php';</script>";
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 的当前目录。
谢谢
我也学习了

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Bekas perkhidmatan dan penyedia perkhidmatan Laravel adalah asas kepada seni bina. Artikel ini meneroka bekas perkhidmatan, butiran pembekal perkhidmatan, pendaftaran, dan menunjukkan penggunaan praktikal dengan contoh. Kita akan mulakan dengan ove

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.
