Jquery AJAX PHP登录

我有一个使用jquery ajax和php代码的登录表单。 问题是始终返回错误而不是将我登录到系统中。 我花了好几天试图找到错误,但我不能。 如果我直接访问该网页,则该网页不会显示任何错误。 这曾经工作大约一个星期前,直到我不小心删除了jquery,现在我无法让它工作。 </ p>

以下是PHP代码:</ p>

  include('。conf.php'); 
$ user = $ _POST [' user'];
$ pass = $ _POST ['pass'];
$ result = mysql_query(“SELECT * FROM accountController WHERE username ='$ user'”);
while($ row = mysql_fetch_array($ result) ){
if(sha1($ user。$ pass)== $ row ['pword']){
setcookie('temp',$ row ['username']);
session_start();
$ _SESSION ['login'] = 1;
$ _SESSION ['uname'] = $ row ['username'];
echo“success”;
}
}
</ code> </ pre >

这里是Jquery AJAX代码:</ p>

  var username = $('#main_username')。val(); 
var password = $ ('#main_pword')。val();
$('。mainlogin')。submit(function(){
$ .ajax({
url:'log.php',
type:'POST ',
data:{
user:username,
pass:password
},
success:function(response){
if(response =='success'){
window.location.reload ();
} else {
$('。logerror')。fadeIn(250);
}
}
});
返回false;
});
</ code> </ pre> \ n

我如何检查从服务器返回的内容如空白或成功。 野生动物园有任何扩展吗? 谢谢!</ p>
</ div>

展开原文

原文

I have a login form using jquery ajax and a php code. The issue is that is always returns an error instead of logging me into the system. I have spent days trying to find the error but I can't. The webpage displays no errors if I visit it directly. This used to work about a week ago until I accidentally deleted the jquery and now I can't get it to work.

Here is the PHP code:

include('.conf.php');
$user = $_POST['user'];
$pass = $_POST['pass'];
$result = mysql_query("SELECT * FROM accountController WHERE username = '$user'");
while ($row = mysql_fetch_array($result)) {
    if (sha1($user.$pass) == $row['pword']) {
        setcookie('temp', $row['username']);
        session_start();
        $_SESSION['login'] = 1;
        $_SESSION['uname'] = $row['username'];
        echo "success";
    }
} 

and here is the Jquery AJAX code:

var username = $('#main_username').val();
var password = $('#main_pword').val();
    $('.mainlogin').submit(function() {
        $.ajax({
            url: 'log.php',
            type: 'POST',
            data: {
              user: username,
              pass: password
            },
            success: function(response) {
                if(response == 'success') {
                    window.location.reload();
                } else {
                    $('.logerror').fadeIn(250);
                }
            }
        });
        return false;
    });

How would I check to see what is being returned like blank or success from the server. Is there any extension for safari? Thanks!

2个回答



请将其放入。 它将在弹出窗口中提醒服务器的响应。</ p>

  success:function(response){
alert(response);
}
</ code> </ pre >

在PHP方面,尝试输出更多内容 - 在中添加} else {</ code>,如果</ code>语句返回一些有用的数据,例如< / p>

 } else {
print(“Post is:
”);
print_r($ _ POST);
print(“

MySQL给了我:
” );
print_r($ row);

}
</ code> </ pre>

请确保在工作完成后不要将其保留!</ p>

寻找:</ p>


  • 哈希是不同的</ li>
  • db字段不同</ li>
  • 由于某种原因,db字段为空白</ li>

  • POST数据错误/错误的字段名称</ li>
    </ ul>

    编辑:这是另一个问题:您的前四行应该是:</ p>

      $('。mainlogin')。submit(function(){
    var username = $('#main_username')。val();
    var password = $('#main_pword' ).val();
    $ .ajax({
    </ code> </ pre>

    您的代码在提交表单之前获取值 - 在加载时 - 当它们是 空白,因此将空字符串作为用户名和密码发送到服务器。</ p>
    </ div>

展开原文

原文

Put this in, instead. It will alert the server's response in a popup.

 success: function(response) {
     alert(response);
 }

On your PHP side, try outputting more stuff - add an }else{ to your if statement that returns some useful data, for example

 }else{
    print("Post is: 
");
    print_r($_POST);
    print("
MySQL gave me: 
");
    print_r($row); 
 }

Just make sure you don't leave it in once it's working!

Look for:

  • hash is different
  • db field is different
  • db fields are blank for some reason
  • POST data is wrong / wrong field names

Edit: Here's another issue: Your first four lines should actually be:

    $('.mainlogin').submit(function() {
        var username = $('#main_username').val();
        var password = $('#main_pword').val();
        $.ajax({

Your code as it is gets the values before the form is submitted - at load - when they are blank, and as a result is sending blank strings to the server as username and password.

dongtuo3530
dongtuo3530 让我们在聊天中继续讨论
8 年多之前 回复
duanjuelian4640
duanjuelian4640 是的,我确实改变了它。
8 年多之前 回复
doushi9444
doushi9444 它显示它正在发送正确的值。 它必须是我的PHP方面而不是jquery。
8 年多之前 回复
doushang8512
doushang8512 你是否在顶部更改了AJAX代码,以便$('。mainlogin')。submit(function(){在var username = ...之前?
8 年多之前 回复
doujia2021
doujia2021 print_r($ _ POST)去了print(“error”)的位置。
8 年多之前 回复
duandan5471
duandan5471 您可以使它返回print_r($ _ POST),这将打印它接收的每个POST值的数组。 这将告诉您表单没有发送正确的值(而不是您的PHP解释错误)
8 年多之前 回复
dtv7174
dtv7174 好吧,现在警报只是说错误。 我可以更具体一点吗? 我是PHP的新手。
8 年多之前 回复
dtt78245
dtt78245 另外,更改你的php,使你现有的if语句有一个} else {print(“error”); 所以你可以判断响应是否正在通过
8 年多之前 回复
douyou8047
douyou8047 是的,看看我的编辑
8 年多之前 回复
douzhao4071
douzhao4071 好的,谢谢你的反应如此之快。 我更改了它并添加了警报但它只显示了一个空白的模态窗口。 新主意?
8 年多之前 回复



在这里看一下我在这个答案中的代码:用户通过jQuery检查可用性 </ p>

您需要json编码您的响应,Firefox也有Firebug你 可以用来查看你的ajax帖子和响应,chrome和IE都有开发者工具</ p>

Safari也有开发工具: http://developer.apple.com/technologies/safari/developer-tools.html </ p>

检查控制台,看看你的AJAX </ p>
</ div>发生了什么

展开原文

原文

Take a look at the code i have in this answer here: user check availability with jQuery

You need to json encode your response, also Firefox has Firebug you can use to view your ajax post and response, chrome and IE both have developer tools

Safari also has dev tools: http://developer.apple.com/technologies/safari/developer-tools.html

Check the console to see what is happening with your AJAX

douji0108
douji0108 无论是否需要我的代码示例都可行,更大的问题是他应该使用一些开发工具
8 年多之前 回复
dongwei3712
dongwei3712 这不是必需的,实际上也无法解决他的问题。 他只是在寻找一种方法来查看返回的值 - 尝试将JSON添加到当前损坏的程序只会使问题复杂化。
8 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐