【问题标题】:How do I call $_SESSION[‘username’] from one php file to another?如何将 $_SESSION['username'] 从一个 php 文件调用到另一个?
【发布时间】:2021-05-11 17:48:49
【问题描述】:

在我的一个 php 文件 DataBase.php 中,我有一个名为 logIn 的函数,我在其中设置了 $_SESSION['username']。

我有另一个 php 文件 api.php,我想在其中使用相同的 $_SESSION['username']。

如何从 DataBase.php 中的 logIn 函数调用 $_SESSION['username'] 以在 api.php 中使用它?

【问题讨论】:

  • 您需要在另一个页面上启动会话才能访问会话变量,您可以使用以下方法启动会话:session_start();
  • 在您要使用的每个文件上S_SESSIONsession_start(); 放在该文件的顶部
  • 嗨 - 谢谢你的cmets。所以在我拥有session_start(); 的每个文件中,我可以调用这些变量吗?例如,在 DataBase.php 文件中,我有session_start()$_SESSION[‘username’] = “Bob”。这是否意味着在api.php文件中,如果我有session_start(),并且我调用$_SESSION[‘username’],它会引用Bob

标签: php mysql session


【解决方案1】:

这只是典型的 Cookie 用法。

在DataBase.php中,

session_start();
$_SESSION[‘username’] = 'Hasselhoff';

然后在任何其他 php 文件中使用“用户名”cookie 只需再次运行 session_start() 即可。

在OtherFile.php中,

session_start();
echo $_SESSION[‘username’];

编辑:在 sql 查询中使用它:

$userSelected =  $_SESSION[‘username’];
$sql = mysqli_query($conn, "SELECT product_id, price FROM products WHERE username = '$userSelected'");
$results= $sql ->fetch_assoc();

这是对漏洞开放的基本尝试。 请在此处阅读有关防止 sql 注入的内容,以使您的代码更安全 防止 php sql 注入:

How can I prevent SQL injection in PHP?

【讨论】:

  • 感谢您的回答!快速提问:我如何在 SQL 查询中使用这个变量?我目前有SELECT product_id, price FROM products。我想使用$_SESSION[‘username’] 这样我就可以拥有这个:SELECT product_id, price FROM products WHERE username = $username 其中$username$_SESSION[‘username’]
  • 谢谢。我刚试过这个,但它似乎不起作用。 SELECT product_id, price FROM products 成功地为我提供了所有项目的列表,但是当我尝试 "SELECT product_id, price FROM products WHERE username = '$username'" 时它不会返回任何内容。我还用"SELECT product_id, price FROM products WHERE username = 'Bob'" 对其进行了测试,看看它是否会过滤掉任何用户名为“Bob”的产品。
  • 如果你复制了我的代码,你应该使用WHERE username = '$userSelected'
  • 我目前有这个:session_start(); $username = $_SESSION['username']; $sql = "SELECT transaction_id, price FROM transactions WHERE username = '$username'"; $stmt = $conn->prepare($sql); $stmt->execute();
  • 我认为我没有正确设置$_SESSION['username'] = $username;。在我的 DataBase.php 文件中,我有一个用于 logIn 的函数:function logIn($table, $username, $password)。在此,我设置了$_SESSION['username'] = $username;。在文件顶部,函数之外,我有session_start()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
  • 2016-10-30
相关资源
最近更新 更多