首页 > 解决方案 > 表单值未通过 php(服务器端)验证提交到 wamp 服务器数据库

问题描述

这个文件是动作文件。当用户提交错误的值时,它会返回名为 vform.php 的文件并询问用户正确的输入。但对我来说,在输入正确的值并单击 register 后,既没有值进入 wamp db,也没有显示成功消息。下面是将值添加到 db 的代码。成功验证后,它会转到regsuccess.php,其中显示注册成功消息。我不知道值没有进入 db 的确切原因是什么。

    <?php
        ob_start();
        session_start();
        include("DBConnection.php"); // include the connection object from the 
        DBConnection.php
        if ($_POST['submit']) 
        { 
          $inFullname = trim($_POST["name"]);
          $inEmail = trim($_POST["email"]);
          $inPhone = trim($_POST["phonenumber"]);
          $_SESSION['valid_name']=$inFullname;
          $_SESSION['valid_email']=$inEmail;
          $_SESSION['valid_phone']=$inPhone;
         if( !preg_match("/^([a-zA-Z' ]+)$/",$inFullname) ||!preg_match('',$inEmail) || !preg_match('',$inPhone) ){
           if(preg_match("/^[a-zA-Z-,]+(\s{0,1}[a-zA-Z-, ])*$/",$inFullname)){
              $_SESSION['valid_name']=$inFullname;
                    }else {
                        $_SESSION['name_error'] = "enter valid name";
                    }
                    if(preg_match("/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A- 
                     Za-z]{2,4})$/",$inEmail)){
                        $_SESSION['valid_email']=$inEmail;
                    } else{
                        $_SESSION['mail_error'] = "enter valid mail";
                    }
                    if(preg_match("/^\d{3}-\d{3}-\d{4}$/",$inPhone)){
                        $_SESSION['valid_phone']=$inPhone;
                    } else{
                        $_SESSION['phone_error'] = "enter valid phone number";
                    }
                    header('Location: vform.php'); 
                    die();
                }
$stmt = $db->prepare("INSERT INTO DETAILS(NAME,EMAIL,PHONENUMBER) VALUES(?,?,?)"); //Fetching all the records with input credentials
    $stmt->bind_param("sss", $inFullname,$inEmail,$inPhone); //Where s indicates string type. You can use i-integer, d-double
    $stmt->execute();
    $result = $stmt->affected_rows;

    $stmt -> close();
    $db -> close(); 
    if($result > 0) {header("location: RegSuccess.php");} // user will be taken to the success page 
    else{   echo 'Oops. Something went wrong. Please try again <a href="vform.php">Try Login</a>';}
}
?>

标签: php

解决方案


推荐阅读