0

抛开所有的安全问题。

  • 我创建了一些会话数据。此会话数据包括存储在“myusername”下的用户名。

  • 我还创建了一个 html 表单,它在我的一个表中添加了一行。


我正在尝试从查询(使用会话数据)中检索到一些数据,以便与已提交的表单数据一起放入。

基本上创建谁提交数据的记录。

这是我的代码:

<?php
session_start();
if ( isset( $_SESSION['user'] ) ){
  header("location:failedlogin.html");
}
echo $_SESSION['myusername'];
var_dump($_SESSION);

//Connect
$con= mysql_connect("localhost","root","password");
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("database1", $con);

//create Get UserId from user
$result= mysql_query("SELECT UserId FROM user
WHERE UserName='{$_SESSION['myusername']}'");

//I think this is where the problem is 
//execute query and store results
if($result){
  $data = mysql_fetch_assoc($result);
}

//insert form data and $data into database 1
$sql="INSERT INTO bug 
(bugName, bugBy, bugPriority, bugFor, bugContainer, bugFixed, bugCommentCount)
VALUES ('$_POST[bugname]','$data[0]','$_POST[bugpriority]',
        '$_POST[bugfor]','$_POST[bugcontainer]','0','0')";

if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); }
mysql_close($con)
?> 

我似乎无法让它从SELECT查询中提交数据,表单数据通过正常。

对不起,如果我把这个安排得很糟糕。我发现很难理解我做错了什么,所以我不知道如何解释我正在寻找的东西。

感谢您的任何帮助!如果您需要更多信息,请与我们联系。

4

2 回答 2

2

您的 SQL 语句不正确,变量需要转义。

"...VALUES('". $_POST['bugname'] . "')";

正如您目前所拥有的,$_POST[bugname]它将尝试找到一个名为“bugname”的常量全局变量。这将不存在。

但是,$_POST['bugname']将引用数组中的正确键。

不得不提一下,这不仅是创建 SQL 语句的糟糕方式,而且非常不安全

于 2013-10-14T20:38:20.600 回答
0

您正在使用 fetch_assoc,因此它返回一个关联数组:

代替$data[0]

插入$data['UserId']

如果那不这样做,您是否检查$data过您的插入语句之前是否有任何内容?

ps你应该学习PDO:http ://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

于 2013-10-14T20:37:54.943 回答