Полное раскрытие: Это домашнее задание.Вход в систему с PHP
Я бы не привел это здесь, но я действительно понятия не имею, что происходит, сообщения об ошибках сервера, которые я использую, воспитывают nada, и я не получаю абсолютно никакого вывода, что из сценария. Я знаю, что это не так, как можно было бы идеально сделать такую операцию.
Форма
<div class="jumbotron text-center">
<img class="featuredImg" id="logo" src="Images/ZombieBitLogo.png">
<hr>
<form id="form-signin" class="form-signin" action="login.php" method="POST">
<h2 class="form-signin-heading">Come on in</h2>
<input type="text" class="form-control" placeholder="Username" name="user" required="" autofocus="">
<input type="password" class="form-control" placeholder="Password" name="pass" required="">
<button id="signin" class="btn btn-lg btn-success btn-block" type="submit" name="action" value="login">Sign in</button>
</form>
<form class="form-signin" action="login.php" method="GET">
<button id="signout" class="btn btn-lg btn-success btn-block" type="submit" name="action" value="logout">Sign out</button>
</form>
</div>
РНР
<?php
echo("hello");
if(!session_start()){
echo("Error 312: Zombie chewed through a cable.");
exit;
}//endif
$user = empty($_POST[ "user" ]) ? '' : $_POST[ "user" ];
$pass = empty($_POST[ "pass" ]) ? '' : $_POST[ "pass" ];
echo($user);
echo($pass);
$loggedIn = empty($_SESSION[ "loggedin" ]) ? false : $_SESSION[ "loggedin" ];
if($loggedIn){
header("Location: order.php");
exit;
}//endif
$action = empty($_POST[ "action" ]) ? '' : $_POST[ "action" ];
if($action == "login"){
handle_login();
}else{
login_form();
}//endel
function handle_login(){
$user = empty($_POST[ "user" ]) ? '' : $_POST[ "user" ];
$pass = empty($_POST[ "pass" ]) ? '' : $_POST[ "pass" ];
if($user == "test" && $pass == "pass"){
$_SESSION[ "loggedin" ] = $username;
header("Location: order.php");
exit;
}else{
header("Location: log.html");
require "log.html";
}//endel
}//endfn
function login_form(){
$user = "";
$error = "";
require "log.html";
}//endfn
?>
В вторит по пути просто чтобы увидеть значения, ни один из них не печатать на моем конце.
Редактировать: Теперь я вижу, что это было довольно плохое место, чтобы опубликовать этот и плохой вопрос.
Для начала не должно быть * output * (т.е. 'echo') перед' session_start() ' – Phil
Является ли частью php-кода файла с именем login.php в том же каталоге, что и форма? Тот же файл будет работать тоже –
Кроме того, ваш 'require' после' header' не будет ничего хорошего делать. Всегда 'exit' после заголовка * Location * – Phil