2017-08-01 76 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

首先检查连接是否成功,然后尝试其他代码。 –