0

私はPHPが初めてで、ログインシステムを構築しようとしています。安全でないことは承知していますが、PHP の基礎を理解するための単なる大学のプロジェクトであるため、今のところ問題ありません。

テーブルにユーザー名とパスワードがあり、ユーザーが正しいユーザー名とパスワードの組み合わせを入力すると、Cookie を保存しようとしています。ユーザーがログインしている場合にのみアクセスできるページが必要です。

未定義のインデックス通知を受け取り続けています。この記事http://notesofgenius.com/how-fix-php-notice-undefined-index/から、 isset をどこかに追加する必要があることを認識していますが、コードのどこに配置すればよいかわかりません。mysql_real_escape_string で isset を使用すると、混乱します。

データベースに接続し、config.php でセッションを開始しました。コードは次のとおりです。

<?php

require("config.php");
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);   
$result = mysqli_query($con,"SELECT * FROM users
WHERE username='$username' AND password='$password'
"
    );
if($row = mysqli_fetch_array($result))
{
$_SESSION['user'] = 'Person';
header('Location: postarticle.php');
}
else{
echo "<p>Incorrect password</p>";
}
?>

ありがとう。これが以前に尋ねられた場合はお詫びします。確認しましたが、何も見つかりませんでした。

4

2 に答える 2

2

次のコードを使用できます。

require("config.php");
if(isset($_POST['username']) && isset($_POST['password'])){
  // your other code in here
}

isset()変数が設定されていて、null でないかどうかをチェックします。現在発生しているエラーは、おそらくusernameまたはpassword入力が空のときにログイン フォームが送信されているためです。

また、使用する場合は直前に$_SESSION追加する必要があります。session_start();$_SESSION['user'] = 'Person';

于 2013-05-21T11:50:21.373 に答える