将用户名插入表中 - PHP

时间:2015-07-12 21:26:48

标签: php

我正在尝试制作一个简单的拍卖网站。我需要跟踪将项目添加到拍卖中的用户。我已经弄清楚如何存储用户的帐户ID,我认为存储用户名会很相似,但我无法解决。无论我尝试过什么,用户名永远不会存储在我的项目表中。

这是我的additemprocess.php页面。

<?php session_start(); ?>
<html>
<head></head>
<body>
<?php
require_once("dbconnect.inc");

$_SESSION['username']=$_POST['username'];
$item=$_POST['item'];
$description=$_POST['description'];
$accountid=$_SESSION['accountid'];

$sql= "INSERT INTO biditems (username, accountid, biditem, biddesc) VALUES
('{$_SESSION['username']}', '$accountid', '$item', '$description')";

$result=mysql_query($sql) or die("Error in adding item: " .mysql_error());
$mess="Item successfully added!";

echo $mess;
?>

这是应该列出项目的页面,显示添加项目的用户的用户名。

<?php
session_start();
require_once("dbconnect.inc");
require_once("checkstatus.inc");

$sql=" select * from biditems";
$result=mysql_query($sql);

echo "Items for Auction";
while($row=mysql_fetch_array($result)) {
$itemid=$row['itemid'];
$item=$row['biditem'];
$auctionby=$row['username'];
$description=$row['biddesc'];
echo "<p>$itemid $item $auctionby $description</p>";
}
?>

这是我添加项目的代码。

<?php
session_start();
require_once("dbconnect.inc");
?>
<form id="additem" name="additem" method="post" action="additemprocess.php">
Item<br>
<input type="text" name="item" id="item"/><br>
Description<br>
<textarea name="description" id="description"></textarea><br>
<input type="submit" name="submit" id="submit" value="submit"/>
</form>

2 个答案:

答案 0 :(得分:0)

您目前正在使用$_SESSION['username']=$_POST['username'];,但您需要将此用户名视为accountid。它应该在您登录会话时存储,然后在您的数据库中输入出价数据时调用。

例如:

登录时:

$_SESSION['username']=$_POST['username'];

存储出价时:

$username = $_SESSION['username'];

或者使用accountid从users表中获取用户名,然后将其添加到查询中,如下所示:

$username = $row['username'];

此外,如果您尝试了此操作但在使用会话的页面之间共享此数据时遇到问题,请确保在要使用会话的每个页面的顶部包含session_start();

答案 1 :(得分:-1)

问题发生在:$_SESSION['username']=$_POST['username'];,您将session设置为post甚至不存在......?设置$_SESSION['username'];在登录过程中。

因此,当您使用以下内容设置$_SESSION['accountid']等于当前登录帐户的ID时,$_SESSION['accountid'] = $row['id'];。

在那之下,您将添加$_SESSION['username'] = $row['username'];

然后只需删除添加项目流程中的$_SESSION['username'] = $_POST['username'];即可。

<小时/> 另一个声明:由于安全原因,在PHP5或更高版本中不推荐使用MySQL,因此不再使用MySQL。尝试使用MySQLi(MySQL改进或PDO):php.net/manual/en/mysqlinfo.api.choosing.php