私はこの問題に困惑しています。非常に簡単なログイン画面。パスワードが一致すると、スクリプトは完全に動作し、main.phpにジャンプします。 unameまたはpswdが間違っていると、スクリプトはELSE節に落ちず、badlogin.phpに行きません。スクリプトは白い空白の画面でハングします。PHPスクリプトでIF文(ログインテスト)にELSE句が入力されない
助けがあれば助かります。 「($ RST =は、mysql_fetch_array($クエリ))しながら、」本当のことを証明することはありません、とwhileループが完全にスキップされるいかなる結果がクエリから返されていない場合があります
<?php
include("dbconnect.php");
$u_name = mysql_real_escape_string($_POST['uname']);
$p_word = mysql_real_escape_string($_POST['pword']);
# *** querying all records ***
$query = mysql_query("SELECT * FROM notes_users WHERE valid_password = '$p_word' && valid_username = '$u_name'");
while($rst = mysql_fetch_array($query)) {
if (($rst[valid_username] == $u_name) AND ($rst[valid_password] == $p_word)) {
session_start();
$_SESSION['login'] = "1";
header('Location: main.php') ;
} else {
session_start();
$_SESSION['login'] = '';
header('Location: badlogin.php') ;
}
}
?>
を、あなたはまだそれことを証明しました* elseブロックを入力する必要がありますか? –
'header( 'Location:...')'を呼んだ後に、必ず 'exit;'を使ってください。 – rid
また、意味的に(少なくとも私にとっては)より意味のある「die(ヘッダー(..));」です。 – jli