2017-06-03 14 views
1

こんにちは、私は助けが必要です。ユーザー登録サインアップフォームを設定します。しかし、私はデータベースにユーザー情報を挿入することはできませんでした。コードにエラーメッセージが表示されず、すべてが正常であることを意味します。 しかし、サインアップしようとすると、フォームのエラーメッセージ "ユーザー登録に失敗しました"が返されます。databasaのPHPとmysqlにユーザー情報を挿入してください

これはコードです:あなたは一つだけ&を持っているあなたは間違いライン4、if(isset($_POST) & !empty($_POST)) {をしました(と下部に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

if(isset($_POST) && !empty($_POST))が再びあなたに感謝します。理由:フィールド 'アクティブ'はデフォルト値 – Bachir

+0

を持っていませんが、「アクティブフィールド:BOOLEAN」を選択しました。それを保存すると、アクティブになりました。 (\t tinyint(1))。 – Bachir

+0

それはチュートリアルで完全に同じでした。私は – Bachir

答えて

2

if(isset($_POST) && !empty($_POST)) {

これに加えて、メッセージがユーザーの登録に失敗したことを伝えると、メッセージは表示されません。あなたはこのように()mysqli_errorを追加する必要があり、これを解決するために、理由を説明する:

  1. これは、SQLインジェクションにfaillibeです:
    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); 
        } 
    } 
    

    はまた、あなたのコードを持つ2つの問題があります。あなたはグローバル変数のそれぞれをテストする必要がありますWhat is SQL injection?
  2. は、このように個別に設定されていますif(isset($_POST['username']) && !empty($_POST['username']))と、これを好きではない:
+0

ありがとうございます。あなたの言ったことを修正しましたが、ユーザーデータをデータベースに保存できません – Bachir

関連する問題