PageRenderTime 68ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/controllers/new_product.php

https://bitbucket.org/pavolve/masterskayaludmila
PHP | 154 lines | 135 code | 8 blank | 11 comment | 40 complexity | e99123a600eeb49b2e4c87d549162c0c MD5 | raw file
  1. <?php
  2. require ("is_logged.php");
  3. $is_logged = is_logged();
  4. if ( $is_logged != "admin" ){
  5. header("Location: http://".$_SERVER["HTTP_HOST"]); exit();
  6. }
  7. include "../config.php";
  8. function is_valid($value, $type = "no"){
  9. switch ($type) {
  10. case "name":
  11. /*if (!$value) {
  12. return "Поле обязательно для заполнения";
  13. }*/
  14. if ( strlen($value) > 128 ){
  15. $diff = strlen($value) - 128;
  16. return "Максимально допустимая длина 128 символов( превышено на $diff )";
  17. }
  18. break;
  19. case "description":
  20. /*if (!$value) {
  21. return "Поле обязательно для заполнения";
  22. }*/
  23. if ( strlen($value) > 255 ){
  24. $diff = strlen($value) - 255;
  25. return "Максимально допустимая длина 255 символов( превышено на $diff )";
  26. }
  27. break;
  28. case "article":
  29. if (!$value) {
  30. return "Поле обязательно для заполнения";
  31. }
  32. if(strlen($value) != 6){
  33. return "Артикул должен состоять из 6 символов";
  34. }
  35. if( !isset($_POST['submit_red']) ){
  36. $query = mysql_query("SELECT COUNT(id) FROM products WHERE article='".mysql_real_escape_string($value)."'");
  37. if(mysql_result($query, 0) > 0){
  38. return "Изделие с таким артикулом уже существует";
  39. }
  40. }
  41. break;
  42. case "collections_id":
  43. if ( $value && !preg_match("/^[0-9]+$/",$value) )
  44. return "Выберите коллекцию";
  45. else return;
  46. break;
  47. case "type_id":
  48. if ( !preg_match("/^[0-9]+$/",$value) )
  49. return "Выберите тип изделия";
  50. break;
  51. case "image":
  52. if( $_FILES["image"]["error"] != 0 ){
  53. switch( $_FILES["image"]["error"] ){
  54. case 1: return "Размер файла превышает ".ini_get('upload_max_filesize');
  55. break;
  56. case 2: return "Размер файла превышает допустимый";
  57. break;
  58. case 3: return "Загружаемый файл был получен только частично";
  59. break;
  60. case 4: return "Файл не был загружен";
  61. break;
  62. }
  63. }
  64. else{
  65. $imageinfo = getimagesize($_FILES["image"]["tmp_name"]);
  66. }
  67. if($_FILES["image"]["size"] > 1024*2*1024){
  68. return("Размер файла превышает 2 мегабайта");
  69. }
  70. if($imageinfo["mime"] != "image/gif" && $imageinfo["mime"] != "image/jpeg" && $imageinfo["mime"] != "image/png") {
  71. return "Файл не является изображением GIF, JPEG или PNG";
  72. }
  73. break;
  74. default:
  75. return;
  76. }
  77. }
  78. if ( isset($_POST) ){
  79. if (isset($_POST)){
  80. foreach ($_POST as $key => $value){
  81. $values[$key] = trim(htmlspecialchars($value));
  82. if ($error = is_valid($values[$key], $key))
  83. $err[$key] = "<span class='errMessage'>$error</span>";
  84. }
  85. if ( $_FILES["image"]["name"] )
  86. $err["image"] = is_valid($_FILES["image"]["name"], "image");
  87. if ($err)
  88. $err = array_diff($err, array(""));
  89. if(!$err){
  90. $values = array_diff($values, array(""));
  91. array_pop($values);
  92. if ( $values["type_id"] != 1 )
  93. $values["is_size"] = "0";
  94. else
  95. $values["is_size"] = "1";
  96. if ( !isset($values["is_insert_color"]) )
  97. $values["is_insert_color"] = "0";
  98. if ( !isset($values["status"]) )
  99. $values["status"] = "1";
  100. foreach ($values as $key => $value) {
  101. $query .= " ".$key."='".mysql_real_escape_string($value)."',";
  102. }
  103. $query = substr($query, 0, -1);
  104. if ( !isset($_POST['submit_red']) ){
  105. mysql_query("INSERT INTO products SET".$query);
  106. $current_id = mysql_insert_id();
  107. }
  108. else{
  109. $current_id = $_GET["id"];;
  110. mysql_query("UPDATE products SET".$query." WHERE id = ".$current_id);
  111. }
  112. if( !empty($_FILES["image"]["name"]) ){
  113. require("func_image_resize.php");
  114. $expansion = end(explode(".", $_FILES["image"]["name"]));
  115. $image_name = strtolower($current_id.".".$expansion);
  116. img_resize($_FILES["image"]["tmp_name"], "../files/product_images/".$image_name, 300);
  117. /*
  118. $expansion = end(explode(".", $_FILES["image"]["name"]));
  119. $image_name = strtolower($current_id.".".$expansion);
  120. move_uploaded_file($_FILES["image"]["tmp_name"], "../files/product_images/" . $image_name);
  121. */
  122. mysql_query("UPDATE products
  123. SET image='".$image_name."'
  124. WHERE id='".$current_id."'");
  125. }
  126. if ( isset($_POST["submit_more"]) ){
  127. $values = array("type_id" => $_POST["type_id"]);
  128. }
  129. else{
  130. header("Location: http://".$_SERVER["HTTP_HOST"]."/admin/list"); exit();
  131. }
  132. }
  133. else{
  134. if ( isset($values["is_size"]) )
  135. $values["is_size"] = "checked";
  136. if ( isset($values["is_insert_color"]) )
  137. $values["is_insert_color"] = "checked";
  138. if ( isset($values["status"]) )
  139. $values["status"] = "checked";
  140. $_SESSION["err"] = $err;
  141. }
  142. $_SESSION["values"] = $values;
  143. header("Location: ".$_SERVER["HTTP_REFERER"]); exit();
  144. }
  145. }
  146. ?>