为什么$ _SESSION没有按预期保存我的变量?

时间:2019-01-02 23:17:54

标签: php mysql forms session mamp

我是PHP和mySQL数据库的新手。我正在尝试为一个大学项目构建一个android应用,该应用从mySQL MAMP数据库中提取数据。

我与数据库的连接正常,并且可以成功登录。由于用户名是唯一键,因此我想将其提供给另一个.php文件,该文件将从数据库的另一个表中提取用户特定的数据。由于某种原因,$ _ SESSION不起作用。已经尝试了几个小时了-似乎无法修复。

期待我能得到的任何帮助。非常感谢:)

编辑:如果我手动输入用户名而不是变量$ snr,它将按预期工作。那就是为什么我认为它与showimpfungen.php中的$ _SESSION有关

更新:因此,在我进行了一些故障排除后-问题似乎如下。如果我在我的android模拟器上按下“登录”按钮-将创建一个会话文件,其中的变量已正确存储。 但是在我运行showimpfungen.php脚本后,将创建另一个具有不同ID的会话文件。我想这就是Notice: Undefined index: why in /Applications/MAMP/htdocs/showimpfungen.php on line 11的原因。 另外,在浏览器中运行它时,我得到了PHP Notice: Undefined index: user_name in /Applications/MAMP/htdocs/login.php on line 7PHP Notice: Undefined index: password in /Applications/MAMP/htdocs/login.php on line 9。我的猜测是,我之所以得到这些,是因为它们是从仿真器中的用户输入中获取其值的。

conn.php:

<?php

session_start();


$db_name = "Impfdatenbank";
$mysql_username = "root";
$mysql_password = "root";
$server_name = "localhost";

$conn = mysqli_connect($server_name, $mysql_username, $mysql_password, $db_name);

if(mysqli_connect_error($conn))
{
    echo "Failed to connect";
}

?>

login.php:

<?php

session_start();

require "conn.php";


$user_name = $_POST["user_name"];
$_SESSION['why'] = $user_name;
$user_pass = $_POST["password"];

$mysql_qry = "select * from personen_daten where svnr like '$user_name' and password like '$user_pass';";

$result = mysqli_query($conn, $mysql_qry);


if(mysqli_num_rows($result) > 0){

    echo "Login successful.";
}

else{
    echo "Login failed.";
}


?>

showimpfungen.php:

<?php

session_start();

require "conn.php";

$snr = $_SESSION['why'];

$mysql_qry = "select * from Impfungen where svnr like '$snr'";

$query = mysqli_query($conn, $mysql_qry);


if($query)
{
    while ($row = mysqli_fetch_array($query))
    {
        $flag[] =$row;
    }
    print(json_encode($flag));
}
mysqli_close($conn);

?>

0 个答案:

没有答案