我是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 7
和PHP 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);
?>