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>

登录.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.`

登录.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] => 第六
)

来源:马克

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

你有ehco而不是echoatehco 'VALID';并且&& ($_POST)['password'] == 'securepass') )这条线是错误的。应该:&& ($_POST['password'] == 'securepass') )

于 2013-10-10T13:34:52.460 回答
0

您的变量 ajax 是在本地范围内定义的,它在您使用它的地方不可用。并且没有onreadyState事件。

于 2013-10-10T13:37:22.860 回答