2016-08-04 55 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