Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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中的ajax调用和验证电子邮件_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript php中的ajax调用和验证电子邮件

Javascript php中的ajax调用和验证电子邮件,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我试图将表单操作“转换”为ajax调用。 我的表格: 另外,我的一段代码“functions.php”由许多检查动作是否有特定值以及是否有特定值来执行某项操作组成。因此: if ($_POST['actiune']==="login") { $email = $_POST['email']; $password = $_POST['password']; $encript_pass = md5($password); $query = "select * f

我试图将表单操作“转换”为ajax调用。 我的表格:

另外,我的一段代码“functions.php”由许多检查动作是否有特定值以及是否有特定值来执行某项操作组成。因此:

  if ($_POST['actiune']==="login") {
    $email = $_POST['email'];
    $password = $_POST['password'];
    $encript_pass = md5($password);

    $query = "select * from user where email='$email' and password='$encript_pass'"; 
    $result = mysql_query($query) or die ("Error in query: $query " . mysql_error()); 
    $row = mysql_fetch_array($result); 



    if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
        echo("$email is a valid email address");
    } else {
        echo("$email is not a valid email address");
    }   
 }

当我运行它时,它会给我一个提示,告诉我错误。有什么建议吗?

您也需要将数据通过
actiune

 data: {
      email: $("#email").val(),
      password: $("#password").val(),
      actiune: 'login'
 },

我还从您通过的字段中删除了大写字母,因为您需要php中的
密码
电子邮件
,而不是
密码
电子邮件
只需将您的代码替换为此,请注意电子邮件和密码下的“actiune”

    $(document).ready(function(){
$("#submitBtn").click(function(e){

    e.preventDefault();  

    $.ajax({
        type: "POST",
        url: "functions.php",
        data: {
               Email: $("#email").val(),
               Password: $("#password").val(),
               actiune: $('input[name="actiune"]').val()
              },

        success: function(result){   
            alert(result);
        },
        error: function (error){
            alert("Error");
        }

   });
 });
 });

您的第一个也是最大的错误是,您将未经过滤的已发布电子邮件放入sql语句中!这样做是非常不安全的!你的错误说明了什么?没什么。它说的只是错误。我认为这是因为Ajax的错误,你真的不应该使用,你真的应该使用PHP来处理密码安全性。在散列之前,请确保对它们进行了清理或使用了任何其他清理机制。这样做会更改密码并导致不必要的额外编码。说。即使是这样也不安全!请已在PHP7中删除。了解有关使用PDO的语句,并考虑如何使用它。在Ajax调用中,将元素作为ID,并将其值作为“数据”字典中的另一个附加参数传递。
 data: {
      email: $("#email").val(),
      password: $("#password").val(),
      actiune: 'login'
 },
    $(document).ready(function(){
$("#submitBtn").click(function(e){

    e.preventDefault();  

    $.ajax({
        type: "POST",
        url: "functions.php",
        data: {
               Email: $("#email").val(),
               Password: $("#password").val(),
               actiune: $('input[name="actiune"]').val()
              },

        success: function(result){   
            alert(result);
        },
        error: function (error){
            alert("Error");
        }

   });
 });
 });