大家好,我想知道他们是否是一种交叉检查select
选项被发布到不同页面的方法,database
只是为了确保有人没有使用检查元素或萤火虫或任何开发人员工具进行任何更改。
数据库表product
我的数据库看起来像这样,但其中包含 400 多个数据。
pid name size
1 grey 12 inch
2 blue 16 inch
数据库表category
pid category
1 vans
2 nike
数据库表itemised
pid price
1 30.00
2 50.00
项目.php
在我的 item.php 页面中,我有一个table
. size
and and SELECT OPTION然后我有一个使用 jquery 进行验证category
的输入字段。amount
在我的购物车页面.php
我发布了pid
,size
然后category
我使用所有这些来查找价格(我没有发布价格,我使用 pid、大小和类别来查找它。)
现在的问题是,如果有人要更改value
for thesize
或category
两者。它们仍然会被发布,但显然wouldn't
可以找到价格,因为数据库无法找到发布的那些价值。
我如何显示我的值类别示例*类似于我如何显示大小,除了我更改了选择语句*
<select id="Category" name="Category">
<?php
dbconnect();
$stmt = $conn->prepare("SELECT Name FROM Category WHERE pid=:id");
$stmt->bindParam('id',$id);
$stmt->execute();
$i = 0;
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row ) {
if ($i == 0) {
echo '<option SELECTED value="'.$row['Name'].'">'.$row['Name'].'</option>
';
}
else {
echo '<option value="'.$row['Name'].'">'.$row['Name'].'</option>';
}
$i++;
}
?>
</select>
我的问题
是他们是否可以找出数据库中存在发布的内容并且与pid
? 如果不是,则不应添加该项目。
编辑添加我的购物车页面看起来像 Jim Martens 我已经添加了您在答案中显示的代码 //我在此页面顶部有会话开始。
<?php
*jim matens your code starts here*
if (isset($_GET['pid'])){
$id = $_GET['ProdID'];
$categoryID = (isset($_POST['Category']) ? intval($_POST['Category']) : 0);
dbconnect();
$stmt1 = $conn->prepare("SELECT CatID FROM Category WHERE pid=:id");
$stmt1->bindParam('id',$id);
$stmt1->execute();
$isValid = false;
$rows2 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows2 as $row1) {
if ($row1['CatID'] == $categoryID) {
$isValid = true;
break;
}
}
}
*My code starts here*
if(isset($_POST['pid']) && isset($_POST['length']) && isset($_POST['Qty']) && isset($_POST['Category'])){
$pid = $_POST['pid'];
$length = $_POST["length"];
$qty = $_POST['Qty'];
$Category = $_POST['Category'];
$wasFound = false;
$i = 0;
// If the cart session variable is not set or cart array is empty
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
// RUN IF THE CART IS EMPTY OR NOT SET
$_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
} else {
// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
foreach ($_SESSION["cart_array"]as $array_key=>$each_item) {
if ($each_item['item_id'] == $pid && $each_item['length'] == $length && $each_item['Category'] == $Category) {
$_SESSION["cart_array"][$array_key]['quantity']+=$qty;
$wasFound = true;
} // close if condition
} // close while loop
// close foreach loop
if ($wasFound == false) {
array_push($_SESSION["cart_array"], array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
}
}
header('Location: '.fetchinline($bpages).$currentFile);
exit();
}
?>
我希望我已经清楚地解释了这一点,如果没有,请发表评论,我会尝试重新表述这个问题。
谢谢