安全地将变量数据传递到不同的php文件

安全地将变量数据传递到不同的php文件,php,sql,odbc,Php,Sql,Odbc,我试图在我的用户登录后创建一个仪表板,但是我希望它位于不同的页面上。但我担心通过url传递数据可能不是必需的,因为它可以手动更改。我想将$username传递到我的dash.php文件。这是我的密码: login.php <?php session_start(); //Insert Connection String require_once 'config.php'; if(!$_SESSION['username']){ if (!isset($_POST['submit'])) {

我试图在我的用户登录后创建一个仪表板,但是我希望它位于不同的页面上。但我担心通过url传递数据可能不是必需的,因为它可以手动更改。我想将
$username
传递到我的dash.php文件。这是我的密码:

login.php

<?php
session_start();
//Insert Connection String
require_once 'config.php';
if(!$_SESSION['username']){
if (!isset($_POST['submit'])) {
    echo'<form action="login.php?logged=yes" method="post">';
    echo'<label> Username</label>';
    echo'<input type="text" name="username"/>';
    echo'<label> Passowrd</label>';
    echo'<input type="password" name="password"/>';
    echo'<input type="submit" name="submit" value="Login!"/>';
    echo'</form>';
} else {


    //handle some errors
    //If both fields are empty
    if(!$_POST['username'] && !$_POST['password']) {
        echo"Try to login without entering any info, genius.";
    }
    else {
        //check if the username exists
        if(!empty($_POST['username'])) {
            //check if the password exists
            if(!empty($_POST['password'])) {
                //Put unencrypted username variable
               $username = $_POST['username'];
                //Encrypt the values
                $xusername = md5($_POST['username']);
                $xpassword = md5($_POST['password']);
                //Check if they exist in the database
                $query = odbc_exec($conn, "SELECT * FROM xmember WHERE    username='$xusername' AND password='$xpassword'");
                $user_rows = 0;
                while ($row = odbc_fetch_array($query)) {
                    $user_rows++;
                }
                odbc_free_result($query);
                if($user_rows == 1) {
                    echo 'Welcome, '.$_POST['username'];
                    $_SESSION['username'] = $_POST['username'];
                    echo "<meta http-equiv='refresh' content='3;url=dash.php'>";

                }
                else {echo"Sorry, your account information is invalid.";}
            }
            else {echo"Please put your password";}
        }
        else {echo"Please put your username";}

    }   


}
else {echo"what are you doing here?";}
?>

config.php

<?php
/*
Le Change Nickname PHP v1.0 made by Thor KK Klein LOL
CONFIG section
*/
//Set Network Config
$odbc_dsn = "mydb";
$odbc_user = "sa";
$odbc_password = "wh@tTh3!?";

$conn = odbc_connect($odbc_dsn, $odbc_user, $odbc_password);
if(!$conn) {die('Failed to connect to the database!');}


?>

dash.php

<?php
session_start();
require_once 'login.php';//load connection settings and get info

if(!$_SESSION['username']){
    echo"Are you kidding me?";
}else {
    //Display The Dashboard

    //Get user's typical information

    //Get user's table row array
    echo"Welcome, ".$username;
}
?>


我尝试将login.php一次性登录到我的dash.php以获取数据。。但是它似乎不起作用。

既然您将用户名存储在会话变量中,您可以从任何文件usibg
$\u session[“username”]
访问它。如果未设置密钥,您可以将用户重定向到您的登录页面。
您的“dash.php”文件可以这样修改:

<?php
require_once("config.php");
session_start();

if(!isSet($_SESSION["username"])) {
    // Redirect user to login page
    header("Location: login.php");
    exit();
}else {
    //Display The Dashboard
    //Get user's typical information
    //Get user's table row array

    echo("Welcome, " . $_SESSION["username"]);
}
?>


我不太明白。您将usrrname存储在会话变量中,这样您就可以从任何文件中访问它,而无需显式地传递它或包含一个furyher文件。我明白了。。如何将会话变量调出到dash.php?谢谢!我是php新手,所以在某些方面我仍然感到困惑。这是我第一次创建会话登录页面。是否也可以将会话分配到变量中?我不理解这个问题。可能没有必要给avatiable分配任何内容。
$\u SESSION
变量可用于存储有关会话的所有相关信息。阅读更多关于它的信息。