2016-04-19 17 views
-1

データベースにデータを挿入する必要があるRegister.phpという名前のWebページを作成しました。これの問題は、登録ページが機能するが、ログインしようとすると情報がデータベースに追加されないということです。私が見つけられない間違ったことはありますか?同様に、こののエラーを取得PHP MySQLは "INSERT INTO"を使用できません

<?php 
    echo "<h1>Register</h1>"; 
    $submit = $_POST['submit']; 
    //form data 
    $FullName = strip_tags($_POST['FullName']); 
    $UserName = strip_tags($_POST['UserName']); 
    $Password = strip_tags($_POST['Password']); 
    $RepeatPassword = strip_tags($_POST['RepeatPassword']); 
    if ($submit) 
    { 
     //open database 
     $connect = mysql_connect("localhost","root",""); 
     mysql_select_db("cs266db_db1"); 

     $namecheck = mysql_query("SELECT UserName FROM user_ID WHERE UserName='$UserName'"); 
     $count = mysql_num_rows($namecheck); 
     if ($count!=0) 
     { 
      die("UserName already taken"); 
     }  
     //check for existence 
     if($FullName&&$UserName&&$Password&&$RepeatPassword) 
     {   
      //check password and repeat password match 
      if($Password==$RepeatPassword) 
      {   
       //check length of username and fullname 
       if (strlen($UserName) > 25 || strlen($FullName)>25) 
       { 
        echo "Length of username or fullname is over 25 characters!"; 
       } 
       else { 
        //check password 
        if(strlen($Password)>25 || strlen($Password) < 6) { 
        echo "Password must be between 6 and 25 characters"; 
        } else {    
         //encrypt password 
         $Password = md5($Password); 
         $RepeatPassword = md5($RepeatPassword);        
         $queryreg = mysql_query("INSERT INTO user_id VALUES (FullName='".$FullName."',UserName='".$UserName."',Password='".$Password."'");    
        } 
        die("You have been registered <a href='index1.php'> Return to Login Page </a>");   
       }   
      } 
      else{ 
       echo "Your passwords do not match"; 
      }   
     } else { 
      echo "Please fill in all fields!";  
     } 
    } 
?> 

<html>  
<form action="register.php" method="POST"> 
<table> 
    <tr> 
     <td> 
      Your full name: 
     </td> 
     <td> 
      <input type="text" name="FullName" value="<?php echo $FullName ?>"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Choose a username: 
     </td> 
     <td> 
      <input type="text" name="UserName" value="<?php echo $UserName ?>"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Choose a password: 
     </td> 
     <td> 
      <input type="password" name="Password"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Repeat your password: 
     </td> 
     <td> 
      <input type="password" name="RepeatPassword"> 
     </td> 
    </tr> 
</table>   
    <br> 
    <input type="submit" name="submit" value="Register">     
</form>  
</html> 

イム(私は、NetBeans上で実行しています):

お知らせ:未定義のインデックスは: Cに提出:XAMPP \ \ htdocsに\ Resume_DB \上register.php 4行目注意:未定義 インデックス:C:\ Xampp \ htdocs \ Resume_DB \ register.php(7行目)のフルネーム 注意:未定義インデックス:UserNameは でC:\ Xampp \ htdocs \ Resume_DB \ register.php on line 8 :未定義 インデックス:C:\ Xampp \ htdocs \ Resume_DB \ register.phpの9行目のパスワード Noti CE:未定義のインデックスは: CでRepeatPassword:XAMPP \ \ htdocsに\ Resume_DB \ライン10

上register.phpが、これは挿入の私の問題と関係があるのでしょうか?もしそうなら、助けてください!お願いしてありがとう!

+6

**警告**:PHPを学んでいるだけの方は、古い['mysql_query'](http://php.net/manual/en/function.mysql-query.php)を学ばないでください。インタフェース。それはひどいので、PHP 7では削除されました。[PDOは学ぶのが難しくありません](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo- for database-access /)、[PHP The Right Way](http://www.phptherightway.com/)のようなガイドはベストプラクティスの説明に役立ちます。あなたのユーザーパラメータは**正しく**エスケープされていません**(http://bobby-tables.com/php)、ここには重大な[SQLインジェクションバグ](http://bobby-tables.com/)があります。 – tadman

+5

**警告**:独自のアクセス制御レイヤーを作成するのは簡単ではなく、重大な誤りを犯す機会がたくさんあります。 [Laravel](http://laravel.com/)のような最新の[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)がある場合は、独自の認証システムを作成しないでください。強力な[認証システム](https://laravel.com/docs/5.2/authentication)が組み込まれています。絶対に[推奨されるセキュリティのベストプラクティス](http://www.phptherightway.com/#security)に従ってください。決してパスワードをプレーンテキストとして保存しないでください。 – tadman

+0

挿入構文が正しくありません。 – larsAnders

答えて

0

私は挿入を実行する方法がMySqlでも有効であるとは思わない 私はMySqlでWampを試したところ、エラーは返されませんが、挿入されたすべての値はNULLです 私はこの行について話しています

insert into tmp_table values (`field_1`='value_1', `field_2`='value_2', `field_3`='value_3' ...) 

あなたのDBに空の行が入っていますか、全く行がありませんか?

関連する問題