Я пытаюсь создать профиль пользователя, который использует куки для хранения информации о пользователе. Прямо сейчас я не использую базу данных, только переменные сессии и куки. До сих пор у меня действительный вход в систему работал нормально, и у меня один из файлов cookie работает так, как должен. Я хочу взять информацию, связанную с каждым тестовым пользователем, и передать ее, если он вошел в систему, и отобразить ее в своем профиле пользователя. У меня есть два файла, войдите в систему. php:
<?php
//Start PHP session
session_start();
//Arrays of valid user information.
$logins = array("test", "odyssey", "sheppard", "rmckay");
$passwords = array("123", "sgPB3865", "PuddleJump", "16431879196842");
$usernames = array("Test User", "Paul Emerson", "John Sheppard", "Rodney McKay");
$emails = array("bwingham1@artisteer.com", "sdibsdale2@vkontakte.ru", "jpaolini3@epa.gov","dvesco4@cafepress.com");
//multidimensional array added afterwards to see if it would work better, currently unused
$userLogins = array (
array("test", "123", "Test User", "bwingham1@artisteer.com"),
array("odyssey", "sgPB3865", "Paul Emerson", "sdibsdale2@vkontakte.ru"),
array("sheppard", "PuddleJump", "John Sheppard", "jpaolini3@epa.gov"),
array("rmckay", "16431879196842", "Rodney McKay", "dvesco4@cafepress.com")
);
//Check if the form has been submitted
if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') {
if (isset($_POST['pass']) && isset($_POST['user'])) {
//Username and password has been submitted by the user
//Receive and sanitize the submitted information
$user = trim(htmlspecialchars($_POST['user']));
$passwd = trim(htmlspecialchars($_POST['pass']));
$arr_len = count($usernames);
//Predefine variables
$validationed = false;
$err_msg = "";
//Loop through the array to see if there is a valid login/password combination
for($cnt=0; $cnt<$arr_len; $cnt++) {
if ($user == $logins[$cnt] && $passwd == $passwords[$cnt]) {
$_SESSION['authenticated'] = true;
$_SESSION['login_name'] = $user;
$_SESSION['user_email'] = $emails[cnt];
$_SESSION['login_time'] = time();
$_SESSION['user_name'] = $usernames[cnt];
$validationed = true;
}
}
if ($validationed === false) {
// If the loop completes without finding a valid login, set the error message.
$err_msg = "Invalid Login...Please Try Again";
} else {
header("Location: travel.php");
exit();
}
}
} else {
session_destroy();
session_unset();
session_start();
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="loginStyles.css">
</head>
<body id="LoginForm">
<div class="container">
<div class="login-form">
<div class="main-div">
<div class="panel">
<h1>Login</h1>
<p>Please enter your username and password</p>
</div>
<?php
//If $err_msg is set, display the message
if(isset($err_msg)) {
echo('<div class="alert alert-danger" role="alert">');
echo(' <strong>' . $err_msg . '</strong>');
echo('</div>');
}
?>
<!--actual login form-->
<form id="Login" action="login.php" method="post">
<div class="form-group">
<input type="username" class="form-control" name="user" placeholder="Username">
</div>
<div class="form-group">
<input type="password" class="form-control" name="pass" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary">Login</button>
</form>
</div>
</div>
</div>
</body>
</html>
Это прекрасно работает, когда дело доходит до входа и выхода, но единственный повар ie, которого я смог передать net page is
$_SESSION['login_name'] = $user;
, потому что он использует фактический пользовательский ввод. профиль. php выглядит следующим образом (за исключением того, что не слишком длинная навигационная панель и другие стили):
<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
require_once("auth_check.php");
$user = $_SESSION['login_name']; // <-- Works fine
$usernames = $_SESSION['user_name']; // <-- took no user input, so it does not work
setcookie("user_cookie", $user, time() + (86400 * 30), "/");
setcookie("username_cookie", $usernames, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
echo "Username: " . $_COOKIE["user_cookie"];
echo "Name: " . $_COOKIE["username_cookie"];
?>
</body>
</html
Так что я думаю, что я хочу знать, если я вошел в систему с помощью " test ", как я могу передать" Test User "и" bwingham1@artisteer.com "в виде файлов cookie на страницу профиля без жесткого кодирования чего-либо?