<?php
//Login Module (Updated, isset now correct)
session_start();
if(!(isset($_SESSION['login']) && ($_SESSION['login'] != ""))) {
include('processor/ProcessLogout.php');
} else {
include('processor/ProcessLog.php');
}
?>
問題は...うまくいかないことです。私はそれを真のT_Tに検証させることができないようです. processor/assess_login.php に $_SESSION['login'] を設定しました。ProcessLog は、いくつかの div の単なるコンテナーであり、フォームは asssess_login に情報を渡します (これにより、ログインが成功したかどうかがわかります)。1 つはログイン フォームを表示し、もう 1 つはログアウト フォームを表示します。残念ながら、「ログイン成功」と表示されても... $_SESSION['login'] が '1' への変更を拒否するのはかなり心配です。(ログインが成功した場合は、assess_login でこれを行います。失敗した場合は、空の文字列に設定します。
私が知る限り、 session_start() はこれを覚えているはずですが、何らかの理由で...そうではありません。だから私のバグハンティングのヒント
コンパイル エラーがあり、! 実際には代替案が表示されるため、ビットが「機能している」ことがわかっているだけで、trueと評価されていません。
さて...assess_loginについては...
if ($db_found) {
$member_username = quote_smart($member_username, $db_handle);
$member_password = quote_smart($member_password, $db_handle);
$sql = "SELECT * FROM $tblname WHERE username=$member_username AND passphrase=$member_password";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
//Validate there is a user
if($result) {
if($num_rows == 1) {
session_start();
$_SESSION['login'] = '1';
header("location: ../login_success.php");
} else {
session_start();
$_SESSION['login'] = "";
header("location: ../login_fail.php");
}
} else {
$error_msg = "Error Validating User! -1";
}
mysql_close($db_handle);
}
念のため多少埋もれています。前に言ったように、ログインを維持することができず、明らかな何かが欠けていることを知っています。