2017-09-15 106 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