こんにちは仲間のプログラマー!
作成したログイン スクリプトに非常に厄介な問題があります。これは、check.php ファイルへの $.AJAX (jquery) 呼び出しを使用して HTML フォームからユーザー名変数とパスワード変数を送信するスクリプトです。変数は、JS の keyUp 関数で送信されます。トリックは、送信ボタンがなく、変数がデータベースと一致するとユーザーが自動的にログインすることです。check.php は複数のメソッドを持つ OOP であり、変数がデータベースと一致すると、php は json_encode を js に送信します。スクリプトと設定ファイルを分けておきたい。データベース設定をcheck.phpファイルに入れると、スクリプトが機能します。上部にインクルードを付けて外部からロードしようとすると、スクリプトが機能しません。
JS:
$("#wachtwoord, #gebruikersnaam").keyup(function(){
passnum = $("#wachtwoord").val();
usernum = $("#gebruikersnaam").val();
if(passnum.length > 2 && usernum.length > 2) {
$.ajax({
type: "POST",
url: "classes/check.php",
dataType: 'json',
data: "gebruikersnaam="+usernum+"&wachtwoord="+passnum,
success: function(check){
if(check.login == 'true') {
Do Stuff!
PHP:
(other methods and other unnecessary stuff above these lines of code...)
public function check(){
if ($_POST){
$u = $_POST['gebruikersnaam'];
$u = strtolower($u);
$u = trim($u);
$p = $_POST['wachtwoord'];
mysql_connect(host, user, pw);
mysql_select_db(db);
$gebruiker = mysql_real_escape_string($u);
$wachtwoord = mysql_real_escape_string($p);
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '".$gebruiker."' AND wachtwoord = '".$wachtwoord."'");
if(mysql_num_rows($query))
{
$this->validate();
}
}
}
public function validate(){
$return['login'] = "true";
echo json_encode($return);
この形式のスクリプトが機能するのは特に奇妙ですが、ファイルをインクルードすると、json が JS に返されません。複数のことを試しましたが、何も役に立たないようです。空の php ファイルを含めても、スクリプトが動作しなくなります。問題は、すべての構成データを別のファイルにロードしたいのですが、my_sql データを login/check php ファイルに存在させたくないということです。
これについて何か考えはありますか?
この奇妙な問題のせいで、私はひどい頭痛に悩まされています。
私が愚かな間違いを犯していることを願っています!
前もって感謝します!
RJ