-2

これが以前に何度も投稿されたことは知っていますが、まだ問題があります。

Web サイトにログオンしているときに、セッションを開始したいと考えています。セッションを開始すると、このエラーが発生します。

警告: session_start() [function.session-start]: セッション Cookie を送信できません - /home1/gretar/public_html/login.php の (/home1/gretar/public_html/login.php:27 で開始された出力) によって既に送信されたヘッダー30行目

警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーは既に送信されています (出力は /home1/gretar/public_html/login.php:27 で開始) /home1/gretar/public_html/login.php 30行目

だから、これは私のコードがどのように見えるかです

<?php
include('mysql_connect.php');

if($_SERVER['REQUEST_METHOD'] == 'POST') {

$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string(md5($_POST['password']));
$verified = mysql_real_escape_string($_POST['verified']);


$query = "SELECT * FROM members WHERE username='$username' AND password='$password'";
mysql_query("SELECT verified FROM members WHERE username='$username'");

$sql = mysql_query("SELECT verified FROM members WHERE username='$username'");
while($row = mysql_fetch_array($sql)){

$verified = $row["verified"];   
};
$result = mysql_query($query);
$query_rows = mysql_num_rows($result);


if($query_rows > 0) {
    if($verified == 1) {
    echo("User Verified");
    } else if($verified == 0) {
    echo("User not verified");
    }
        echo ("Succesfull login!");
session_start();
$_SESSION['login'] = "1";

    }else{
echo("Bad login!");
    }
}
?>
<html>
    <head> 
    <title>Login</title>
    </head>
        <body>
        <form action="login.php" method="post"/>
        Username: <input type="text" name="username"/><br>
        Password <input type="password" name="password"/> <br>
        <input type ="submit" value="Login!"/>

        </body>
</html>

この答えは本当に役に立ちました。

4

2 に答える 2

0

最初にエコーする前に Cookie やその他のヘッダーを設定する以外に、出力バッファーを使用することもできます。出力バッファを使用すると、印刷する前に出力をバッファリングして、PHP が順序を正しく指定できるようになります。HTTP プロトコルでは、ヘッダーが最初に来て、次に 2 つのキャリッジ リターン、そしてコンテンツが続きます。

http://php.net/manual/en/function.ob-start.php/

于 2013-06-16T19:42:05.577 に答える