0

私はphpを初めて使用し、ログインスクリプトの作成に問題があります。コードの最初の部分では、ログインしている人に属する正しいIDを見つけて、$ _SESSION['id']に正しく設定できます。次に、スクリプトはインデックスにリダイレクトしますが、ここでは、IDがセッションに設定されていないというエラーが表示されます。

注意:未定義のインデックス:11行目のC:\ xampp \ htdocs \ gym \ v1 \ content \ body\panel.phpのID

$sql="SELECT id FROM user WHERE email='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){
    session_regenerate_id(); //Regenerate session ID to prevent session fixation attacks
    $member = mysql_fetch_assoc($result);
    $_SESSION['id'] = $member['id'];
    session_write_close();
    header("location: ../index.php?page=2");
    exit();
}
else {
    header("Location: ../index.php?page=1");
    exit();
}
?>

session_start();
echo 'session id:' . $_SESSION['id'];
if(!isset($_SESSION['id']) || (trim($_SESSION['id']) == '')) {
    echo 'error not session id set';
    exit();
}
$sql="SELECT * FROM user WHERE id='" . $_SESSION['id'] . "'";
$result=mysql_query($sql);

$member = mysql_fetch_assoc($result);
$mail = $member['emails'];

echo '<h1>Welcome!'. $mail  . ' </h1>';

前もって感謝します

4

1 に答える 1

3

ログインスクリプトでは、session_start()を設定する前に電話をかけることはありません$_SESSION['id']

また、それはあなたの質問に答えるのに役立たないかもしれませんが、あなたはmysql_*関数の使用をやめるべきです。それらは非推奨になっています。代わりに、PDO(PHP 5.1以降でサポート)またはmysqli(PHP 4.1以降でサポート)を使用してください。どちらを使用すればよいかわからない場合は、この記事をお読みください

于 2012-08-16T13:13:58.060 に答える