PHP Cookie 在 MySQL 结果后不起作用


PHP Cookie does not work after MySQL result?

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

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

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

你可以使用 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(); }