-5

这是我的用户登录页面。用户输入登录详细信息后,我想存储 cookie 文件并将用户定向到主页。但是,我不断收到此错误,我已经尝试了所有可能的方法来解决它,并且我已经阅读了此处发布的其他问题,但没有解决我的问题......我在这里遗漏了什么吗?会是什么呢?

<?php //<--- line 4

错误信息:

Warning: Cannot modify header information - headers already sent by (output started at /www/99k.org/p/h/o/phoneclassmate/htdocs/login.php:4) in /www/99k.org/p/h/o/phoneclassmate/htdocs/login.php on line 6
4

2 回答 2

2

问题是您试图在HTML 代码之后发送 HTTP 标头 (Location:)。

您应该重构代码以避免这种情况;或者作为一种技巧,您可以使用输出缓冲来解决它,这将允许您在开始输出 HTML 内容后修改 HTTP 标头。恕我直言,这不是解决问题的好方法,但无论如何都很高兴知道;见 http://ca.php.net/manual/en/function.header.php#refsect1-function.header-notes

于 2013-05-18T16:30:58.087 回答
1

您需要附上您的 if 语句块,如下所示:

if($_POST['submit']) {
    $hour = time() + 3600;
    setcookie('username', $_POST['username'], $hour,'/');
    setcookie('password', $_POST['pass'], $hour,'/');
    header("Location: tutorhomepage.php");
}

此外,您需要在上述段之后移动连接等部分。

<?php

if($_POST['submit']){
    $hour = time() + 3600;
    setcookie('username', $_POST['username'], $hour,'/');
    setcookie('password', $_POST['pass'], $hour,'/');
    header("Location: tutorhomepage.php");
}
//------ server and mysql connection
$connection = mysql_connect('mywebsite', 'username', 'password') or die('Unable to connect');
mysql_select_db('myDB') or die('unbable to select DB');
//------log in cookie check
if (isset($_COOKIE['username'])) {
    $username = $_COOKIE['username'];
    $pass = $_COOKIE['password'];
    $check = mysql_query("SELECT * FROM tutors WHERE username = '$username'") or die(mysql_error());
    while ($info = mysql_fetch_row($check)) {
        if ($pass != $info[1]) {    
        } else {
            header("Location: /tutorhomepage.php");
        }
    }
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Login</title>
    </head>    
    <body><?php
//------- if form is submitted
if (isset($_POST['submit'])) {
    // check if the user enetered login details
    if (!$_POST['username'] | !$_POST['pass']) {
        die('You must enter the required data.');
    }
// and so on
于 2013-05-18T16:25:01.263 回答