您必须先设置cookie, 然后再 发送任何标头。
从手册:
setcookie()定义要与其他HTTP标头一起发送的cookie。与其他标头一样,必须在脚本的任何输出之前发送cookie(这是协议限制)。这要求您在所有输出(包括和标记以及任何空格)之前都先调用此函数。
这意味着如果您希望按原样使用此代码,则需要研究输出缓冲。
<?phpob_start();echo "Hellon";setcookie("cookiename", "cookiedata");ob_end_flush();?>根据的内容
global.php,这 可能
适合您。我所做的只是在
setcookie()调用之前删除了所有输出。如果
global.php其中包含任何空格或HTML输出,则将不起作用:
<?php include "global.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!"; } }?><h2>Login</h2><?php echo "We currently have <b>" . $usercount . "</b> members, <b>" . $onlinecount . "</b> of which are online. "; ?><br><br><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>


