PHP-简单登录-看不到数据库 登录
我在PHP5.5中使用phpMyAdmin。我的数据库名是aid,表名是users。表单在那里,数据库和表格在那里,但它在提交时直接进入目标页面,而不检查用户。尝试此操作也不要向用户提示登录有什么问题。还可以使用重定向功能。代码如下:PHP-简单登录-看不到数据库 登录,php,mysql,Php,Mysql,我在PHP5.5中使用phpMyAdmin。我的数据库名是aid,表名是users。表单在那里,数据库和表格在那里,但它在提交时直接进入目标页面,而不检查用户。尝试此操作也不要向用户提示登录有什么问题。还可以使用重定向功能。代码如下: <body> <div class="login-card"> <h1>Log-in</h1><br> <form action="incident-form
<body>
<div class="login-card">
<h1>Log-in</h1><br>
<form action="incident-form.php" method="POST">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<input type="submit" name="submit" class="login login-submit" value="Login">
</form>
<div class="login-help">
<a href="#">Register</a> <a href="#">Forgot Password</a>
</div>
</div>
</body>
</html>
<?php
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("aid");
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$query = mysql_query("SELECT * FROM users WHERE username='".$username."'");
if (mysql_num_rows($query) > 0){
while($row = mysql_fetch_assoc($query)) {
if ($row = ['password'] == $password){
echo "Successfully logged in!";
}else{
echo "Wrong password";
}
}
}else{
echo "Username not found";
}
}
?>
如果(!function_存在('redirect_to')){
函数重定向到($new\u位置){
标题(“位置:”.$new_位置);
出口
}
}
首先更改您的操作
标签
if (!function_exists('redirect_to')) {
function redirect_to($new_location) {
header("Location: " . $new_location);
exit;
}
}
<?php
$connect = mysqli_connect("localhost", "root", "", "aid");
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_assoc($result)) {
if ($row['username'] == $username && $row['password'] == $password) {
echo "Successfully logged in!";
redirect_to("dashboard.php");
} else{
echo "Login Is wrong";
}
}
} else{
echo "Username/Password not found";
}
}
}
?>
如果登录成功,则使用header()
将用户重定向到incident form.php
if ($row['password'] == $password){
至少用它来预防
但是,还是要使用
mysqli.*
而不是mysql.*
API。PHP不是这样工作的,服务器根据发送的请求进行处理。您必须将代码移动到incident form.php
的顶部,并仅在其登录时显示该内容,或者必须将此代码放在中间的页面上,将表单指向那里,并使用header
函数重定向,否则您将不得不构建一个javascript调用来调用代码,并根据结果阻止提交
为您在解决方案上展开。你需要三页纸
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
将此更改:if
($row=['password']=$password){
更改为:if($row['password']=$password){
。仔细阅读您的问题,您是否希望在表单移动到事件表单之前,在表单提交上运行php脚本。php
?@RockMyAlgorithm,谢谢,但仍然不起作用…并且停止使用mysql\uu
(尤其是在您运行php 5.5之后)。请改用或PDO。是的,我希望php脚本在用户验证后进入下一页之前验证用户。此外,还可以将您的php置于HTMLTanks之上。非常重要的是,它现在可以工作,但只有在我采取行动进入下一页时才能工作。但我需要它在登录后进入下一页。现在它只停留在登录页上:/depen关于OP在何处使用它,考虑到只有公司内的用户才能登录(用户名是标准的),安全逻辑是正确的。如果需要更高的安全性,则应删除提示。@Co2i在回答中添加了重定向功能
header("LOCATION:incident-form.php"); /* PUT THIS INSIDE YOUR IF CONDITION */
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$connect = mysqli_connect("localhost", "root", "", "aid");
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_assoc($result)) {
if ($row['username'] == $username && $row['password'] == $password) {
header("Location: incedent-form.php");
} else{
header("Location: login-form.php");
}
}
} else {
header("Location: login-form.php");
}