0

为什么我不能在这段代码中设置 cookie?在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());
?>
4

2 回答 2

0

您是否显示 PHP 警告?您可能在发送到导航器的包含的 db_connector.php 末尾有一个空白字符。因此无法发送 cookie(因为输出已经以该空白字符开始)。在这种情况下,PHP 会生成警告。

根据您的网络,您也可能遇到 cookie 问题(例如当您的网络服务器位于代理后面时)。然后解决方案是在代理设置中,而不是在 PHP 代码中,询问您的系统管理员;)。

于 2013-09-25T08:29:55.900 回答
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 & mysql_num_rows) 结果

if(!$query){ echo mysql_error(); }
if(mysql_num_rows($query) <= 0) { echo mysql_error(); }
于 2013-09-25T09:20:59.073 回答