MySQL结果后PHP Cookie不起作用?

时间:2013-09-25 08:00:18

标签: php setcookie

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

2 个答案:

答案 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(); }