gpt4 book ai didi

php - 从数据库中检索当前用户 ID 以在新表中使用

转载 作者:行者123 更新时间:2023-11-30 00:48:12 25 4
gpt4 key购买 nike

我有一个个人资料页面,可以在其中检索用户信息。

Profile.php

  <?php
require 'core/init.php';

if(!$username = Input::get('user')) {
Redirect::to('index.php');
} else {
$user = new User($username);

if(!$user->exists()) {
Redirect::to(404);
} else {
$data = $user->data();
}
?>

<h3><?php echo escape($data->username); ?></h3>
<p>Membership No: <?php echo escape($data->id); ?></p>
<p>Full name: <?php echo escape($data->name); ?></p>
<p>Date of birth: <?php echo escape($data->dob); ?></p>
<p>Location: <?php echo escape($data->location); ?></p>
<p>Join date: <?php echo escape($data->joined); ?></p>



<?php

我想检索我的用户的 ID 以插入到我的订单页面中的另一个表中,到目前为止我已经有了这个

oerder.php

    <?php
session_start();
require 'core/init.php';

$Band_id = mysql_real_escape_string($_POST['band']);
$user_id = $_SESSION['id'];

$sql = "INSERT INTO orders (band_id,user_id) VALUES('$Band_id', '$user_id')";
mysql_query ($sql, $linkme)
or die ("could not add to database");
?>

目前 $user_id = $_SESSION['id']; 未将用户 ID 放入我的表 orders 中。

我试过了

<?php echo escape($data->id); ?>

$user_id = $_GET['id'];

但它不起作用,有人知道如何检索用户id以便我可以将其插入数据库吗?

最佳答案

您可以做的是将用户数据保存到 session 中

$_SESSION['user_data'] = $user->data();

一旦检查 $_SESSION['user_data'] 已设置,您就可以将其分配回 $data,否则重新查询模型。

并且 session_start() 也应该位于您想要为其保留 session 的每个文件的顶部。

所以类似:

Profile.php

<?php
session_start();
require 'core/init.php';

if(!$username = Input::get('user')) {
Redirect::to('index.php');
exit;
}

if(!isset($_SESSION['user_data'])){
$user = new User($username);

if(!$user->exists()) {
Redirect::to(404);
exit;
}

$_SESSION['user_data'] = $user->data();
}
?>

<h3><?php echo escape($_SESSION['user_data']->username); ?></h3>
<p>Membership No: <?php echo escape($_SESSION['user_data']->id); ?></p>
<p>Full name: <?php echo escape($_SESSION['user_data']->name); ?></p>
<p>Date of birth: <?php echo escape($_SESSION['user_data']->dob); ?></p>
<p>Location: <?php echo escape($_SESSION['user_data']->location); ?></p>
<p>Join date: <?php echo escape($_SESSION['user_data']->joined); ?></p>

oerder.php

<?php
session_start();
require 'core/init.php';

if(!isset($_SESSION['user_data'])){
Redirect::to('index.php');
exit;
}

$Band_id = mysql_real_escape_string($_POST['band']);
$user_id = $_SESSION['user_data']->id;

$sql = "INSERT INTO orders (band_id,user_id) VALUES('$Band_id', '$user_id')";
mysql_query ($sql, $linkme)
or die ("could not add to database");
?>

您还应该转向 PDO 或 mysqli。

关于php - 从数据库中检索当前用户 ID 以在新表中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21196714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com