表格不能在php电子商务网站上工作

时间:2014-03-06 18:38:26

标签: php html forms

我正在尝试为我的学期项目创建一个电子商务网站,但我似乎无法理解这个代码的问题。我正在尝试从管理员那里获取关于产品名称,图像,细节等的输入然后将其发送到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();
  }

}

任何帮助表示赞赏..

2 个答案:

答案 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();
   }

}

希望它有所帮助!