2017-06-03 110 views
1

嗨,大家好,我需要一些幫助。 lm設置用戶註冊註冊表單。但我不能將用戶信息插入到數據庫中。代碼沒有顯示任何錯誤信息,這意味着一切都很好。 但是,當我試圖註冊它給出了窗體的錯誤消息「無法註冊用戶」。將用戶信息插入到數據庫的php和mysql中

這是代碼:(並在底部檢查connect.php代碼)

<?php 

require_once('connect.php'); 
//print_r($_POST); 
if(isset($_POST) & !empty($_POST)) { 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 

    // storing the sign up info in to the database 
    $sql = "INSERT INTO usermanagement (username, email, password) VALUES ('$username', '$email', '$password')"; 

    //executing the the query 
    $result = mysqli_query($connection, $sql); 

    if($result){ 
     echo "User Registered Successfully"; 
    } 
    else{ 
     echo "Failed to Register User"; 
    } 
} 

?> 


    <div id="form-signup"> 
        <form id="signup-form" name="sign-up" action="sign.php" method="POST"> 
          <h1>Create your profile</h1> 
          <p> 
           <input type="text" name="username" id="username" class="signup-input" required="required" placeholder="Full name*" > 
          </p> 

          <p> 
           <input type="email" name="email" class="signup-input" required="required" placeholder="Email*" > 
          </p> 
          <p> 
           <input type="password" name="password" class="signup-input" required="required" placeholder="Mot de passe*"> 
          </p> 
          <!-- <p> 
           <input type="password" name="confirmpassword" class="signup-input" required="required" placeholder="Confirmez mot de passe*"> 
          </p> --> 
          <p class="agree"> By signing up, you agree to Tout-Passe's <br><a href="condition.php"> Terms of use</a><br> and <a href="politic.php">Privacy Policy</a>. 
          </p> 
          <p> 
           <input type="submit" class="signup-btn" name="btn-signup" value="Create Account"> 
          </p> 
          <p class="already">Already on Tout-Passe? <a href="log.php"> Log in</a></p> 
         </div><!--END OF PHASE-1--> 
        </form> <!--END OF SIGN-UP--> 
       </div><!--END FO ALLFORM--> 

CONNECT CODE

<?php 
$connection = mysqli_connect('localhost', 'root', ''); 
if(!$connection){ 
    die("Database Connection Failed" . mysqli_error($connection)); 
} 
$select_db = mysqli_select_db($connection, 'listing');//listing = database 
if(!$select_db){ 
    die("Failed to select database" . mysqli_error($connection)); 
} 

?> 
+0

再次感謝你。我做了你所說的,它確實給了我這個:註冊用戶失敗,原因:字段'激活'沒有默認值 – Bachir

+0

但我選擇了「活動字段:BOOLEAN」,當我保存它變成了(\t tinyint(1))。 – Bachir

+0

而且它在教程中完全相同l觀看了 – Bachir

回答

2

你沒搞錯線4條,if(isset($_POST) & !empty($_POST)) {你只有一個&你應該有兩個這樣的:if(isset($_POST) && !empty($_POST)) {

除此之外,當你的消息告訴你,它沒有註冊用戶,它不會解釋爲什麼,要解決這一點,你必須添加一個mysqli_error()這樣的:

require_once('connect.php'); 
//print_r($_POST); 
if(isset($_POST) && !empty($_POST)) { 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 

    // storing the sign up info in to the database 
    $sql = "INSERT INTO usermanagement (username, email, password) VALUES ('$username', '$email', '$password')"; 

    //executing the the query 
    $result = mysqli_query($connection, $sql); 

    if($result){ 
     echo "User Registered Successfully"; 
    } 
    else{ 
     echo "Failed to Register User, reason: " . mysqli_error($connection); 
    } 
} 

也有兩個問題與您的代碼:

  1. 這是faillibe SQL注入。 What is SQL injection?
  2. 您應該測試您的每一個全局變量的單獨設置是這樣的:if(isset($_POST['username']) && !empty($_POST['username'])),而不是像這樣:if(isset($_POST) && !empty($_POST))
+0

好的,謝謝。我只是糾正了你說的話,但我仍然無法將用戶數據存儲到數據庫中 – Bachir

相關問題