簡體   English   中英

在PHP和MySQL中創建的登錄表單。 如果其他方法不起作用

[英]Login form created in PHP and MySQL. If else doesn't work

因此,我將我的網站連接到MySQL,並制作了一個登錄表單。 這是提交文本框中的值的位置:

<?php
$username = $POST["username"];
$password = $POST["password"];

mysql_connect("localhost","opticon2_rgstr","mario106");
mysql_select_db("opticon2_rgstr");

$result = mysql_query("select * from users where username='$username' and 
password='$password'");
$row = mysql_fetch_array($result);
if ($row['username'] == $username && $row['password'] == $password)
{
echo "Successfully logged in!";
}
else
{
echo "Username or password are incorrect!";
}
?>

我在數據庫中添加了一個名為“ admin”的用戶,其密碼為“ admin”,但是即使我輸入了錯誤的用戶名和錯誤的密碼,它也會顯示:“成功登錄!”

您在第一行就有錯誤。 應該是$_POST而不是$POST 更正該錯誤可以修復您的代碼。 其次,

$result = mysql_query("select COUNT(*) as count from users where username='$username' and 
password='$password'");
$row = mysql_fetch_array($result);
if($row['count'] > 0) {
    echo "Successfully logged in!";
}

盡管正如我在上面評論的那樣,請不要使用不推薦使用且不安全的mysql * -functions 自PHP 5.5(在2013年)以來已棄用它們,並在PHP 7(2015年)中將其完全刪除。 改用MySQLi或PDO。 2.您對SQL注入持開放態度 ,應該真正使用預處理語句而不是連接查詢,如果使用上述MySQLi或PDO,可以使用這些語句

目前,以下代碼將為您服務

在這里,我已將您的mysql-function更改為mysqli-function,因為自PHP5.5起就不再使用mysqli函數了

您的代碼不是免費的sql-injection。 因此,您應該查看准備好的語句。

您也可以使用password_hash()或password_verify()函數來確保密碼的更高安全性。

$username = $_POST["username"];
$password = $_POST["password"];

$con = mysqli_connect("localhost","opticon2_rgstr","mario106");
if (!$con) {
die('Could not connect to server' .mysqli_error($con));
}
mysqli_select_db($con, "opticon2_rgstr") or die('Database could not e connected' .mysqli_error($con));


$result = mysqli_query($con,"select * from users where username='$username' and password='$password'");
$count = mysqli_num_rows($result);
if($count > 0){
$row = mysqli_fetch_assoc($result);
if ($row['username'] == $username && $row['password'] == $password)
{
echo "Successfully logged in!";
}
else
{
echo "Username or password are incorrect!";
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM