【发布时间】:2019-02-15 00:55:25
【问题描述】:
我创建了简单的登录和注册系统,但遇到了一些问题。但不确定是 cookie 还是 cookie 和 php。接下来是我的代码:
在 index.php 上(登录页面我在标题中有此代码):
<?php
include('includes/config.php');
if(!$user->is_logged_in()){
header('Location: index.php');
exit;
}
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
if($user->login($username,$password)){
$_SESSION['username'] = $username;
header('Location: home.php');
exit;
} else {
$error[] = 'Wrong username or password or your account has not been activated.';
}
}
?>
当用户成功登录后在首页:
<?php include('includes/config.php');
if(!$user->is_logged_in()){
header('Location: index.php');
exit;
}
?>
配置文件:
<?php
ob_start();
session_start();
date_default_timezone_set('Europe/London');
define('DBHOST','localhost');
define('DBUSER','root');
define('DBPASS','pass');
define('DBNAME','db_name');
define('DIR','http://example.com/');
define('SITEEMAIL','noreply@domain.com');
try {
$db = new PDO("mysql:host=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
exit;
}
include('classes/user.php');
include('classes/phpmailer/mail.php');
$user = new User($db);
?>
问题是下一个,当用户成功登录并重定向到主页时,当用户注销时一切都很好,但是当用户登录并且没有注销时返回索引页面(登录页面)我得到这个错误:
此页面无法正常工作 website.com 重定向您的次数过多。尝试清除您的 cookie。 ERR_TOO_MANY_REDIRECTS
当我从 google chrome 浏览器清除我的 cookie 时,错误已修复,但用户必须再次登录,当再次执行相同步骤时,我再次遇到相同的错误。
【问题讨论】:
-
好吧,如果他们没有登录,您将他们发送到同一个页面,该页面会检查并将他们无限期地发送到同一个页面。你在这里期待什么?
-
如果您使用的是 wordpress,请尝试阅读本文及其解决方案。 kinsta.com/blog/err_too_many_redirects
-
我没有使用 Wordpress @Roshan
-
而且每次出现错误时我都无法删除cookie,我需要修复此错误。每个登录并执行此操作的用户都会收到与我相同的错误。 @Roshan
-
如果他们没有登录,索引页面应该将他们重定向到登录页面。登录页面不应包含索引页面,因为索引页面应仅在您登录后可见。