Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我想在登录文件中添加另一个会话_Php_Mysql_Session - Fatal编程技术网

Php 我想在登录文件中添加另一个会话

Php 我想在登录文件中添加另一个会话,php,mysql,session,Php,Mysql,Session,例如,当前我能够在登录后回显用户名会话。我希望能够根据登录的用户回显另一个会话,例如“company”。该信息也位于members表中 <?php //include config require_once('includes/config.php'); //check if already logged in move to home page if( $user->is_logged_in() ){ header('Location: dashb

例如,当前我能够在登录后回显用户名会话。我希望能够根据登录的用户回显另一个会话,例如“company”。该信息也位于members表中

<?php
    //include config
    require_once('includes/config.php');

    //check if already logged in move to home page
    if( $user->is_logged_in() ){ header('Location: dashboard.php'); } 

    //process login form if submitted
    if(isset($_POST['submit'])){
        $username = $_POST['username'];
        $password = $_POST['password'];

        if($user->login($username,$password)){ 
            $_SESSION['username'] = $username;
            header('Location: dashboard.php');
            exit;

        } else {
            $error[] = 'Wrong username or password or your account has not been activated.';
        }

    }//end if submit

    //define page title
    $title = 'Login';

    //include header template
    require('layout/header.php'); 
    ?>
    <div class="container">
        <div class="row">
            <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3">
                <form role="form" method="post" action="" autocomplete="off">
                    <h2>Please Login</h2>
                    <p class="message">Not registered? <a href="signup.php">Create an account</a></p>
                    <hr>

                    <?php
                    //check for any errors
                    if(isset($error)){
                        foreach($error as $error){
                            echo '<p class="bg-danger">'.$error.'</p>';
                        }
                    }

                    if(isset($_GET['action'])){

                        //check the action
                        switch ($_GET['action']) {
                            case 'active':
                                echo "<h2 class='bg-success'>Your account is now active you may now log in.</h2>";
                                break;
                            case 'reset':
                                echo "<h2 class='bg-success'>Please check your inbox for a reset link.</h2>";
                                break;
                            case 'resetAccount':
                                echo "<h2 class='bg-success'>Password changed, you may now login.</h2>";
                                break;
                        }

                    }


                    ?>

                    <div class="form-group">
                        <input type="text" name="username" id="username" class="form-control input-lg" placeholder="User Name" value="<?php if(isset($error)){ echo $_POST['username']; } ?>" tabindex="1">
                    </div>

                    <div class="form-group">
                        <input type="password" name="password" id="password" class="form-control input-lg" placeholder="Password" tabindex="3">
                    </div>
                    <div class="row">
                        <div class="col-xs-9 col-sm-9 col-md-9">
                             <a href='reset.php'>Forgot your Password?</a>
                        </div>
                    </div>  
                    <hr>
                    <div class="row">
                        <div class="col-xs-6 col-md-6"><input type="submit" name="submit" value="Login" class="btn btn-primary btn-block btn-lg" tabindex="5"></div>
                    </div>
                </form>
            </div>
        </div>
    </div>
    <?php 
    //include header template
    require('layout/footer.php'); 
    ?>

请登录

是否未注册



您需要将用户会话分配给用户id

以下是一个例子:

$userid=$\u会话['user\u会话]

有了这个选项,您就可以简单地:
SELECT*FROM`users`WHERE`userid`=?

我强烈建议使用事先准备好的语句,因为它更实用、更有效(并且还可以约束您的参数(如果您目前没有)

如上所述,您的代码可能易受攻击(取决于您的查询以及您是否对密码进行了哈希运算!!!)

如果您没有散列:


您的密码应在注册时使用
password\u hash()
加密,然后使用
password\u verify()加密
在登录等时。

我建议将会话分配给用户ID,然后您可以从用户ID获取所有信息以呼出其他信息。您知道,在实时环境中使用此代码是完全不安全的。如果你想保持数据的安全和数据库的完整性,请使用准备好的语句和
password\u hash()/password\u verify()
。@Fred ii-你看到了我没有看到的东西吗?据我们所知,
$user->login()
-方法可能包括准备好的语句和密码\u hash()。可能不会,但它可以。回显
$\u POST
-变量而不过滤它们,这只是乞求XSS攻击+没有CSRF保护。@MagnusEriksson好吧,我认为是对的,但在这种情况下,我认为是50%错误;-)所以,我们都是对的,哈哈,但机会是,这不安全;蜘蛛侠的感觉。@Fred ii-不反对你的观点…:-)