Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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 如何修改注册的引导代码以检查电子邮件副本?_Javascript_Php_Ajax_Twitter Bootstrap 3 - Fatal编程技术网

Javascript 如何修改注册的引导代码以检查电子邮件副本?

Javascript 如何修改注册的引导代码以检查电子邮件副本?,javascript,php,ajax,twitter-bootstrap-3,Javascript,Php,Ajax,Twitter Bootstrap 3,我正在使用常规联系人表单的默认代码。它带来的成功或失败取决于服务器的响应(据我所知)。这段代码调用msend_form.php,它负责与数据库的通信。它始终返回true。我可以在那里检查数据库中预先存在的电子邮件。问题是如何将其传递给ajax代码,以便它不仅显示服务器响应错误,还显示现有电子邮件的错误。以下是msend_form.js中的代码: $.ajax({ url: "././mail/msend_form.php", type: "POST",

我正在使用常规联系人表单的默认代码。它带来的成功或失败取决于服务器的响应(据我所知)。这段代码调用msend_form.php,它负责与数据库的通信。它始终返回true。我可以在那里检查数据库中预先存在的电子邮件。问题是如何将其传递给ajax代码,以便它不仅显示服务器响应错误,还显示现有电子邮件的错误。以下是msend_form.js中的代码:

    $.ajax({
        url: "././mail/msend_form.php",
        type: "POST",
        data: {
            fname: firstName,
            gender: gender,
            email: email
        },
        cache: false,
        success: function() {
            // Success message
            $('#success').html("<div class='alert alert-success'>");
            $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                .append("</button>");
            $('#success > .alert-success')
                .append("<strong>Thank you for registering! </strong>");
            $('#success > .alert-success')
                .append('</div>');

            //clear all fields
            $('#contactForm').trigger("reset");
        },
        error: function() {
            // Fail message
            $('#success').html("<div class='alert alert-danger'>");
            $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                .append("</button>");
            $('#success > .alert-danger').append("<strong>Sorry " + firstname + ", it seems that my mail server is not responding. Please try again later!");
            $('#success > .alert-danger').append('</div>');
            //clear all fields
            $('#contactForm').trigger("reset");
        },
    })
$.ajax({
url:“.//mail/msend_form.php”,
类型:“POST”,
数据:{
fname:firstName,
性别:性别,,
电邮:电邮
},
cache:false,
成功:函数(){
//成功信息
$('#success').html(“”);
$('#success>.alert success').html(“×;”)
.附加(“”);
$(“#success>.alert success”)
.append(“感谢您的注册!”;
$(“#success>.alert success”)
.附加(“”);
//清除所有字段
$('#contactForm')。触发器(“重置”);
},
错误:函数(){
//失败消息
$('#success').html(“”);
$('#success>.alert danger').html(“×;”)
.附加(“”);
$(“#success>.alert danger”).append(“对不起”+firstname+”,我的邮件服务器似乎没有响应。请稍后再试!”);
$(“#success>.alert danger”).append(“”);
//清除所有字段
$('#contactForm')。触发器(“重置”);
},
})
msend_form.php中的代码:

<?php
// insert in sql database
include '../db_connect.php';


// check if fields passed are empty
if(empty($_POST['fname'])       ||
   empty($_POST['email'])       ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo "No arguments Provided!";
    return false;
   }

$fname = mysql_real_escape_string($_POST['fname']);
$email_address = mysql_real_escape_string($_POST['email']);
$gender = mysql_real_escape_string($_POST['gender']);
$ip = 1;

$sqlemail=mysql_query('SELECT * FROM `sdusers` WHERE email="'.$email_address.'"');
$res2=mysql_num_rows($sqlemail);

if($res2>=1)
{
    echo 'Email already in use';

}
else
{
    //insert query goes here
    $sql='INSERT INTO `sdusers` (fname, gender, email, ip, time_registered) VALUES ("'.$fname.'","'.$gender.'","'.$email_address.'","'.$ip.'",CURRENT_TIMESTAMP)';
    $res3=mysql_query($sql);

}

mysql_close($link);

return true;            
?>

当服务器以200状态响应时,将触发成功回调

如果您想在
error
函数中说error,您需要从后端发送头500(服务器错误)

您还可以在成功响应中发送bool(int)标志:

{status: 1, message: "email does not exists"}

or

{status: 0, message: "email alredy taken"}
JavaScript:

$.ajax({
    url: "././mail/msend_form.php",
    type: "POST",
    data: {
        fname: firstName,
        gender: gender,
        email: email
    },
    dataType: "json",
    cache: false,
    success: function(response) {
        if(response.status == 1){
            // ok
        }else{
            // fail
        }
    }
});
php


服务器以200状态响应时触发成功回调

如果您想在
error
函数中说error,您需要从后端发送头500(服务器错误)

您还可以在成功响应中发送bool(int)标志:

{status: 1, message: "email does not exists"}

or

{status: 0, message: "email alredy taken"}
JavaScript:

$.ajax({
    url: "././mail/msend_form.php",
    type: "POST",
    data: {
        fname: firstName,
        gender: gender,
        email: email
    },
    dataType: "json",
    cache: false,
    success: function(response) {
        if(response.status == 1){
            // ok
        }else{
            // fail
        }
    }
});
php


一个好主意是将响应的状态代码设置为具有错误代码,如果您可以显示php代码,可以看看如何添加此项,只是按照请求添加了php代码。一个好主意是将响应的状态代码设置为具有错误代码,如果您可以显示php代码,我可以看看如何添加这个,只是在请求时添加了php代码。我刚刚在问题中添加了php代码。如何将该标志从php发送到ajax?可以通过非常简单的方式回显“0”或“1”。但我建议您使用json。它将是
echo json_encode(['status'=>1,'message'=>'msg..”)。如果要使用json,请不要忘记将Content-Type头设置为application/json,在$.ajax set
dataType中:“json”
请查看代码后面的更新代码。出于某种原因,当状态为1时,它会显示良好,但在其他情况下,它会显示一个警报危险,其中没有任何内容您有响应。消息字段为此抱歉,这是我第一次学习ajax,我真的不知道如何以其他方式完成。我以某种方式修改了现有代码,以便它对成功消息和错误消息的作用相同。这样做是可能的吗?我只是在问题中添加了php代码。如何将该标志从php发送到ajax?可以通过非常简单的方式回显“0”或“1”。但我建议您使用json。它将是
echo json_encode(['status'=>1,'message'=>'msg..”)。如果要使用json,请不要忘记将Content-Type头设置为application/json,在$.ajax set
dataType中:“json”
请查看代码后面的更新代码。出于某种原因,当状态为1时,它会显示良好,但在其他情况下,它会显示一个警报危险,其中没有任何内容您有响应。消息字段为此抱歉,这是我第一次学习ajax,我真的不知道如何以其他方式完成。我以某种方式修改了现有代码,以便它对成功消息和错误消息的作用相同。这样做有可能吗?
// check for existing email

$email_exists = false; // or true

$json = ['status' => 0, 'message' => 'Email exists']; // default

if(!$email_exists){
    $json['status'] = 1;
    $json['message'] = 'OK';
}

// delete all outputs before header (echo, print_r...)

header("Content-Type: application/json");
echo json_encode($json);
die;