2016-08-04 54 views
1

我在使用此代碼時遇到了一些問題。我正在連接到一個SQL數據庫並且它連接了,但是這個post函數似乎沒有工作。當我檢查元素並查看網絡連接時,它會發佈一個內容,而不是其他兩件事。如果有人能幫助我,那會很棒。Post函數與數據庫無法正常工作

感謝,

<?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:我們必須說「郵政方法似乎沒有工作」,是不是? – technico

回答

1

你的問題來與您的期望$ _ POST來定義[「登錄」],並依靠它來記錄用戶的事實。作爲登錄沒有定義,你可以簡單地刪除(或進一步使用評論):

if ($_POST['login']){ 

和相應的

} 

解決此的另一種方法是把:

<input name="login" type ="hidden" value=""> 

你的表格裏面這個值可以通過。

+0

非常感謝!我一直在努力解決這個問題! @technico – benpete420