【问题标题】:PHP post doesn't have values of formPHP 帖子没有表单值
【发布时间】:2016-11-09 14:38:57
【问题描述】:

这里是表单的代码(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 中,但它只有一个开始 html 标记头部和正文的开始标记。

谁能解释一下我做错了什么。

【问题讨论】:

    标签: php html post


    【解决方案1】:

    在表单标签集action="login.php"中,点击登录按钮,表单数据将被传递到同一页面进行处理。
    或者您可以使用action="&lt;?php echo $_SERVER["PHP_SELF"];?&gt;" 选择同一页面进行处理

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2018-12-02
      • 2023-03-12
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      相关资源
      最近更新 更多