2017-04-16 11 views
-1

私はphpとmysqlを使用して登録フォームを作成しようとしています。
私はxamppとphpmyadminを使用しています。テーブル 'user'のsqlクエリは正常に動作しています。
しかし、私はPHPコードを使用して挿入しようとすると、 "ユーザー登録に失敗しました"と表示されます。
は以下

register.php
このregister.php PHPコードで何が間違っていますか?

<?php 
    require('includes/connect.php'); 
    // If the values are posted, insert them into the database. 
    if (isset($_POST['username']) && isset($_POST['psw'])){ 
     $username = $_POST['username']; 
     $email = $_POST['email']; 
     $password = $_POST['psw']; 
    $query = "INSERT INTO `user` (username, password, email) VALUES('$username', '$password', '$email')"; 
     $result = mysqli_query($connection, $query); 
     if($result){ 
      $smsg = "User Created Successfully."; 
     }else{ 
      $fmsg ="User Registration Failed"; 
     } 
     } 
     ?> 

<html> 
<head> 
    <title>BondOnNet | Register</title> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

<!-- JS --> 
<script src="js/jquery-1.4.1.min.js" type="text/javascript"></script> 
<script src="js/jquery.jcarousel.pack.js" type="text/javascript"></script> 
<script src="js/jquery-func.js" type="text/javascript"></script>  
<!-- End JS --> 

<link rel="stylesheet" type="text/css" href="css/register.css"> 
</head> 
<body> 
<div id="Register_header"> 
    <h1 id="logo"><a href="index.html">BondOnNet</a></h1> 
</div> 
<div id="register_container"> 
    <form method="POST" style="border:1px solid #ccc"> 
     <?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?> 
     <?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?> 
     <div class="imgcontainer"> 
     <img src="images/avatar.png" alt="Avatar" class="avatar"> 
     </div> 
     <div class="container"> 
     <label><b>Username</b></label> 
     <input type="text" placeholder="Enter Username" name="username" required> 

     <label><b>Email</b></label> 
     <input type="text" placeholder="Enter Email" name="email" required> 

     <label><b>Password</b></label> 
     <input type="password" placeholder="Enter Password" name="psw" required> 

     <label><b>Repeat Password</b></label> 
     <input type="password" placeholder="Repeat Password" name="psw-repeat" required> 
     <input type="checkbox" checked="checked"> Remember me 
     <p>By creating an account you agree to our <a href="terms.html" style="color: #4CAF50;">Terms & Privacy</a></p> 

     <div class="clearfix"> 
      <button type="submit" class="signupbtn">Sign Up</button> 
     </div> 
     </div> 
    </form> 
</div> 
</body> 
</html> 


connect.php

<?php 
$connection = mysqli_connect('localhost', 'root', ''); 
if (!$connection){ 
    die("Database Connection Failed" . mysqli_error($connection)); 
} 
$select_db = mysqli_select_db($connection, 'test'); 
if (!$select_db){ 
    die("Database Selection Failed" . mysqli_error($connection)); 
} 
?> 

私はコードで非常に多くの小さな変更をしようとしたが、それのどれも働いていない私のコードです!
Plzを私はエラーを検出するための間違った

+1

'あなた' $のquery'変数をecho'し、コピーをし、 phpmyadminで直接印刷されたクエリを実行してください。なぜクエリが失敗したのかについてのいくつかの洞察を得るでしょう。
さらに、実行後にmysqli_error($ connection)を使用してクエリのエラーを表示します – gaganshera

+0

クエリ変数$ resultのvar_dump()には何がありますか? if(){}ステートメントの中に配置して、そこにロジックも渡していることを確認します。 SQL環境でクエリが正しく機能するかどうかを確認するために、使用可能な場合は、rawクエリをSQL phpmyadminに挿入しようとしましたか? –

+2

文字列を引用する代わりに[prepared statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してみてください。これは、SQLインジェクションを防止し、奇妙な文字をエスケープするのに役立ちます。 – ethrbunny

答えて

0

使用これをやって何イム整理するのに役立ちます。より多くの情報とexemplesについては

mysqli_connect_errno() - Returns the error code from last connect call 
mysqli_connect_error() - Returns a string description of the last connect error 
mysqli_errno() - Returns the error code for the most recent function call 
mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation 

http://php.net/manual/en/mysqli.error.php

関連する問題