我正在尝试为我的学期项目创建一个电子商务网站,但我似乎无法理解这个代码的问题。我正在尝试从管理员那里获取关于产品名称,图像,细节等的输入然后将其发送到PHP代码进行处理并将其提交到数据库,但表单没有提交任何内容。这是代码:
<form action="inventory_list.php" method="post" name="f1" enctype="multipart/form-data">
Product Name:<input type="text" id="product_name" size="60" ><br>
Cost:<input type="text" size="10" id="product_cost" style="border:1px solid #c3c3c3;"><br>
Category:<select id="category" >
<option value="Watches">Watches</option>
<option values="Footwear">Footwear</option>
<option value="Apparels">Apparels</option>
</select><br>
Sub-Category:<select id="sub_category" >
<option value="Men">Men</option>
<option values="Women">Women</option>
</select><br>
Product Details:<textarea id="product_details"name="textarea" cols="60" rows="5" wrap="soft"></textarea><br>
Stock:<input type="text" size="10" id="stock" style="border:1px solid #c3c3c3;"><br>
Product Image:<input type="file" id="image"><br>
<input type="submit" id="submit" value="Add Item"><br>
</form>
这是我的PHP代码:
if(isset($_POST['product_name'])){
$product_name=mysql_real_escape_string($_POST['product_name']);
$product_cost=mysql_real_escape_string($_POST['product_cost']);
$category=mysql_real_escape_string($_POST['category']);
$sub_category=mysql_real_escape_string($_POST['sub_category']);
$product_details=mysql_real_escape_string($_POST['product_details']);
$stock=mysql_real_escape_string($_POST['stock']);
//Check if product already exists in the database
$sql=mysql_query("SELECT * FROM products WHERE product_name='$product_name'");
$row_count=mysql_num_rows($sql);
if($row_count>0){
echo 'Product already exists in the database,<a href="inventory_list.php">Back</a>';
}else{
//Add this product to database
$sql2=mysql_query("INSERT INTO products (product_name, price, details, category, subcategory, stock, date_added) VALUES('$product_name','$product_cost', '$product_details', '$category', '$sub_category', '$stock', now())")or die(mysql_error());
$pid=mysql_insert_id($sql);
//UPload image to new folder
$newname="$pid.jpg";
move_uploaded_file($_FILES['image']['tmp_name'],"E:\Applications\Xampp\htdocs\The Store\Main\inventory_images/{$newname}");
header("location:inventory_list.php");
exit();
}
}
任何帮助表示赞赏..
答案 0 :(得分:1)
在HTML表单上,每个输入都需要一个名称和一个id:
Product Name:<input type="text" id="product_name" size="60" ><br>
应该是:
Product Name:<input type="text" id="product_name" name="product_name" size="60" ><br/>
您的每一个输入都需要一个名字。 $ _POST数组派生自输入名称,因此它们都需要匹配您的PHP代码。另请注意@Loz Cherone的评论。不推荐使用Mysql函数,并为您提供各种令人讨厌的攻击。</ p>
答案 1 :(得分:-1)
所以我已经开始通过你的项目,因为今天在工作中没什么可做的,我注意到了一些事情。
首先,就像lars所说,POST使用表单的名称来获取他的数据,而不是ID。 你的SELECT列表中也有一些拼写错误,其中''value''表示''值''。
所以我稍微更改了你的代码,你只需要确保你可以连接到你的数据库和你的设备!
<form action="inventory_list.php" method="post" name="f1" enctype="multipart/form-data">
Product Name:<input type="text" name="product_name" size="60" ><br>
Cost:<input type="text" size="10" name="product_cost" style="border:1px solid #c3c3c3;"><br>
Category:<select name="category">
<option value="Watches">Watches</option>
<option value="Footwear">Footwear</option>
<option value="Apparels">Apparels</option>
</select><br>
Sub-Category:<select name="sub_category">
<option value="Men">Men</option>
<option value="Women">Women</option>
</select><br>
Product Details:<textarea name="product_details" cols="60" rows="5" wrap="soft"></textarea><br>
Stock:<input type="text" size="10" name="stock" style="border:1px solid #c3c3c3;"><br>
Product Image:<input type="file" name="image"><br>
<input type="submit" id="submit" value="Add Item"><br>
和您的inventory_list.php
if(isset($_POST['product_name'])){
$product_name=mysql_real_escape_string($_POST['product_name']);
$product_cost=mysql_real_escape_string($_POST['product_cost']);
$category=$_POST['category'];
$sub_category=$_POST['sub_category'];
$product_details=mysql_real_escape_string($_POST['product_details']);
$stock=$_POST['stock'];
$sql=mysql_query("SELECT * FROM products WHERE product_name='$product_name'");
$row_count=mysql_num_rows($sql);
if($row_count>0){
echo 'Product already exists in the database,<a href="inventory_list.php">Back</a>';
}else{
//Add this product to database
$sql2=mysql_query("INSERT INTO products (product_name, price, details, category, subcategory, stock, date_added) VALUES('$product_name','$product_cost', '$product_details', '$category', '$sub_category', '$stock', now())")or die(mysql_error());
$pid=mysql_insert_id($sql);
//UPload image to new folder
$newname="$pid.jpg";
move_uploaded_file($_FILES['image']['tmp_name'],"E:\Applications\Xampp\htdocs\The Store\Main\inventory_images/{$newname}");
header("location:inventory_list.php");
exit();
}
}
希望它有所帮助!