我是php新手,我正在尝试进行注册并登录页面。
当我注册成为新用户时,它工作正常并出现在数据库中。但是,当涉及到登录时,似乎存在一个问题,我尝试了一切。
我想要做的是当用户登录时,它会将它们重定向到主页,如果登录信息错误,则会显示错误消息。
以下是登录文件中的php代码:
<?php
session_start();
if( isset($_SESSION['users_id']) ){
header("Location: /");
}
require 'database.php';
if(!empty($_POST['email']) && !empty($_POST['password'])):
$records = $conn->prepare('SELECT id,email,password FROM users WHERE email = :email');
$records->bindParam(':email', $_POST['email']);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
$message = '';
if(count($results) > 0 && password_verify($_POST['password'], $results['password']) )
{
$_SESSION['users_id'] = $results['id'];
header("Location: php.dev/index.php", true, 301); exit();
}
else {
$message = 'Sorry, thoes credentials do not match';
}
endif;
?>
{p> header("Location:....)
这似乎不起作用。我真的在这里遇到任何帮助吗?
这是html代码:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<link href="Style/phpstyle.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
</head>
<body>
<div class="header">
<a href="php.dev/index.php"> TIPBUCKET </a>
</div>
<?php if(!empty($message)): ?>
<p><?= $message ?></p>
<?php endif; ?>
<h1>Login</h1>
<span> or <a href="register.php">Register here</a></span>
<form action="login.php" method="POST">
<input type="text" placeholder="enter your email" name="email">
<input type="password" placeholder="Password" name="password">
<input type="submit">
</form>
</body>
</html>
提前感谢您的任何回复:)
答案 0 :(得分:0)
标题中有拼写错误:
header("Location: php.dev/index.php", ture, 301);
应该是
header("Location: php.dev/index.php", true, 301);