2

動作方法: Index.php は保護されたページです。これには、セッションが良好かどうかをチェックする check.php が含まれています。そうでない場合は、ログインしていません -> ログオフし、セッションを削除します。しかし、機能しません。ログインしていないかのように、常にログオフします...

index.php

include ‘check.php’;
echo "logged in";

check.php

session_start();
if($_SESSION[‘login’] != ‘good’) {
unset($_SESSION[‘login’]);
unset($_SESSION[‘name’]);
header(‘Location: login.php?logoff’);
exit();
} 

ログイン.php

if(isset($_POST[‘login’])) {
$gb = array();
$gb[‘user1’] = ‘pass1’;
$gb[‘user2’] = ‘pass2’;
if(isset($gb[$_POST[‘username’]]) && $gb[$_POST[‘username’]] == $_POST[‘password’])
{ 
$_SESSION[‘login’] = ‘good’;
$_SESSION[‘name’] = $_POST[‘name’];

header("Location: index.php");
} else {

header("Location: login.php?wrongpass");

}

} else { ?>
Login Form
<?php } ?>

誰かが私を助けてくれることを願っています!

4

8 に答える 8

4

login.php でセッションを開始したことを確認する必要があります。

于 2012-10-10T12:32:10.900 に答える
2

すべてのページの上部に session_start() が必要です。ログインページのセッション開始を示していません。

(私がタイピングできないことを証明してくれたダニーに感謝します)

于 2012-10-10T12:30:48.793 に答える
2

session_start();全ページ入れます

于 2012-10-10T12:32:07.030 に答える
1
if($count==1){
    session_start();    
    $_SESSION['Username'] = $UserName;
    $_SESSION['Password'] = $password;
    UpdateOnlineChecker($Session);
    header( "Location: http://". strip_tags( $_SERVER ['HTTP_HOST'] ) ."/newHolo/" );
    exit;
}
else {
    echo "Wrong Username or Password";
}

私のコードを見てください。ステートメントが真かどうかをチェックします(私にとっては、実行するクエリステートメントを含む行が1つある場合)。次に、セッションを開始し、基本的にグローバルセッション変数を定義し、データベースにクエリを送信してセッションを更新し、参照します。

session_start() がありません。if true ブロックで。

于 2012-10-10T12:41:47.077 に答える
1

コードがある index.php などのアクション ドキュメントに使用します。

session_start();
if(isset($_POST['login']) && isset($_POST['password'])){
   // login
   header('Location: (here is some page)');
}
if(!isset($_SESSION['user']){
  // @todo some action
} else {
  require_once('login.php');
}

if(isset($_GET['logout'])){
   unset($_SESSION['user']);
   header('Location: (here is some page)');
}
于 2012-10-10T13:35:36.443 に答える
1

register_globalsphp.iniでオンになっていることを確認してください

于 2012-10-10T12:32:49.557 に答える
1

セッション変数セッションを使用するページを最初に確認し、セッションが開始されていない場合は開始します。

これはphpファイルの最初の行です。

セッション チェックのコードは次のとおりです。

if(!session_id())
{
    session_start();
}
于 2012-10-10T12:36:45.987 に答える