2012-01-26 9 views
1

私はPHP + jQuery AJAXを使用してユーザーを自分のサイトにログインさせています。 PHPがデータベースに接続し、jqueryがPHPファイルに接続し、実際にログインするまですべてが機能します。ユーザ名とパスワードを入力すると、エラーが返されます。私は1週間ほど前にこの作業をしていましたが、コードのクリーンアップをしていましたが、誤ってログインを行ったスクリプトを削除してしまいました。ここにPHPファイルがあります:JQuery AJAX + PHPログイン

<?php 
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"; 
} 
} 
?> 

PHPファイルが正しい文を返すと思います。データベースのパスワードはsha1で暗号化されています。 jqueryコードは次のとおりです。

  $('.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; 
    }); 

ありがとうございました!

編集:私は今何が間違っているのか分かりませんが、試しても何の問題もありません。私は皆さんが下で提案したすべてのものを修正しましたが、役に立たないものです。私のPHPファイルに何か間違っている可能性はありますか?

+1

なぜdownvotes?彼は正当な誤りがあり、それを見つけることができませんでしたか?少なくともあなた自身を説明してください。 –

答えて

7

これを試してみてください。

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

またはchanegデータのparams

データ: 'ユーザー名=' +名+ '&パスワード=' +パスワード

とは、使用& !!!!

+0

助けてくれてありがとう、しかしそれはまだdosn't仕事。 PHPには私が気づくべきであるエラーがありますか?再びありがとう –

+0

@JosephTorraca、あなたの '_POST'を' _GET'に変更し、クエリー文字列の有効なパラメータで直接ページにヒットし、返されるPHPエラーを確認してください。 –

3

あなたはタイプミスがあります

data: 'user='+username+'pass='+password, 

は次のようになります。

data: 'user='+username+'&pass='+password, 

またはあなたがそのようなミスをしないことを確認しますオラフの代替、@を使用します。

1

他の人は何を言っていますか?パラメータを分けるには '&'が必要です。やや関連ノートで

、あなたはこれらのパスワードを塩漬け検討する必要がありますしています...

+0

塩味のチップをありがとう。 –