2017-09-15 33 views
0

我已经成功地将数据输入到MySQL数据库中,但在提交表单时无法插入数据。目前,只要我加载register.php页面就会插入空白数据。我读过,我需要可能把这个代码放在一个单独的文件中,只包含php代码。我试过并将该页面添加到表单操作。它重定向到proccess.php页面,但并未实际插入数据。这里是我的PHP:在提交表单时将php数据输入到MySQL中

<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = "@Passw0rd"; 
    $dbname = "accounts"; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 

    $name = mysqli_real_escape_string($link, $_REQUEST['Ausername']); 
    $email = mysqli_real_escape_string($link, $_REQUEST['email']); 
    $userPassword = mysqli_real_escape_string($link, $_REQUEST['Apassword']); 

    $sql = "INSERT INTO users (username, email, password) 
    VALUES ('$name', '$email', '$userPassword')"; 

    if (mysqli_query($conn, $sql)) { 
     echo "New record created successfully"; 
    } else { 
    echo "Error: " . $sql . mysqli_error($conn); 
    } 

    mysqli_close($conn); 
?> 

和我的形式:

<form class="form-inline" action="register.php" method="post"> 
    <div class="input-group"> 
     <span class="input-group-addon"><i class="fa fa-user"></i></span> 
     <input type="text" class="form-control" id="Ausername" placeholder="Username" name="Ausername" required> 
    </div> 
    <br> <br> 
    <div class="input-group"> 
     <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span> 
     <input type="text" class="form-control" id="email" placeholder="Email" name="email" required> 
    </div> 
    <br> <br> 
    <div class="input-group"> 
     <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span> 
     <input type="text" class="form-control" id="Apassword" placeholder="Password" name="Apassword" required> 
    </div> 
    <br> <br> <br> 
    <button type="submit" class="btn btn-primary" id="button" name="submit" value="submit"> 
     <i class="fa fa-user-plus"></i> Sign Up 
    </button> 
    <br> <br> 
</form> 
+0

注意,不要存储明文密码,这不是一个好主意。使用'password_hash()'和'password_verify()'或兼容的库。另外,绑定参数,垃圾转义字符串方法。 – Rasclatt

回答

1

使用$_POST代替$_REQUEST并尝试

$name = mysqli_real_escape_string($link, $_POST['Ausername']); 
    $email = mysqli_real_escape_string($link, $_POST['email']); 
    $userPassword = mysqli_real_escape_string($link, $_POST['Apassword']); 
0

表单行动 “POST”,你应该使用$检索数据彦博。

我对IF语句的条件,所有的值都是强制性的,你可以编辑你自己的条件。

<?php 
     $servername = "localhost"; 
     $username = "root"; 
     $password = "@Passw0rd"; 
     $dbname = "accounts"; 

     // Create connection 
     $conn = mysqli_connect($servername, $username, $password, $dbname); 
     // Check connection 
     if (!$conn) { 
      die("Connection failed: " . mysqli_connect_error()); 
     } 

    if (isset($_POST["submit"]) && !empty($_POST["Ausername"] && !empty($_POST["email"] && !empty($_POST["Apassword"])) { 
     $name = mysqli_real_escape_string($link, $_POST['Ausername']); 
     $email = mysqli_real_escape_string($link, $_POST['email']); 
     $userPassword = mysqli_real_escape_string($link, $_POST['Apassword']); 
     }else { 
    // redirect to form page 
     } 
     $sql = "INSERT INTO users (username, email, password) 
     VALUES ('$name', '$email', '$userPassword')"; 

     if (mysqli_query($conn, $sql)) { 
      echo "New record created successfully"; 
     } else { 
     echo "Error: " . $sql . mysqli_error($conn); 
     } 

     mysqli_close($conn); 
    ?> 
+0

哦哇谢谢你!我很感激帮助。只有我遇到的问题可能是某处丢失的支架。我的代码在关闭之后的其余部分仍然显示为PHP代码。我似乎无法瞄准该地区。 –

+0

:) .... https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

0

请先如果后提交及赤代码如下

<?php 
     if(isset($_POST['submit']){ 
      $name = mysqli_real_escape_string($link, $_POST['Ausername']); 
      $email = mysqli_real_escape_string($link, $_POST['email']); 
     $userPassword=mysqli_real_escape_string($link,$_POST['Apassword']); 
    $query="INSERT INTO users(username, email, password) 
         VALUES('$name','$email','$userPassword')"; 
if($query){ 
    ?> 
<script> 
    alert("record added"); 
    window.location="index.php";//where index.php is a page with your html codes 
</script> 
} 
else 
    die(mysqli_error($link)); 
<?php 
} 
?> 

,或者你可以将用户unset($_POST);从数据插入数据后,它帮助请通知自变量首先检查的形式保存数据之前我们感谢,但rember使用$ _POST而不是$ _REQUEST