我正在开发onlineshop.php页面,该页面应首先向用户询问他的购物车名称,这是使用java脚本的提示完成的。
我会将代码粘贴给您并清楚地解释问题
首先这是js代码:
function myFunction() {
var person = prompt("Please enter Cart Name");
document.getElementById("person").value=person;
document.getElementById("form").submit();
// if (person != null) {
// document.getElementById("demo").innerHTML =
// "Your Cart Name is " + person;
//}
}
它要求用户输入他的购物车名称。然后,页面中有很多产品,每个产品都有自己的形式添加到购物车中。这是表单的代码:
<form id='form' method='post' enctype='multipart/form-data' style='display:inline;' >
<figure>
<img src='eye.jpg' alt='The Pulpit Rock' width='130' height='130' style='left:00px;top:00px; '>
<figcaption style='text-align:center;'><b>".$info['Pro_Name']."</b><br/>".$info['Price']."<p style='color:green;'>".$info['Availability']."</p><p style='font-size:13px;display:inline'>Quantity:</p>
<input type='number' name='quantity' min='1' max='10' style='width:3em;'></figcaption>
</figure>
<input type='hidden' name='Pro_ID' value=".$info['Pro_ID']." />
<input type='hidden' name='Price' value=".$info['Price']." />
<input type='hidden' name='Pro_Name' value='".$info['Pro_Name']."' />
<input type='hidden' name='Availability' value='".$info['Availability']."' />
<input type='hidden' id='person' name='cart_Name' />
<input name='button1' type='submit' value='Add To Cart' style='width:8em; ' />
</form>
我尝试隐藏变量 person ,以便我可以在查询中使用它,将购物车名称插入数据库。
这是查询:
if ( isset($_POST['Pro_ID'], $_POST['Price'] , $_POST['Pro_Name'] ) ) {
$qry="INSERT INTO shopping_cart(Cart_Name,Pro_Name,Pro_ID,Price) VALUES ( '".$_POST['person']."','".$_POST['Pro_Name']."',".$_POST['Pro_ID'].",".$_POST['Price'].")";
$result = mysql_query ($qry );
}
点击添加到购物车:
时出现的错误Notice: Undefined index: person in C:\xampp\htdocs\sw\onlineshop.php on line 9
答案 0 :(得分:3)
发现差异:
document.getElementById("person").value=person;
^^^^^^--- your ID
<input type='hidden' id='person' name='cart_Name' />
your ID ---^^^^^^^^^^^ ^^^^^^^^^^---what gets submitted to the server
你想要$_POST['cart_Name']
。在提交表单时,JS端变量名称/ ID完全无关紧要。仅使用name
。
请注意,您很容易受SQL injection attacks攻击。请高枕无忧。你的服务器很快就会出现pwn3d,让你的问题无法解决。
答案 1 :(得分:0)
如果要在POST操作中将其用作索引,则name属性应为person。
鉴于您的代码现在的方式,查询中的索引名称应为&#34; cart_name&#34;