【问题标题】:Blank field error check空白字段错误检查
【发布时间】:2013-06-06 10:15:45
【问题描述】:

我有一个 .php 注册文件,它可以成功地将 4 个新字段插入到我的本地主机中的用户数据库中,但是每当我添加一个空字段错误检查时,它就会停止工作。 如果我不使用空字段错误检查所有 4 个空白值将被添加到本地主机中的我的用户表中。 这是我的 .php 文件中的代码:

    <div class="contact">
            <div>
                <h4>Registration Form</h4>
            </div>

            <div>
                <table bgcolor="#CCCCCC">
                    <h4>All fields are necessary and are not to be left empty</h4>
                </br></br>
                <font color="white">Name</font><input class="test1" type="text" id="txNm" value="">
                <font color="white">Username</font><input class="test1" type="text" id="txUsn" value="">
                <font color="white">Password</font><input class="test1" type="password" id="txPwd" value="">
                <font color="white">E-Mail</font><input class="test1" type="text" id="txEml" value="">
                <input class="test2" name="Submit" type="submit" value="" id="submit" onClick='submitUser();txNm.value="";txUsn.value="";txPwd.value="";txEml.value="";'/>

            </table>
            </div>

        </div>

submitUser 函数然后会跳转到一个 js 文件:

    function submitUser(){
var name = $('#txNm').val();
var username = $('#txUsn').val(); 
var password = $('#txPwd').val(); 
var email = $('#txEml').val();


var finalData = {
    nm: name,
    usn: username,
    pwd: password,
    eml: email
};



$.post('submitUser.php', finalData, function(resp){
    if(resp == 'success'){
        alert('Thank you for register.');
        getUserList();
    }
});   

} 然后它会再次跳转到包含其余代码的 submitUser.php 文件 内容如下:

    $nm = mysql_real_escape_string($_POST["nm"]);
$usn = mysql_real_escape_string($_POST["usn"]);
$pwd = mysql_real_escape_string($_POST["pwd"]);
$eml = mysql_real_escape_string($_POST["eml"]);

$q = "INSERT INTO userdb (name, username, password, email) VALUES('$nm','$usn','$pwd','$eml')";

     if(!mysql_query($q, $con)){
    die('Error: ' . mysql_error());
    echo mysql_error();
}else{
    echo 'success';
}


mysql_close($con);

问题是,每次我添加一个空字段错误检查都不会发生任何事情,如果我删除它,那么整个注册过程将继续,但是很好......即使字段都是空的。

我的代码是:

   `if(empty($_POST['txNm'])) {
die('You need to enter a value for the Name field');
}`

我的空字段错误检查代码有什么问题?

【问题讨论】:

  • 我认为 empty($_POST['txNm']) 应该是 empty($_POST['nm']) 因为您将其作为帖子数据传递 var finalData = { nm: name, usn: username, pwd: password, eml: email };
  • 使用您的代码,我的代码将注册但没有出现“成功”消息,也没有出现空字段错误消息。

标签: php javascript localhost


【解决方案1】:

这似乎是拼写错误:

-----------------'nm'
if(empty($_POST['txNm'])) {
die('You need to enter a value for the Name field');
}

【讨论】:

    【解决方案2】:

    试试这个:

    if(empty($nm)) {
    die('You need to enter a value for the Name field');
    }
    

    此外,这些可能需要更改为:

    $nm = mysql_real_escape_string($_POST["txNm"]);
    $usn = mysql_real_escape_string($_POST["txUsn"]);
    $pwd = mysql_real_escape_string($_POST["txPwd"]);
    $eml = mysql_real_escape_string($_POST["txEml"]);
    

    【讨论】:

    • 我已将其添加到我的 submitUser.php 中,但什么也没发生。然后我删除了它,我可以重新注册。我只是不明白,这似乎是正确的,但没有任何反应。就像一段代码阻止了注册过程的发生。使用您的第二个,无论我在文本框中填写什么内容,我的字段都将注册为空白字段,此外,不会出现“成功”消息或空白字段消息错误
    • 是的,它现在可以工作了,我已经为所有 4 个字段提供了该功能,如果 4 个字段中的任何一个为空但没有出现警报消息,它将不会注册任何内容。我尝试将 'die' 更改为 'alert' 但还是一样。
    • 试试改成echo 'You need to enter a value for the Name field';
    • 另外,如果这有效,请不要将 get 标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    相关资源
    最近更新 更多