2017-09-15 18 views
0

MySQLデータベースにデータを入力できましたが、フォームの送信時にデータを挿入できませんでした。現時点では、register.phpページを読み込むたびに空白のデータが挿入されます。私はおそらくPHPコードだけを含む別のドキュメントにこのコードを入れる必要があることを読んでいます。私はそれを試み、そのページをフォームアクションに追加しました。 proccess.phpページにリダイレクトされましたが、実際にはデータは挿入されませんでした。フォームを送信するときにMySQLにPHPデータを入力

<?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); 
?> 

と私のフォーム::ここに私のPHPはある

<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);データからデータを挿入した後、それが通知してくださいすることができますされている場合、変数最初のチェックのフォームからのデータを保持する前に、私たちに感謝しますが、$ _REQUESTの代わりに$ _POSTを使用するように注意してください。

関連する問題