Подскажите пожалуйста кто знает. Мне нужно добавить в базу данных сведения о товаре: название, изображение(имя изображения), информацию о товаре, и категорию. В базу все заносится но почему то 2 раза одновременно, не могу найти ошибку. Вот код формы: PHP: <?php session_start(); if($_SESSION['admin']!=true){ header("Location: lock.php"); die(); } ?> <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>Интернет магазин</title> <script type="text/javascript" src="../js/jquery.js"></script> </head> <body> <a href="../admin/index.php">index</a> <a href="../admin/categories.php">categories</a> <form enctype="multipart/form-data" action="classes/addgoods.php" method="POST"> <p>Название<input type="text" name="goods_name"> </p> <p>Добавить изображение<input type="file" name="userfile"></p> <p>Информация<textarea rows="10" cols="45" name="info"></textarea> </p> <p>Цена<input type="text" name="price"></p> <input type="button" id="categories" value="добавить родительскую категорию"> <select name="parent_category" id="parent_category"> </select> <input type="submit" name="submit"> </form> <script type="text/javascript"> $( document ).ready(function() { $("#categories").click(function () { $.ajax({ url:"helpers/getcategories.php", type:"POST", dataType:"json", success: function(data){ $.each(data, function( index, value ) { var string = '<option value="'+index+'">'+value.category+'</option>'; $('#parent_category').append(string); }); } }) }); }); </script> </body> </html> это код обработчика: <?php include "connectdb.php"; class addgoods{ private $link; function addGoods() { $this->link = connectdb::getInstance(); $this->link->query("set names 'utf8'"); if($_SERVER['REQUEST_METHOD']=='POST') { $path = "../../images"; $file_name = uniqid(); $goods_name = htmlspecialchars($_POST['goods_name']); $userfile = $_FILES['userfile']['name']; $tmp_name = $_FILES['userfile']['tmp_name']; $info = htmlspecialchars($_POST['info']); $price = htmlspecialchars($_POST['price']); $parent_category = isset($_POST['parent_category']) and !empty($_POST['parent_category']); if($parent_category){ $parent_category = htmlspecialchars($_POST['parent_category']); }else{ $parent_category = 0; } if (!empty($userfile)) { $file = $path . '/' . $file_name . $userfile; $uploaded_file = move_uploaded_file($tmp_name, $file); } if ($uploaded_file) { $save_file = $file_name . $_FILES['userfile']['name']; } else { $save_file = null; } if($goods_name or $userfile or $info or $price){ $query = 'INSERT INTO goods( filename, info, price, parent_category ) VALUES ( "'.$save_file.'", "'.$info.'", "'.$price.'", "'.$parent_category.'" )'; $result = $this->link->query($query); } } header("Location: ../goods.php"); } } $addgoods = new addgoods(); $addgoods->addGoods(); Заранее спасибо!!
Дык, после PHP: if($_SERVER['REQUEST_METHOD']=='POST') { напиши типа PHP: echo "Time"; добавь товар и убедись что Time вывелось один раз.
Я понял в чем ошибка!!!! метод addGoods называется так же как класс addgoods и поэтому метод вызывается 2 раза. А так все работает.