【问题标题】:php coding Form submission to server using phpphp编码 使用php向服务器提交表单
【发布时间】:2016-12-10 21:36:43
【问题描述】:

我使用 php 和 mysql 输入了这个编码。在 If 语句条件 Id 部分未插入到数据库中。但是其他字段被插入到数据库中。我找不到错误。谁能告诉错误是什么?

<?php
    $conn=mysqli_connect("localhost","root","database","user") or die("unable to connect");
    //echo "Connected Successfully";
    ?>
    <h2>Form Submission to Server</h2>
<?php
    if(isset($_POST["submit"]))
    {// get user inputs

    $error="";
    $resultmessage="";      
    $id=$_POST["id"];
    $firstname=$_POST["firstname"];
    $lastname=$_POST["lastname"];
    $email=$_POST["email"];
    $password=$_POST["password"];
    //error messages
    $missingfirstname="<p>Enter your First name</p>";
    $missinglastname="<p>Enter your Last name</p>";
    $missingemail="<p>Enter your Email id</p>";
    $invalidmail="<p>enter your valid mail id</p>";
    $missingpwd="<p>Enter your password</p>";
        if(!$firstname)
        {
            $error.=$missingfirstname;
        }
        else
        {
            $firstname=filter_var($firstname,FILTER_SANITIZE_STRING);
        }
        if(!$lastname)
        {
            $error.=$missinglastname;
        }
        else
        {
            $lastname=filter_var($lastname,FILTER_SANITIZE_STRING);
        }

        if(!$email)
        {
            $error.=$missingemail;
        }
        else
        {
            $email=filter_var($email,FILTER_SANITIZE_EMAIL);
            if(!filter_var($email,FILTER_VALIDATE_EMAIL))
            {
                $error.=$invalidmail;
            }
        }
        if(!$password)
        {
            $error.=$missingpwd;
        }
        if($error)
        {
            $resultmessage='<div class="alert alert-danger">'.$error.'</div>';

            echo $resultmessage;
        }

        else
        {
            //no errors,prepare variables for query
            $tblname="attend4";
            $firstname=mysqli_real_escape_string($conn,$firstname);
            $lastname=mysqli_real_escape_string($conn,$lastname);
            $email=mysqli_real_escape_string($conn,$email);
            $password=mysqli_real_escape_string($conn,$password);
            $password=md5($password);

            //execute the query
            if(!$id)
            {
                $sql="INSERT INTO attend4(firstname,lastname,email,password)VALUES('$firstname','$lastname','$email','$password')";          
            }
               else
               {
                   $sql="INSERT INTO attend4(id,firstname,lastname,email,password)VALUES('$id',$firstname','$lastname','$email','$password')";

               } if(mysqli_query($conn,$sql))
                 {
                    $resultmessage="Data added successfully";
                    echo $resultmessage;
                 }

                 else
                 {
                     $resultmessage="unable to add";
                     echo $resultmessage;
                  }

              }

          }

          ?>
          <form action="33.populateusigform.php" method="post">

          <div class="form-group">
              <label for="number">Number</label>
              <input type="number" name="id" id="id" class="form-control" maxlength="4" placeholder="Enter your Number"> 
              </div>
          <div class="form-group">
              <label for="firstname">First Name</label>
              <input type="text" name="firstname" id="firstname" maxlength="30" class="form-control" placeholder="Enter your Firstname">

              </div>
          <div class="form-group">
              <label for="lastname">Lastname</label>
              <input type="text" name="lastname" id="lastname" maxlength="30" placeholder="Enter your lastname" class="form-control">
              </div>
              <div class="form-group">
              <label for="email">Email</label>
                  <input type="email" name="email" id="email" maxlength="30" placeholder="Enter your Email Id"class="form-control">
                  </div>
              <div class="form-group">
              <label for="password">Password</label>
                  <input type="password" name="password" maxlength="30" placeholder="Enter your Password" class="form-control">
              </div>

          <input type="submit" name="submit" class="btn btn-success center-block" value="Send data">

          </form>

【问题讨论】:

  • 您的表格字段(自动递增 id)是否与您的 html id 不同?
  • 您能告诉我们您的数据库架构吗?
  • ifempty($email)if(!$email) 更好地检查所需的输入字段

标签: php mysql


【解决方案1】:

我怀疑你的问题是 if($id) 如果给定 0 可能会出现奇怪的行为,触发没有 id 术语的 sql 查询。

我会改用if(empty($id)),它会更可靠。

【讨论】:

    【解决方案2】:

    问题太多了……

    1) 您为表单保留了“33.populateusigform.php”操作,但正在从同一文件中插入数据....

    2) 你有没有让你的 id 自动递增?

    3)在你的情况下用来保存id的,如果你在db中用作主键,它将自动保存。

    需要检查您的数据库架构以获得进一步的帮助。

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多