После того, как файлы cookie должны быть установлены, я закрываю веб-сайт и снова открываю его. Я проверяю в настройках браузера файлы cookie, и у меня есть только sessionid, сохраненный в файлах cookie для моего веб-сайта.
Вот код:
<!DOCTYPE html>
<html>
<?php
require "D:/xampp/htdocs/Form_DB/Classes/ConnectionToDB.php";
require 'D:\xampp\htdocs\Form_DB\Classes\functionsMainPhp.php';
session_start();if(isset($_POST['LoginSubmit'])){
if(isset($_POST['LoginName']) and isset($_POST['LoginPass']) and validateNamebox($_POST['LoginName']) and validatePassword($_POST['LoginPass'])){
$loginName = $_POST['LoginName'];
$loginPass = $_POST['LoginPass'];
$db = ConnectionToDB::getInstance()->getConnection();
$query = $db->prepare("select count(*) as count from account where Name=? and Pass=?");
$query->execute(array($loginName,$loginPass));
while($rows = $query->fetch(PDO::FETCH_ASSOC)) {
if ($rows['count'] == "1") {
$_SESSION['IsSignedUp'] = true;
if($_SESSION['IsSignedUp'] and isset($_POST["LoginRemember"])){
setcookie($CookieName, $loginName, time() + (86400 * 30), "/"); // 86400 = 1 day
}
header('Location: MainForm2LoggedIn.php');
}else{
$_SESSION['IsSignedUp'] = false;
echo("Wrong username or password");
}
}
}else{
echo("Invalid username or password");
}
}
?>
<head>
<link rel="stylesheet" type="text/css" href="ProjectCSS.css">
<title>Login Form!</title>
</head>
<body id = "LoginBody"><form method = "post" action = "" class = "Login" >
<input class = "Login" type = "text" name = "LoginName" placeholder = "Username" style = "height:3em ; width:26.5em">
<?php if(isset($_POST['LoginName']) and (!validateNamebox($_POST['LoginName']))){
echo "Name must contain characters and white spaces only";
}
?>
<br>
<input class = "Login" type = "text" name = "LoginPass" placeholder= "Password" style = "height:3em ; width:26.5em">
<?php if(isset($_POST['LoginPass']) and (!validatePassword($_POST['LoginPass']))){
echo "Password must contain characters and digits only";
}
?>
<br>
<input class = "Login" action = "" type = "submit" name = "LoginSubmit" value = "Sign In" style = "height:2.9em ; width:28.5em" >
<br>
<div class = "LoginRemember">Remember me: <input type = "checkbox" name="LoginRemember" ></div>
<div class = "NoLoginGoReg">New user?: <a href="RegistrationForm.php">Sign up here!</a></div>
</form></body>
</html>
Вы должны отправить печенье (setcookie
) перед отправкой любого содержимого клиенту (удалите <!DOCTYPE html><html>
на вершине). То же относится и к header
команда, которая также работает, только если отправить перед любым контентом.
Других решений пока нет …