私はAJAXとPHPを初めて使っています。私は、IDとパスワードを持つログインフォームでindex.phpページを作成しようとしています。 私はIDフィールドの入力文字のうちの特定の番号の後にパスフィールドに移動するスクリプトを使用しています。
jQuery(function ($) {
$('#trans2').on('keyup', function() {
if (this.value.length >= this.maxLength)
{
var inputs = $(this).closest('form').find(':input');
var id_gbl = this.value;
request = createRequest();
if (request == null)
alert("Unable to create request");
else {
var url = "checkName.php?id=" + id_gbl;
request.open("GET", url, true);
request.send(null);
}
inputs.eq(inputs.index(this) + 1).focus();
alert("Done");
}
});
});
ここcheckName.phpです:
<?php
session_start();
$_SESSION['user_glb'] =$_GET['id'];
?>
そしてここでは、フォームを処理conn.phpです:
<?php
include("inc/connect.inc.php");
function SignIn() {
global $con;
session_start(); //starting the session for user profile page
$temp = $_SESSION["user_glb"];
echo $temp;
if (!empty($_POST['user'])) { //checking the 'user' name which is from Sign-In.html, is it empty or have some text
$query = mysqli_query($con, "SELECT * FROM users where id = '$temp' AND password = '$_POST[password]'") or die(mysqli_error($con));
$row = mysqli_fetch_array($query) or die(mysqli_error($con));
if (!empty($row['id']) AND ! empty($row['password'])) {
header("location:home.php");
$_SESSION['id'] = $row['id'];
echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";
} else {
echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
}
}
}
if (isset($_POST['submit'])) {
SignIn();
} else {
echo "not";
}
mysqli_close($con);
?>
コードの問題は、それが関係なく、私がやろうものを、与えないということです。 (!)
お知らせ:未定義のインデックス:Cでuser_glb:\ wamp64 WWW \ \ phprn \ conn.phpセッションが定義されている場合checkName.phpの中へライン7 ERROR
したがって、グローバルスコープには '$ user_glb'変数はありません。インクルードで定義されていない限り、関数スコープ内でのみその変数を定義すると意味があります。あなたは何をしようとしているのですか?グローバルは物事を複雑にするだけであることに注意してください。あなたが定義したもの(そして変更されたもの)が明確になるように、関数をパラメータとして関数に送るべきです。 – jeroen
@jeroenあなたの提案に感謝します。しかし、funの中の$ user_glbはテストのためだけにあります。元の$ user_glbはcheckName.phpにあります。 IDを$ GLOBALまたは$ _SESSIONに保存し、それをconn.phpで接続するために使用します。再度、感謝します 。 – dEv
リクエスト間で永続化する必要がある場合は、セッションで保存します。それ以外の場合は、引数として関数に渡します。 –