繁体   English   中英

PHP电子邮件验证不起作用并且帖子未定义

[英]PHP Email validate doesn't work and undefined posts

因此,问题是,无论我在电子邮件文本机器人中添加了什么内容,无论它是否是有效的电子邮件,它都会继续说:“请输入有效的电子邮件地址!” 我不认为该错误与电子邮件有效部分有关,因为当我摆脱该部分时,所有提交部分都将在遇到我定义的$ errors时说“ undefined”。

看起来像:

localhost says:
Array{
    [regEmail] => undefined
    [regUsername] => undefined
    [regPass] => undefined
    [regRePass] => undefined 
}

这是我的PHP代码:

if ($_GET['action'] == "register"){
    $error = "";
    if (!$_POST['regEmail']){
         $error = "An email address is required.";
    } else if (!$_POST['regUsername']) {
        $error = "Please enter a Username.";
    } else if (!$_POST['regPass']){
        $error = "Please enter a Password";
    } else if (!$_POST['regRePass']){
        $error = "Please enter a Password";
    } else if ($_POST['regPass'] != $_POST['regRePass']) {
        $error = "Passwords don't match.";
    } else if (filter_var($_POST['regEmail'], FILTER_VALIDATE_EMAIL) === false) {
        $error = "Please enter a valid email address!";     
    }

    if($error != "") {
        echo $error;
        exit();
    }

    $queryEmail = "SELECT * FROM users WHERE email = '".mysqli_real_escape_string($link, $_POST['regEmail'])."'";
    $queryUsername = "SELECT * FROM users WHERE username = '".mysqli_real_escape_string($link, $_POST['regUsername'])."'";

    $resultEmail = mysqli_query($link, $queryEmail);
    if(mysqli_num_rows($resultEmail) > 0) {
        $error = "That email address is already in use.";
    }

    $resultUsername = mysqli_query($link, $queryUsername);
    if(mysqli_num_rows($resultUsername) > 0) {
        $error = "Sorry, that username is already taken.";
    }       

    print_r($_POST);
}

这是发送帖子的脚本:

$("#register").click(function(){
    $.ajax({
        type: "POST",
        url: "actions.php?action=register",
        data: "regEmail=" + $("#regEmail").val() + "&regUsername=" + $("#regUsername").val() + "&regPass=" + $("#regPass").val() + "&regRePass=" + $("#regRePass").val(),
        success: function(result) {
            alert(result)
        }
    })
})

如果还需要其他代码,我将发布。

试试这个

if (!isset($_POST['regEmail'])){

另外,尝试像这样发送数据:

data: ({
    regEmail: $("#regEmail").val(),
    regUsername: $("#regUsername").val(),
    ...
})

我弄清楚了问题所在。 在我的<input>我有name="regEmail"name="regUsername"等,当我将其更改为id="regEmail"id="regUsername" ...问题自行解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM