2015-05-01 36 views
-4

我有一个简单的联系表单,它将两个变量发布到PHP,然后将其插入到数据库中。PHP - 比较用户输入的数据与数据库中的数据

<?php 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 
    $db->query("INSERT INTO users (username,password) VALUES ('$username', '$password')"); 
?> 

现在我已经创建的login.php,在这里我希望用户能够使用存储在数据库中的信息进行登录。我不担心安全问题或任何其他问题,我只是想让自己陷入困境。什么是允许用户使用他们的用户名和密码登录的最简单的方法?

+0

它已经是使用用户名和密码的最简单的方法.. – DevLakshman

+0

是的,我有一个表单,用户可以输入他们的用户名和密码。我只是不确定如何比较用户输入的内容与实际在数据库中的内容。 –

+0

你使用PDO吗? – Akar

回答

0

假设你不想要任何安全性。我会做这样的事情:

$db->query("SELECT * from `users` where username = :username AND password = :password"); 

用用户输入替换用户名和密码。

警告:不要在生产环境中使用它。这是SQL注入漏洞。

你执行查询,检查查询行数,如果它等于1,这意味着有与usernamepassword用户。如果它等于0这意味着它没有被找到。然后你可以显示错误或任何。

事情是这样的伪代码:

if(rowCount == 1) { 
    // log the user in 
} 

// Invalid credentials. Print some errors. 

如果你想安全,使用PDO或mysqli功能。因为mysql_*功能已弃用且不再维护。并考虑使用password_hash API来散列您的密码。

+0

这将失败。变量是字符串需要引用。 –

+0

@ Fred-ii-我只是给了OP一个关于如何查询数据库的想法。我还添加了一条关于SQL漏洞的警告。 – Akar

+0

当然,我会同意但需要引用变量。通过向他们展示你现在拥有的东西,他们会认为不这样做并且会给他们发送错误信息;-) –

0
error_reporting(0); 
    session_start(); 
    include_once '../example.php'; 

    /***************************** Step 2 ****************************/ 
    if(isset($_REQUEST['admsubmit'])) 
    { 

     $result=executeQuery("select * from adminlogin where admname='".htmlspecialchars($_REQUEST['name'],ENT_QUOTES)."' and admpassword='".md5(htmlspecialchars($_REQUEST['password'],ENT_QUOTES))."'"); 

    // $result=mysqli_query("select * from adminlogin where admname='".htmlspecialchars($_REQUEST['name'])."' and admpassword='".md5(htmlspecialchars($_REQUEST['password']))."'"); 
     if(mysqli_num_rows($result)>0) 
     { 

      $r=mysqli_fetch_array($result); 
      if(strcmp($r['admpassword'],md5(htmlspecialchars($_REQUEST['password'],ENT_QUOTES)))==0) 
      { 
       $_SESSION['admname']=htmlspecialchars_decode($r['admname'],ENT_QUOTES); 

       header('Location: admwelcome.php'); 
      }else 
     { 
     echo "Check Your user name and Password."; 

     } 

     } 
     else 
     { 
      echo "Check Your user name and Password."; 

     } 
     closedb(); 
    } 

通过上面的代码..它是一个简单的例子,通过登录凭证形式检查登录页面后重定向。

+0

这里同样的事情; OP不使用'mysql_'功能。加上这个'$ _GLOBALS'是不正确的。现在出现一个错字'mysqil' –

+0

请参阅编辑&代码仅在例如一个轴页面给出 – DevLakshman

+0

'mysqil' typo和'$ _GLOBALS'仍然不正确。查看超全球网页http://php.net/manual/en/language.variables.superglobals.php和'error_reporting(0);'表示关闭。 http://php.net/manual/en/function.error-reporting.php –

相关问题