0

各位程序员好!

我构建的登录脚本有一个非常烦人的问题。它是一个脚本,通过 $.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

4

1 回答 1

1

我想我解决了我自己的问题。

用了大约 2 个小时的精彩调试工具,我实际上取得了进展。

//the infamous include:
include ("classes/config.php");

//the dir the check.php was in:
classes!!

//error:
Warning: include() [function.include]: Failed opening 'classes/classes/config.php' for inclusion 

奇怪的是,当它打开时没有显示 php 错误,但是错误在 POST/GET 请求中流回了 jquery 脚本。使用 Firebug,我终于发现包含 php 错误的 POST 请求作为 html 流式传输回 php 文件。

很高兴这是一个愚蠢的错误,感谢您的提示和技巧!

希望我没有浪费任何人的时间!

谢谢,

RJ

于 2012-06-07T22:49:39.733 回答