2017-08-01 82 views
0

我在000webhost上創建了一個賬戶來創建具有登錄表單的html頁面。但是當我嘗試將表單連接到數據庫時,我遇到了錯誤。使用php和mysql創建登錄表單

下面是HTML代碼:

 <html> 

    <head> 
     <title>Login Page</title> 

     <style type = "text/css"> 
     body { 
      font-family:Arial, Helvetica, sans-serif; 
      font-size:14px; 
     } 

     label { 
      font-weight:bold; 
      width:100px; 
      font-size:14px; 
     } 

     .box { 
      border:#666666 solid 1px; 
     } 
     </style> 

    </head> 

    <body bgcolor = "#FFFFFF"> 




     <div align = "center"> 
     <div style = "width:300px; border: solid 1px #333333; " align = "left"> 
      <div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div> 

      <div style = "margin:30px"> 

       <form method="POST" action="C1.php"> 
        <label>UserName :</label><input type = "text" name = "username" required = "box"/><br /><br /> 
        <label>Password :</label><input type = "password" name = "password" required = "box" /><br/><br /> 


        <input type = "submit" name="submit" value = " Login "/><br /> 

       </form> 

       <div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php echo $error; ?></div> 

      </div> 

     </div> 

     </div> 
    </body> 
</html> 

這裏是我的PHP頁面

 <?php 
session_start(); 
$servername = "localhost"; 
$username = "******"; 
$password = "******"; 

// Create connection 
$database_name = "id2425621_login"; 
$conn = mysqli_connect($servername, $username, $password, $database_name); 

if (isset($_POST['submit'])) 
     {  

    $username='king'; 
    $password='king123'; 

    $query = mysqli_query($conn, "SELECT * FROM mylogin WHERE username='$username' and password='$password'"); 
    if (mysqli_num_rows($query) != 0) 
    { 
    echo "sucess"; 
     } 
     else 
     { 
    echo "fail"; 
    } 
    } 
    ?> 

MySQL有一個名爲mylogin表的值有:

INSERT INTO `mylogin`(`username`, `password`) VALUES ('king','king123') 

我不能」 t連接到數據庫, 感謝您的幫助提前

  • 代碼更新
+5

我希望這些都不是你真正的數據庫憑據。您應該立即編輯問題並更改您的數據庫密碼。 – Barmar

+0

我用它作爲例子來測試我的問題。沒什麼大不了的 –

+0

哈希你的密碼。參數化您的查詢。您可以接受SQL注入。 – chris85

回答

1

你需要改變這一行:

<input type = "submit" value = " Login "/> 

要這樣:

<input type = "submit" name="submit" value = " Login "/> 

在你的PHP的if()聲明沒有$_POST['submit']撿因爲它不存在。

您還在混合mysql_mysqli_因爲mysql_已被棄用且通常被認爲是不安全的,因此所有內容都必須爲mysqli_

+0

這不是唯一的問題。混合API也 – Qirel

+1

好抓!謝謝。我會編輯我的答案。 – Difster

+0

另外'$ _POST ['king']''king'是它的POST值,而不是名稱。 – chris85

0

你沒有提及數據庫。您的MySqli連接需要數據庫參數。

$conn = mysqli_connect($servername, $username, $password); 

應該

$database_name = "foo"; 
     $conn = mysqli_connect($servername, $username, $password, $database_name); 

首先,你可以檢查使用下面的代碼你的連接是否正確。

if($conn){ 
    echo "Success"; 
    } 
else{ 
    echo "Error Connection";} 

MySQL函數應該按照庫MySQLi

$query = mysqli_query($conn, "SELECT * FROM mylogin WHERE username='$username' and password='$password'"); 
    if (mysqli_num_rows($query) != 0) 
+0

警告:mysqli_num_rows()期望參數1是mysqli_result,布爾在第18行給出/storage/ssd1/621/2425621/public_html/C1.php 失敗(這是我得到的時候,當我試圖登錄) –

+0

這是第18行:if(mysqli_num_rows($ query)!= 0) –

+0

首先檢查連接是否成功,然後嘗試其他代碼。 –