0

繰り返しますが、おそらく皆さんにとって簡単なものがありますが、私は得ています

syntax error <?php // login.php line one.

それから私が得るjavascriptで

ReferenceError: ajax is not defined 
ajax.onreadyState = function(){  

私はそれを長い間見てきましたが、それを理解することはできません。私が入れなかったばかげたものであることは知っていますが、私の人生ではわかりません。あなたが私がまったく新しいとは言えないなら、笑。

HTML

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Login</title>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
</head>
    <body>
        <form action="login.php" method="post" id="loginForm">
            <fieldset>
                <legend>Login</legend>
        <div><label for="email">Email Address</label><input type="email" name="email" id="email" required></div>
        <div><label for="password">Password</label><input type="password" name="password" id="password" required></div> 
        <div><label for="submit"></label><input type="submit" value="Login &rarr;" id="submit"></div>   
            </fieldset>
        </form>
        <script src="js/login.js"></script>
         <script src="resources/login.php"></script>
         <script src="js/ajax.php"></script>
    </body>
    </html>

login.js

function validateForm() {
    'use strict';
    var email = document.getElementById('email');
    var password = document.getElementById('password');
    if ( (email.value.length > 0) && (password.value.length > 0)) {
        var ajax = getXMLHttpRequestObject();
        return true;
    } else {
        alert('Please complete the form!');
        return false;
    }
}
function init() {
    'use strict';
    if (document && document.getElementById) {
        var loginForm = document.getElementById('loginForm');
        loginForm.onsubmit = validateForm;
    }
}
window.onload = init;
ajax.onreadyState = function(){
    if (ajax.readyState == 4) {
        if ( (ajax.status > 200 && ajax.status < 300)
        || (ajax.status == 304) ) {
        if (ajax.responseText == 'VALID') {
            alert('You are now logged in!');
        } else {
            alert('The submitted values do not match those on file!');
        }
    } else {
        document.getElementById('theForm').submit();
    } // End of status IF-ELSE.
} // End of readyState IF.
ajax.open('POST', 'resources/login.php', true);
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var data = 'email=' + encodeURIComponent(email.value) + '&password=' + encodeURIComponent(password.value);
ajax.send(data);
return false;
}; // End of function assignation.`

login.php

<?php // login.php
if ( isset($_POST['email'], $_POST['password'])
&& ($_POST['email'] == 'test@example.com')
&& ($_POST)['password'] == 'securepass') ) {
    ehco 'VALID';
} else {
    echo 'INVALID';
}
?>

空の値を無視するには、次を使用できます

$list = array_filter($list);

結果

配列
(
    [0] => 最初
    [1] => 秒
    [4] => 5番目
    [5] => 6番目
)

出典:マーク

4

4 に答える 4

1

構文エラーは次の行から発生しています。

<script src="resources/login.php"></script>

これをロードすると、ブラウザーは JavaScript を予期し、INVALIDエコー バックされるだけです。もちろん、これは有効な JavaScript ではありません。その行をコメントアウトし、他の回答で指摘されている他のタイプミスを修正すると、実行される可能性があります!

于 2013-10-10T13:38:04.890 に答える
0
if (isset($_POST['email'], $_POST['password'])
&& ($_POST['email'] == 'test@example.com')
&& ($_POST['password'] == 'securepass')) {
         ^^^ you have one extra closing bracket here

また、ehco 'VALID';これのスペルが間違っている必要がありますecho 'VALID';

上記のコードを確認し、コードを置き換えてください。

于 2013-10-10T13:33:45.270 に答える
0

変数 ajax はローカルスコープで定義されていますが、使用している場所では使用できません。そして、onreadyStateイベントはありません。

于 2013-10-10T13:37:22.860 に答える
0

atehcoの代わりにこの行が間違っています。次のようにする必要があります。echoehco 'VALID';&& ($_POST)['password'] == 'securepass') )&& ($_POST['password'] == 'securepass') )

于 2013-10-10T13:34:52.460 に答える