2016-03-21 22 views
-1

登録しようとしましたが、ページにデータが入力されていませんでした。私は以前と同じ構文で多くのページを作ってきましたが、与えられたものだけwork.itはパスワード検証の2回のループに入りますが、最後のループで他のページにジャンプしてクエリを使ってデータを入力しようとしています。私の間違いを是正するのに役立ちます。ありがとうございますPHP登録フォームが動作しない

<?php 
    #start session 
    session_start(); 


    #Database connection here 
    $dbc = mysqli_connect('localhost','root','farmstockexchange','fse') OR die('ERROR :'.mysqli_connect_error()); 


    if (isset($_POST['submitted'])==1) 
    { 


     $username = mysqli_real_escape_string($dbc, $_POST['username']); 
     $email = mysqli_real_escape_string($dbc, $_POST['email']); 
     $password = mysqli_real_escape_string($dbc, $_POST['password']); 
     $passwordv = mysqli_real_escape_string($dbc, $_POST['passwordv']); 


     if ($username && $password && $passwordv) { 



      if ($password == $passwordv) 
      { 




       $q = "INSERT INTO user (username, email, password) VALUES ('$username', '$email', SHA1('$password')"; 
       $r = mysqli_query($dbc, $q); 
       if ($r) 
        { 
         header('location:reg1.php'); 
        } 
        else 
         { 
          echo 'data not entered'; 
         } 
      }//$password == $passwordv 

      else { 
       echo 'password didnt match'; 
        } 


     } // $username && $password && $passwordv 
      else  
       { 
        echo 'please enter some data or error :'.mysqli_error($dbc); 
        echo '<p>'.$q.'</p>'; 
       } 


    <!-- there some problem in this loop --> 

    } 

    ?> 

    <!DOCTYPE html> 
    <html> 
    <head> 
     <title></title> 

     <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <?php include('../config/css.php'); ?> <!-- bootstrap cdn --> 
     <?php include('../config/js.php'); ?> <!-- bootstrap cdn --> 

    </head> 
    <body> 

     <div id="wrap"> 

      <div class="container"> 

       <div class="row"> 

        <div class="col-md-4 col-md-offset-4"> 

         <div class="panel panel-info"> 
          <div class="panel-heading"><strong>Register</strong></div><!-- panel heading--> 
          <div class="panel-body"> 

           <form action="register.php" method="post"><!-- basic registration form--> 

            <div class="form-group"> 
             <label for="username">Username</label> 
             <input type="text" class="form-control" id="username" name="username" placeholder="User name" required> 
            </div> 

            <div class="form-group"> 
             <label for="email">Email address</label> 
             <input type="email" class="form-control" id="email" name="email" placeholder="Email Address" required> 
            </div> 

            <div class="form-group"> 
             <label for="password">Password</label> 


      <input type="password" class="form-control" id="password" name="password" placeholder="Password" required> 
            </div> 

            <div class="form-group"> 
             <label for="passwordv">Password</label> 
             <input type="password" class="form-control" id="passwordv" name="passwordv" placeholder="Password Verification" required 
             > 
            </div> 


            <button type="submit" class="btn btn-primary btn-lg btn-block">Register</button> 
            <input type="hidden" name="submitted" value="1"> 
           </form> 
          </div> <!-- panel body --> 
         </div><!-- panel end --> 
        </div><!-- column end --> 
       </div><!-- row end --> 
      </div><!-- container end --> 
     </div> <!-- wrap end --> 



    </body> 
    </html> 
+0

を得た。これは、 ''あなたの隠された入力を使用して)あなたに偽陽性ところで '場合(ISSET($ _ POST [ '提出'])== 1を与えるため

 $q = "INSERT INTO user (username, email, password) VALUES ('$username', '$email', SHA1('$password'))"; 

にあなたをそれを変更 'そして、決して発砲しないでしょう。 –

+1

あなたの間違い?本当のエスケープパスワードを見ますか?パスワードをプレーンテキストとして保存しますか? SQLインジェクションにオープンしています(実際のエスケープ文字列はあなたを完全に保護しません)?私はこれが何のためのものなのか分かりませんが、あなたがこの道を続けるなら、あなたは多くの問題に取り組むつもりです。 – icecub

+2

以下のリンクhttp://php.net/manual/en/mysqli.error.phpとhttp://php.net/manual/en/function.error-reporting.php を参考にしてコードに適用してください。 –

答えて

0

あなたはSQL変数を終了しませんでした。 A)

+0

SQL変数 – Prathameshb7

+0

を終了しても、まだ 'データが入力されていません'というメッセージが表示されています。これは最初にvar:$ password = sha1($ password)を追加します。それから、sha1をSQLから削除し、 '$ password'で置き換えて、if(!mysqli_query($ dbc、 "INSERT INTO user(username、email、password)VALUES( '$ username'、 '$ email'、 '$パスワード ")"))) { echo( "エラーの説明:" mysqli_error($ con)); } –

+0

ありがとうございます。これはうまくいった。あなたが見せたものと私がやったものの違いは何ですか? 私は今、私の大学のプロジェクトとその素晴らしい経験のためにすべてを学んでいます。 – Prathameshb7

関連する問題