我有一个包含以下代码的登录页面:
一切正常,除了登录。如果我输入了incorect用户或密码,我会使用incorect用户或密码来回复错误。如果我不填写表格,我会发现错误,你必须填写...
当我输入正确的用户名和密码而不是显示链接时,它会再次显示登录表单。
session_start();
require_once("../includes/config.php");
if(isset($_SESSION['logged_in'])){
?>
<div class="contaniner">
<ol>
<li><a href="#">Link1</a>
<li><a href="#">Link2</a>
<li><a href="#">Link3</a>
</ol>
</div>
<?php
}else{
if (isset($_POST['username'], $_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($username) or empty($password)){
$error='All fields are required!';
}else{
$query = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$query->bindValue(1, $username);
$query->bindValue(2, $password);
$query->execute();
$num = $query->rowCount();
if($num == 1){
$_SESSION['logged_in'] = true;
header('Location: index.php');
exit();
}else{
$error = 'Incorrect details!';
}
}
}
?>
答案 0 :(得分:1)
问题已解决。我的vps是一个错误,我在/ var / lib / php
中有一个名为sessions的文件夹答案 1 :(得分:0)
我想我知道它是什么。标题位置必须是实际网址。
header('Location:index.php');
应该是
标题('位置:http://google.com/index.php');
当然这只是一个例子。
尝试一下,它应该修复它。
答案 2 :(得分:0)
一个选项可能是检查你的sql语句是否返回了类似的内容:
如果($行== 0){ 做某事(比如错误凭据的错误消息) }其他{ 做某事(比如开始你的会话)。 }
另一个问题是如何布局if和else语句。你能试试这个:
if(session exists){ 展示一些东西 }
if(form submitted){ 做任何与提交的表格有关的事情 }其他{ 显示表格 }
我希望它有所帮助。