PHP-setcookie(); 不工作

我进行了登录,设置了一个带有估算电子邮件地址值的cookie,因此在global.php文件中,它使用以下命令存储用户数据数组:


$email = $_COOKIE["PeopleHub"];

$getuserdata = mysqli_query($con, "SELECT * FROM Earth WHERE email='$email'");

$userdata = mysqli_fetch_array($getuserdata, MYSQLI_ASSOC);

Cookie尚未设置,我知道这一点,因为我做了一个测试文件:


echo $_COOKIE["PeopleHub"];

它只是做了一个空白页。


登录代码(设置cookie的位置):


<?php 

include "global.php";    

?>

<h2>Login</h2>

<?php 

    echo "We currently have <b>" . $usercount . "</b> members, <b>" . $onlinecount . "</b> of which are online. "; 

?>

<br>

<br>

<?php 

    if(isset($_POST["email"])){ 

        $email = $_POST["email"];

        $password = sha1($_POST["password"]);

        $check = mysqli_query($con, "SELECT * FROM Earth WHERE `email`='$email' AND `password`='$password'");

        $check = mysqli_num_rows($check);

        if($check == 1){

        setcookie("PeopleHub", $email, 0, '/');

        echo "We logged you in!";

        }

        else { 

            echo "We couldn't log you in!";

        }

    }

?>

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">

    Email <input name="email" placeholder="Email Address" required="" type="text"><br>

    Password <input name="password" placeholder="Password" required="" type="password"><br>

    <input type="reset" value="Start Over">

    <input type="submit" value="Login">

</form>


白衣染霜花
浏览 535回答 3
3回答

元芳怎么了

只是想指出,我遇到了setcookie无法正常工作的问题。当我进一步调查该文件时,它被编码为带有BOM的UTF-8。当我将其重新编码为UTF-8而没有BOM setcookie时,效果很好,因此在遇到我的第一个php标签之前就已编写了BOM。我猜想在php.ini文件中启用缓冲可能也会解决此问题。某人最终可能会发现此信息有用。

绝地无双

使用setcookie函数更新cookie时遇到另一个问题。因此,我使用php序列化功能设置了由数组制成的cookie字符串。从现在开始,我无法更新该cookie-setcookie函数根本无法正常工作,wheater正在设置序列化字符串或任何其他简单字符串。然后我用新的cookie密钥设置了另一个cookie,这次数据是用json_encode函数编码的。这次我能够设置cookie并更新它:-)
打开App,查看更多内容
随时随地看视频慕课网APP