2016-08-04 23 views
1

このコードにいくつか問題があります。私はSQLデータベースに接続していますが接続していますが、ポスト機能が動作していないようです。要素を調べてネットワーク接続を見ると、それは他の2つのものではなく、1つのものをポストします。誰かが私を助けることができたら、それは素晴らしいだろう。データベースでポスト機能が期待通りに機能しない

おかげで、

ベン

<?php 

$connection = mysql_connect("localhost", "root", "password") or die("There is no connection to the server"); 
mysql_select_db("tutorial", $connection) or die("Couldn't connect to database"); 

if ($_POST['login']){ 
    if ($_POST['username'] && $_POST['password']){ 
     $username = mysql_real_escape_string($_POST['username']); 
     $password = mysql_real_escape_string(hash("sha512", $_POST['password'])); 
     $user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `Username`='$username'")); 
     if ($user == '0'){ 
      die("That username does not exist. <a href='index.php'>&larr; Back</a>"); 
      echo "<h1> Test </h1>"; 
     } 
     if ($user['Password'] != $password) { 
      die("Incorrect password! <a href='index.php'>&larr; Back</a>"); 
      echo "<h1> Test </h1>"; 
     } 
     $salt = hash("sha512", rand() . rand() . rand()); 
     setcookie("c_user", hash("sha512", $username), time() + 24 * 60 * 60, "/"); 
     setcookie("c_salt", $salt, time() + 24 * 60 * 60, "/"); 
     $userID = $user['ID']; 
     mysql_query("UPDATE `users` SET `Salt`='$salt' WHERE `ID`='$userID'"); 
     die("You are now logged in as $username"); 
    } 
} 

echo " 
    <body style='font=family: verdana, sans-serif;'> 
     <div> 
      <h1>Login to Access Coins</h1> 
      <br /> 
      <form action='' method='post'> 
       <table> 
        <tr> 
         <td> 
          <b> Username </b> 
         </td> 
         <td> 
         <input type='text' name='username' style='padding: 6px;' /> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Password</b> 
         </td> 
         <td> 
          <input type='password' name='password' style='padding: 6px;' /> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <input type='submit' value='Login' /> 
         </td> 
        </tr> 
       </table> 
      </form> 
      <br /> 
      <h6> 
       Need an account? <a href='register.php'>Click Here 
      </h6> 
     </div> 
    </body> 

"; 
+0

「投稿機能が動作していないようです」というメッセージはどういう意味ですか? – developerwjk

+0

新しい友達を紹介します。これは、フォーム提出時にパラメータが間違ったり不足したりするたびに役立ちます: 'print_r($ _ POST);' あなたのページに値が正しく渡されているかどうかがわかります。 – technico

+0

@developerwjk: "postメソッドは動作していないようです"と言う必要があります。 – technico

答えて

1

はあなたの問題は、$ _POST [「ログインが」]に定義されることを期待し、ユーザーをログに記録することに依存しているという事実から来ます。ログインが定義されていないとして、あなたは単に削除(またはさらなる使用のためにコメントする)ことができます。

if ($_POST['login']){ 

と対応

} 

これを解決するための別の方法は置くために次のようになります。

<input name="login" type ="hidden" value=""> 
この値のフォーム内の

を渡すことができます。

+0

ありがとう!私はこれを一日中解決しようとしています! @テクニコ – benpete420

関連する問題