3

以下のコードを参照してください。私は最後の 5 時間以来、このコードと戦っていました。なぜ isset() が条件を false として評価するのかを知るために、値が正確に投稿されたものである場合に投稿します。行番号のコメントを外すと。- 4,5,6,7,8 行番号から残りのコードを配置します。10 ~ 28 POSTED 値が表示されます。誰でもガイダンスや提案でこれを手伝うことができますか? 感謝いたします。

<?php
include 'dbconnection.php';
include 'functions.php';

// var_dump($_POST); what happens when you uncomment this line?

//sec_session_start();
 //  $email = $_POST['logemail'];
 //  $password = $_POST['p'];
//  echo $password;
//  echo $email;
 // Our custom secure way of starting a php session. 

if(isset($_POST['logemail'], $_POST['p'])) { 
   $email = $_POST['logemail'];
   $password = $_POST['p']; // The hashed password.
   if(login($email, $password, $mysqli) === true) {
      // Login success
      //$url = 'mwq';
    //echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';  
    echo $password;
    echo $email;

   } else {
      // Login failed
      header('Location: login.php?error=1');
   }
} else { 
   // The correct POST variables were not sent to this page.
   echo 'Invalid Request Data Not POSTED';
}
?>
4

1 に答える 1

0

フォームを見なければ、何が起こるかを理論化することしかできません。

  1. 白紙の状態で開始し、フォームが表示され、ユーザー名とパスワードを入力して送信します
  2. コードは条件を渡し、ログインを実行します
  3. login(...) !== trueなんらかの理由 (間違ったパスワードまたはコードのバグ)の結果
  4. ページが にリダイレクトされlogin.php?error=1ます。

現在、$_POSTは空で、$_REQUESTが含まれていますarray('error' => 1)。おそらく、login.phpはそれ自体にリダイレクトするのではなく、フォームを表示するページにリダイレクトする必要があります。

于 2012-10-05T08:19:57.913 に答える