我正在尝试学习PHP和MySQL,我想创建一个登录页面,它将检查数据库中的信息,如果信息正确,将让用户通过。
我有以下PHP代码:
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
$res = mysqli_query($sql);
if(mysqli_num_rows($res) == 1 ) {
echo "You have successfully logged in.";
} else {
echo "Invalid login information.";
}
} else {
echo "Not working.";
}
在我的主文件中,我有2个包含。一个是连接,另一个是这个php文件。在同一个文件(主文件)中,我有一个包含3个输入字段的表单:用户名,密码和提交类型。
问题是当我包含上面的php文件时,页面显示为空白而且我什么也得不回来,甚至没有"不工作"串。这是为什么?我的语法有什么不好的?
更新
我的主要文件代码:
<?php
include 'includes/connection.php';
include 'includes/login.php';
?>
<html>
<head>
<title>Login</title>
<link rel="stylesheet" href="css/login_page.css">
</head>
<body>
<div class="flex">
<div class="container">
<h3>Login to the site...</h3>
<p>The awesome site we created!</p>
<form method="post" action="login.php">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password"><br /><br />
<input type="submit" name="submit" class="btn-submit" value="Login">
</form>
</div>
</div>
</body>
</html>
连接PHP文件:
<?php
$server = "localhost";
$user = "Flopet17";
$pass = "1234";
$db = "listing";
$conn = new mysqli($server, $user, $pass);
mysqli_select_db($db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connection succeed";
?>
答案 0 :(得分:1)
答案 1 :(得分:1)
您应该在查询值$res
时查询变量$sql
将以下代码更改为:
$sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
$res = mysql_query($sql);
另外,@Barry在答案中说,你的分号丢失了
答案 2 :(得分:1)
<?php
$server = "localhost";
$user = "Flopet17";
$pass = "1234";
$db = "listing";
//$conn = new mysqli($server, $user, $pass);
//mysql_select_db($db);//Invalid with my sql
$conn = new mysqli($server, $user, $pass,$db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connection succeed";
?>
从表单中删除操作属性。行动将在同一页面上。如果您必须在另一个页面上创建操作,则应在其中包含数据库连接。
在查询部分:
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
// $res = mysqli_query($sql);
$res = $conn->query($sql);
if($conn->num_rows($res) == 1 ) {
echo "You have successfully logged in.";
} else {
echo "Invalid login information.";
}
} else {
echo "Not working.";
}
答案 3 :(得分:1)
你有错误报告吗?这将显示任何错误或通知 邮件用户名的回显将检查表单是否正常发布
$connect = mysql_pconnect($hostname, $username, $password) or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database, $connect;
$query_Recordset1 = "SELECT * FROM users WHERE users.username=$username ORDER BY
user.username LIMIT 1";
//
$Recordset1 = mysql_query($query_Recordset1, $connect) or die();
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$password_check=$row_Recordset1['password'];
if ($password_check==$password){echo"log in ok":}else{ what to do if fail
这非常不安全但是以http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL为例