各位程序员好!
我构建的登录脚本有一个非常烦人的问题。它是一个脚本,通过 $.AJAX (jquery) 调用将用户名变量和密码变量从 HTML 表单发送到 check.php 文件。变量通过 JS 中的 keyUp 函数发送。诀窍是没有提交按钮,当变量与数据库匹配时,用户会自动登录。check.php 是具有多种方法的 OOP,当 vars 与 db 匹配时,php 会向 js 发送一个 json_encode。我想将脚本和设置文件分开。当我将数据库设置放在 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 数据出现在登录/检查 php 文件中。
对此有什么想法吗?
由于这个奇怪的问题,我感到头疼。
希望我犯了一个愚蠢的错误!
提前致谢!
RJ