我进行了登录,设置了一个带有估算电子邮件地址值的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>
3 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
只是想指出,我遇到了setcookie无法正常工作的问题。当我进一步调查该文件时,它被编码为带有BOM的UTF-8。当我将其重新编码为UTF-8而没有BOM setcookie时,效果很好,因此在遇到我的第一个php标签之前就已编写了BOM。我猜想在php.ini文件中启用缓冲可能也会解决此问题。
某人最终可能会发现此信息有用。
绝地无双
TA贡献1946条经验 获得超4个赞
使用setcookie函数更新cookie时遇到另一个问题。
因此,我使用php序列化功能设置了由数组制成的cookie字符串。从现在开始,我无法更新该cookie-setcookie函数根本无法正常工作,wheater正在设置序列化字符串或任何其他简单字符串。
然后我用新的cookie密钥设置了另一个cookie,这次数据是用json_encode函数编码的。这次我能够设置cookie并更新它:-)
- 3 回答
- 0 关注
- 568 浏览
添加回答
举报
0/150
提交
取消