-1

エラーが見つかりません。助けてもらえますか? クッキーでログインコードを試しています。前もって感謝します!私は自分のエラーを見ることができないようです。私が見逃している何かを誰かが見てくれることを望んでいました。エラーは 47 行目のどこかにありますが、そこにあるという意味ではないことはわかっています。

<?php
    if(isset($_POST['sent']) && $_POST['sent'] == "yes")
    {
        foreach($_POST as $field => $value)
        {
            if($value == "")
            {
                $blank_array[$field]= $value;
            }
            else
            {
                $good_data[$field]=strip_tags(trim($value));
            }
        }
    }

    if(@sizeof($blank_array) > 0)
    {
        $message = "<p style='color: red; margin-bottom: 0; font-weight: bold'> Error.</p>";
        extract($blank_array);
        extract($good_data);
        include("form_log.php");
        exit();
    }

    include("dbstuff.php");
    $cxn = mysqli_connect($host,$user,$password,$database) or die ("coulnt connect");
    $query = "SELECT first_name FROM customer WHERE user_name='$_POST[user_name]' AND       password=md5('$_POST[password]')";
    $result = mysqli_query($cxn,$query) or die ("couldnt query");
    $n_row = mysqli_num_rows($result);

    if($n_row < 1)
    {
        $message = "<p style='color: red; margin-bottom: 0; font-weight: bold'> Not found.     </p>";
        extract($_POST);
        include("form_log.php");
        exit();
    }
    else
    {
        $row=mysqli_fetch_assoc($result);
        setcookie("first_name",$row['first_name']);
        setcookie("auth","yes");
        header("Location: secret_page_cookie.php");
    }

    else
    {
        $user_name = "";
        $password = "";
        include("form_log.php");
    }
?>

インデントがなくて申し訳ありませんが、これはインデントが難しいです。2番目のelseはif(@sizeof)..

4

3 に答える 3

7
if ($n_row < 1) {
    $message = "<p style='color: red; margin-bottom: 0; font-weight: bold'> Not found.     </p>";
    extract($_POST);
    include("form_log.php");
    exit();
} else {
    $row=mysqli_fetch_assoc($result);
    setcookie("first_name",$row['first_name']);
    setcookie("auth","yes");
    header("Location: secret_page_cookie.php");
} else {
    $user_name = "";
    $password = "";
    include("form_log.php");
}

ここには 2 つのelseステートメントがあります。それがどのifステートメントに属しているかを把握するか、elseif条件に変換する必要があります。

于 2012-07-13T17:40:48.780 に答える
4

47 行目:

else
{
$user_name = "";
$password = "";
include("form_log.php");
}

this is the secondelseごとに 1 つしか存在できません。ifelse

于 2012-07-13T17:41:13.790 に答える
2

終わりに向かって 2 つの else ブロックがありますが、1 つのみにする必要があります。また、コードは SQL インジェクション攻撃に対して無防備です。連結によって SQL 文字列を作成しないでください。代わりに、パラメーター化されたクエリを使用してください。

于 2012-07-13T17:41:52.993 に答える