我有一个个人资料页面,用于检索用户信息。
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
以便我可以将其插入数据库?
答案 0 :(得分:0)
您可以做的是将用户数据保存到会话
$_SESSION['user_data'] = $user->data();
一旦检查$data
已设置,您就可以将其分配回$_SESSION['user_data']
,否则请重新查询模型。
并且session_start()
也应该位于您要保留会话的每个文件的顶部。
类似于:
<强> 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。