Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数,PHP抛出一个;非法形成的XML语法;错误_Php_Javascript_Xml_Syntax Error - Fatal编程技术网

Javascript函数,PHP抛出一个;非法形成的XML语法;错误

Javascript函数,PHP抛出一个;非法形成的XML语法;错误,php,javascript,xml,syntax-error,Php,Javascript,Xml,Syntax Error,我正在尝试学习一些javascript,但我很难找出我的代码不正确的原因(我肯定我做错了什么,哈哈),但无论如何,我试图创建一个登录页面,以便在提交表单时,javascript将调用一个函数,检查登录是否在mysql数据库中,然后检查用户密码的有效性(如果存在)。但是,我遇到了一个无法解决的错误(非法形成的XML语法)。我真的很困惑,主要是因为netbeans说这是一个xml语法错误,而我没有使用xml。以下是相关代码: function validateLogin(login){ log

我正在尝试学习一些javascript,但我很难找出我的代码不正确的原因(我肯定我做错了什么,哈哈),但无论如何,我试图创建一个登录页面,以便在提交表单时,javascript将调用一个函数,检查登录是否在mysql数据库中,然后检查用户密码的有效性(如果存在)。但是,我遇到了一个无法解决的错误(非法形成的XML语法)。我真的很困惑,主要是因为netbeans说这是一个xml语法错误,而我没有使用xml。以下是相关代码:

function validateLogin(login){

  login.addEventListener("input", function() {
    $value = login.value;
    if (<?php
    //connect to mysql
    mysql_connect(host, user, pass) or die(mysql_error());
    echo("<script type='text/javascript'>");
    echo("alert('MYSQL Connected.');");
    echo("</script>");
    //select db
    mysql_select_db() or die(mysql_error());
    echo("<script type='text/javascript'>");
    echo("alert('MYSQL Database Selected.');");
    echo("</script>");
    //query
    $result = mysql_query("SELECT * FROM logins") or die(mysql_error()); 
    //check results against given login
    while($row = mysql_fetch_array($result)){
      if($row[login] == $value){
        echo("true");
        exit(0);
      }
    }
    echo("false");
    exit(0);
      ?>) {
      login.setCustomValidity("Invalid Login. Please Click 'Register' Below.")
    } else {
      login.setCustomValidity("")
    }

  });
}
函数验证登录(登录){
login.addEventListener(“输入”,函数(){
$value=login.value;

如果(您不能以这种方式混合使用PHP和JavaScript,因为在客户端上执行任何JavaScript之前,您的所有PHP都已经在服务器上执行了

该错误是因为客户端正在接收并未能将其作为JavaScript执行:

function validateLogin(login){

  login.addEventListener("input", function() {
    $value = login.value;
    if (<script type='text/javascript'>alert('MYSQL Connected.');</script>...
// etc.
根据需要调整URL
/validateLogin.php
;但为该URL创建一个类似以下内容的php文件:

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

mysql_connect(host, user, pass) or die(mysql_error());
mysql_select_db() or die(mysql_error());

$result = mysql_query("SELECT * FROM logins") or die(mysql_error());
while($row = mysql_fetch_array($result)){
  if($row[login] == $value){
    echo("true");
    exit(0);
  }
}
echo("false");
exit(0);
?>

您不能以这种方式混合使用PHP和JavaScript,因为在客户端上执行任何JavaScript之前,您的所有PHP都已经在服务器上执行了

该错误是因为客户端正在接收并未能将其作为JavaScript执行:

function validateLogin(login){

  login.addEventListener("input", function() {
    $value = login.value;
    if (<script type='text/javascript'>alert('MYSQL Connected.');</script>...
// etc.
根据需要调整URL
/validateLogin.php
;但为该URL创建一个类似以下内容的php文件:

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

mysql_connect(host, user, pass) or die(mysql_error());
mysql_select_db() or die(mysql_error());

$result = mysql_query("SELECT * FROM logins") or die(mysql_error());
while($row = mysql_fetch_array($result)){
  if($row[login] == $value){
    echo("true");
    exit(0);
  }
}
echo("false");
exit(0);
?>

怎么了?你只需在
if
条件中插入
部分,就可以破坏你的JavaScript。因此你会得到
if(警报('MYSQL Connected');…
等等……接下来的事情是:你正在尝试将
$value
,这是JavaScript变量,与
$row[login]匹配
在PHP循环中-那里没有
$value
!这些是分开的代码。都错了


乔纳森·洛诺夫斯基(Jonathan Lonowski)很好地解释了应该怎么做。

怎么了?你只需在
if
条件中插入
部分,就可以破坏你的JavaScript。因此你会得到
if(警报('MYSQL Connected')).
等等……下一件事:您正在尝试将
$value
,这是一个JavaScript变量,与PHP循环中的
$row[login]
相匹配-您没有
$value
!这些是分开的代码。这都是错误的


乔纳森·洛诺夫斯基(Jonathan Lonowski)很好地解释了你应该怎么做。

好的,我现在明白了,非常感谢你这么详细的回答。好的,我现在明白了,非常感谢你这么详细的回答。我不明白-我的回答有什么问题,我被否决了?我正在写答案,但弹出消息显示有人(乔纳森)回答,我加载了他的帖子,认为它已经完成了,我不必再写所有的东西,所以我只发送我所拥有的。这不是一个解决方案,但它描述了什么是错的。我不明白-我的答案有什么错,我被否决了?我在写答案,但弹出消息显示有人(乔纳森)回答说,我加载了他的帖子,认为它已经完成了,我不必第二次写所有的东西,所以我只发送我所拥有的。这不是一个解决方案,但它描述了什么是错误的。。