0

別のサイトで、AJAX 経由で PHP スクリプトをロードするログイン スクリプトを使用しています。単に false または値の配列のいずれかである必要がある場合に、null 応答が返される理由がわかりません。

手動で値を php スクリプト (ハードコード) に入れると、機能します。変数がフォームから送信されていることをコンソールで確認できます。ただし、何も返されていません。誰かが私が欠けているものを見つけることができますか?

助けやアイデアをありがとう。

ログイン PHP

<?php 
$login = $_POST['login'];
$password = $_POST['password'];

require_once("DB.php");
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!"); 
mysql_select_db($db) or die ("Unable to select database!"); 

$query = "SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 
if (mysql_num_rows($result) > 0) { 
$output = "true";
     while(list($member_id, $firstname, $lastname, $login, $passwd, $City, $State, $bday, $approved, $organization, $school, $trainingdate, $Subscriber, $wscoordinator, $Position, $subdate, $enddate, $notice, $book, $trial)  = mysql_fetch_row($result)) { 
echo json_encode(array('memberid' => $member_id, 'firstname' => $firstname, lastname => $lastname, approved => $approved, subscriber => $Subscriber, position => $Position, school => $school, login => $login, book =>$book, ws => $wscoordinator, trial => $trial, enddate => $enddate));
}
} else {
$output = "false";
echo json_encode($output);
}


?>

AJAX、jQuery を使用。

$('#loginForm #loginButton').click(function(){
        var $form = $('#loginForm'),
    $inputs = $form.find("input"),
    serializedData = $form.serialize();
    var login = $('#login').text('');
    var password = $('#password').text('');
    $.ajax({
      type: 'POST',
      url: 'Scripts/php/login.php',
      data: serializedData,
      success: function(response){
        console.log("Response: "+response);
        if(response != "false") 
        {
        //window.location.href='toolstart.html';
        $.cookie('lastname', response.lastname, { expires: 365, path: '/' });
        } else {
        alert("Your email and password combination did not match.");
        }

        },      
  dataType: 'json'
});    

(はい、MD5 から移行する必要があることはわかっています。まだそこに到達していません。)

4

2 に答える 2

0

数日後、私はもう少し調査を行いました。私のクライアントが使用しているサーバーは、PHP 5.1 までしかサポートしておらず、json_encode は 5.1 でのみサポートされていることがわかりました。それを機能させるために、この素​​晴らしいスクリプトを見つけました。http://www.boutell.com/scripts/jsonwrapper.html

すべての助けをありがとう。

于 2012-07-08T22:31:43.323 に答える
0

as.text();に置き換えるだけで、テキスト入力タイプの空白の結果が得られます。実際の値が表示されます。第二に使用します。ああ...あなたの機能をチェックしてください:.val()text()val()var_dump($_POST); die;

$('#loginForm #loginButton').click(function(){
        var $form = $('#loginForm'),
    $inputs = $form.find("input"),
    serializedData = $form.serialize();
    var login = $('#login').text('');
    var password = $('#password').text('');
    $.ajax({
      type: 'POST',
      url: 'Scripts/php/login.php',
      data: serializedData,
      success: function(response){
        console.log("Response: "+response);
        if(response != "false") 
        {
        //window.location.href='toolstart.html';
        $.cookie('lastname', response.lastname, { expires: 365, path: '/' });
        } else {
        alert("Your email and password combination did not match.");
        }

        },      
  dataType: 'json'
});**});**

私が見つけたように、いくつかの中括弧がありません。var_dump($_POST);die;メッセージで応答してください。

于 2012-07-06T13:34:44.790 に答える