数据未插入数据库 - PHP MYSQL

时间:2018-05-17 22:28:47

标签: javascript php jquery mysql

尝试将注册验证与PHP和Ajax结合在一起。不知道出了什么问题,但提交没有发生。如果我不添加验证部分一切看起来很好,我能够将数据插入到mysql。

<script type="application/javascript">

    $("#submit").submit(function (event) {
        event.preventDefault();
        var datatopost = $(this).serializeArray();
        console.log(datatopost);
        $.ajax({
            url: "signupregister.php",
            type: "POST",
            data: datatopost,
            success: function (data) {
                if (data) {
                    $("#signupmessage".html(data));
                }
            },
            error: function () {
                $("#signupmessage").html("<div class = 'alert alert-danger'></div>")
            }
        });
    });
</script>

_

<?php    

session_start();
include('mysqlconnection.php');
include('index.php');

function customError($errors, $errorslevel)
{
}

set_error_handler("customError", E_ALL);

if (isset($_POST['submit'])) {
    if ($_POST($first_name) == "") {
        $errors .= $first_nameError;
    } else {
        $first_name =
            filter_var($_POST["first_name"], FILTER_SANITIZE_STRING);
    }
}


if ($errors) {
    $resultMessage = '<div class="alert alert-danger">' .
        $errors . '</div>';
    echo $resultMessage;
    exit;
}
$first_nameError = '<p>first name required</p>';

1 个答案:

答案 0 :(得分:0)

首先,在您的验证PHP脚本中,您不需要包含&#39; index.php&#39;

尝试将表单重定向到空白页面,其中只包含验证数据,同时为遇到的第一个错误设置会话变量。

在验证结束时,如果您的错误变量包含错误,您可以重定向到表单并在方便的位置显示您的错误。请记住,如果要保留所有用户输入,则必须在会话变量中保存表单数据(从而消除了反复填写表单的麻烦)。 如果没有,您可以继续在数据库中插入数据,然后重定向到您想要的目标网页。

以下是基于您的输入的示例代码:

<?php
  session_start();
  if(isset($_POST['submit'])){
        $_SESSION['fname'] = $_POST['fname'];
        //so on for your other variables
        if($_SESSION['fname'] == ""){
            $_SESSION['err'] = "First Name Required";
        }
        if(//insert your format validation for first name){
             $_SESSION['err'] = "First Name Invalid";}
        }
        //end of validation
        if isset($_SESSION['err']){
           header('Location: myform.php');
        }
        else{
            //save all your variables into normal ones, i.e $fname-$_POST['fname'];
           //insert into database;
           //check correct insertion;
           //redirect to landing page;
}
}
?>