php - 如何连接 login.php 和数据库?
问题描述
我有登录页面和数据库,如果用户存在,登录页面将重定向到 index_user.php 但是在这种情况下,当我提交存在的用户时,它只显示该目录的空白页
http://localhost:8080/mbl1/web_mbl1/login.php?username=tes&password=tes&submit=submit
(登录表单在 index.php 中)
我试着用
header("location:index_user.php");
如下所示。这是我的索引文件:
<div class="modal" id="mymodal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Login</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<form action="login.php" method="POSTs">
<div class="form-group">
<input type="text" name="username" placeholder="Username" class="form-control">
</div>
<div class="form-group">
<input type="password" name="password" placeholder="Password" class="form-control">
<button type="submit" name="submit" value="submit">submit</button>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal" id="mymodal2" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Register</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<form action="register.php" method="POST">
<div class="form-group">
<input type="text" name="username" placeholder="Username" class="form-control" required>
</div>
<div class="form-group">
<input type="password" name="password" placeholder="Password" class="form-control" required>
</div>
<div class="form-group">
<input type="phone" name="nohp" placeholder="Phone Number" class="form-control" required>
</div>
<div class="form-group">
<input type="email" name="email" placeholder="Email" class="form-control" required>
<button type="submit" name="submit" value="submit">submit</button>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
这是我的 register.php
<?php
$username=$_POST['username'];
$password = $_POST['password'];
$nohp=$_POST['nohp'];
$email=$_POST['email'];
if( !empty($username)|| !empty($password)|| !empty($nohp )|| !empty($email)) {
$host="localhost";
$dbusername="root";
$dbpassword="root";
$dbname="mobile1";
$conn=new mysqli($host,$dbusername,$dbpassword,$dbname);
if ( mysqli_connect_error() ){
die('Connect Error('.mysqli_connect_errno().')'.mysqli_connect_error());
} else {
$select="select email from register where email = ? limit 1 ";
$insert="insert into register(username,password,nohp,email) values
(?,?,?,?)";
$stmt=$conn->prepare($select);
$stmt->bind_param("s",$email);
$stmt->execute();
$stmt->bind_result($email);
$stmt->store_result();
$rnum=$stmt->num_rows;
if ($rnum==0){
$stmt->close();
$stmt=$conn->prepare($insert);
$stmt->bind_param("ssis",$username,$password,$nohp,$email);
$stmt->execute();
echo "<script> alert('login work');
window.location.href='index.php';
</script>";
} else {
echo "<script> alert('the email already used');
window.location.href='index.php';
</script>";
}
$stmt->close();
$conn->close();
}
} else {
echo "All field are";
}
这是 login.php
<?php
session_start();
$username = $_POST['uname'];
$password = $_POST['password'];
$k = new PDO("mysql:host=localhost;dbname=mobile1", "root", "root");
$sql = "SELECT * FROM register
WHERE username = ?";
$result = $k->prepare($sql);
$result -> execute([$username]);
if($row = $result->fetch()){
if($password, $row['password'])){
$_SESSION['username'] = $row['username'];
header("location:index_user.php");
} else {
header('Location: login_wrong.php');
}
} else {
header('Location: login_wrong.php');
}
如果用户存在,用户将转到 index_user.php,如果不存在,将转到 index.php
解决方案
表单方法必须POST
不是POSTs
<form action="login.php" method="POST">
推荐阅读
- reactjs - WP Gutenberg,如何将变量从后端(保存函数)传递到前端(在保存函数输出中呈现的 React 应用程序)?
- javascript - JS- 相应地过滤 JSON
- javascript - evoPDF 转换触发模式不起作用
- image - 在我在 vue chrome 开发工具中打开组件之前,数据属性中的图像文件路径不会显示
- charts - 如何用 highcharts 库绘制欧拉图?
- eclipse - 如何将现有的 iLog 规则 jar 导入 Eclipse?
- azure - 如何使用 azure 将数据加载到 sql sink 中?
- swift - UIPickerView 在重新加载时冻结 UI
- node.js - 避免工作负载与并行服务重叠
- javascript - React build issus:你可能需要一个合适的加载器来处理这个文件类型,目前没有配置加载器来处理这个文件