这里是表单的代码(login.php):
<?php
if (Input::exists ()) {
echo "Input <br/>";
if (Token::check ( Input::get ( 'token' ) )) {
echo "Token <br/>";
$validate = new Validation ();
$validation = $validate->check ( $_POST, array (
'username' => array (
'required' => true
),
'password' => array (
'required' => true
)
) );
if ($validation->passed ()) {
$user = new User ();
$remember = (Input::get ( 'remember' ) === 'on') ? true : false;
$login = $user->login ( Input::get ( 'username' ), Input::get ( 'password' ), $remember );
if ($login) {
Session::flash ( 'home', 'You are now logged in!' );
Redirect::to ( 'index.php' );
} else {
echo '<p>Sorry, logging in failed</p>';
}
} else {
foreach ( $validation->errors () as $error ) {
echo $error, '<br>';
}
}
}else{
echo "No Token <br/>";
}
}else{
echo "No Input <br/>";
var_dump ($_POST);
}
?>
<br />
<div class="row">
<div class="col-md-4 col-md-offset-4">
<p class="text-center">
Log in or <a href="index.php?page=register.php">Register</a>
</p>
<form class="form-horizontal" action="" method="post">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">Username: </label>
<div class="col-sm-10">
<input type="text" class="form-control" name="username"
id="username" placeholder="Username" autocomplete="off" />
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Password: </label>
<div class="col-sm-10">
<input type="password" class="form-control" name="password"
id="password" placeholder="Password" />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label> <input type="checkbox" name="remember" id="remember" />
Remember me
</label>
</div>
</div>
</div>
<input type="hidden" name="token" value="<?php echo Token::generate(); ?>" />
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-default" value="Log in" />
</div>
</div>
</form>
</div>
和Input.php:
<?php
class Input{
public static function exists($type = 'post'){
switch($type){
case 'post':
return (!empty($_POST)) ? true : false;
break;
case 'get':
return (!empty($_GET)) ? true : false;
break;
default:
return false;
break;
}
}
public static function get($item){
if(isset($_POST[$item])){
return $_POST[$item];
}elseif(isset($_GET[$item])){
return $_GET[$item];
}
return '';
}
}
?>
我没有看到什么是错的。我检查了6次,但仍然没有。 login.php包含在index.php中,但是它只有一个start html-tag头部和body的开始标记。
有人可以解释一下我做错了什么。
答案 0 :(得分:0)
在表单标签集action="login.php"
中,单击登录按钮,表单数据将传递到同一页面进行处理。
或者您可以使用action="<?php echo $_SERVER["PHP_SELF"];?>"
选择同一页面进行处理