为什么我不能在此代码中设置cookie? 我没有输出或其他任何befor setcookie,我只想在数据库中找到后设置用户ID cookie,我可以在设置我的用户和密码存储在数据库后看到1,但我无法设置cookie
<?php
include('db_conector.php');
$InternalUser=$_GET['uid'];
$InternalMD5=$_GET['pid'];
$ActiveLink=$_GET['sended'];
$expire=time()+60*60*24*30;
$InternalUser= mysql_real_escape_string($InternalUser);
$InternalMD5= strtolower(mysql_real_escape_string(($InternalMD5)));
if ($ActiveLink == 'sended'){
$result = mysql_query ("SELECT * FROM userslist WHERE email = '$InternalUser' AND password = '$InternalMD5'");
$count = mysql_num_rows($result);
if($count > 0){
setcookie( "userlogin", "anonymous", $expire, "/" ) ;
echo "<h1 id='CHECK'>1</h1>";
}
else{
echo "<h1 id='CHECK'>0</h1>";
}
}
mysql_close;
?>
也是我的数据库连接器:
<?php
$con = mysql_connect("localhost", "mydb3", "2525")
or die(mysql_error());
mysql_select_db("register", $con)
or die(mysql_error());
?>
答案 0 :(得分:0)
您是否显示PHP警告? 您可能在包含的db_connector.php末尾有一个空白字符,该字符将发送到导航器。因此无法发送cookie(因为输出已经以该空白字符开始)。 在这种情况下,PHP会生成警告。
根据您的网络,您也可能遇到Cookie问题(例如,当您的网络服务器位于代理服务器后面时)。解决方案是在代理设置中,而不是在PHP代码中,请询问您的系统管理员;)。
答案 1 :(得分:0)
你可以使用jquery
echo '<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>';
echo '<script src="http://yourjavascript.com/12192541330/jquery-cookie.js"></script>';
echo '<script>$.cookie("__cookie_name__", __value__, {expires: __days__, path: \'/\'});</script>';
而不是
setcookie( "userlogin", "anonymous", $expire, "/" ) ;
如果它也不起作用,那么你需要检查你的(mysql_query&amp; mysql_num_rows)结果
if(!$query){ echo mysql_error(); }
if(mysql_num_rows($query) <= 0) { echo mysql_error(); }