Netbeans を使用して PHP で登録/ログイン フォームを作成しています。これを実装するために、ログイン、登録、およびデータベース接続機能を scripts.php ファイルに入れ、インクルード コールを介してロードします。
さて、私のログイン機能はこれを使用します
$username = mysql_real_escape_string($_POST['username']);
$password = sha1(mysql_real_escape_string($_POST['password']));
$query = sprintf("SELECT * FROM users WHERE username='%s' AND password='%s'", $username, $password);
$link = connectDB();
$results = mysqli_query($link, $query);
データベースに接続して結果を取得します。検証は後で行われます。
私の登録ロジックでは、ほぼ同じものを使用しています。
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
//check if user name and password match conditions
$link = connectDB();
$query = "SELECT * FROM users WHERE username = '" . $username . "'";
$results = mysqli_query($link, $query);
登録ページは正常に読み込まれますが、ログイン ページには、ログイン機能に未定義のインデックス「username」があることを示すエラー テキストが出力されます。これは、ページが読み込まれるときに発生し、関数は呼び出されていません。
しかし、登録機能ではほぼ同じレイアウトでエラーにはなりません。
なぜこれが起こっているのですか?
編集
問題が見つかりました。
を使用してデータベース接続を開いていましmysqli_connect
たが、mysql-real_escape_string
関数を使用していました。この 2 つは互換性がなく、追加するとi
まったく別物になります。