Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите пожалуйста исправить код

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Создание и редактирование данных
Basyrova
Отправлено: 25 Сентября, 2016 - 16:34:48
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Не понимаю как сделать так, чтобы при создании продукта можно было ввести новую картинку, но при этом чтобы при редактировании старого продукта, если пользователь заливает новую картинку, она обновлялась, а если не заливает, то оставалась старая, которая уже есть в бд. Помогите пожалуйста.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  5. <html>
  6. <head>
  7.         <meta charset="WINDOWS-1251">
  8.         <BODY BACKGROUND="background.jpg">
  9.         <title>Изменение характеристик часов</title>
  10. </head>
  11. <body>
  12.         <table align='center'>
  13.                 <tr><td align='center' ><a href="index.php?zZ=<?PHP echo $_SESSION['ID'];?>"><b> <button>Назад</button> <b></a>
  14.         </td>
  15.         </tr>
  16.         </table>
  17.         <?PHP
  18.                 if ($_SESSION['num']==1) {
  19.                         include_once('check.php');
  20.                         $db = get_bd();
  21.                         $button = NULL;
  22.                         if (isset($_GET['ID'])) {
  23.                                 $ID = $_GET['ID'];
  24.                                 if ($_GET['del']=='ok') {
  25.                                         mysql_query("DELETE FROM watch WHERE ID='$ID'",$db);
  26.                                         mysql_query("DELETE FROM ccount WHERE ID='$ID'",$db);
  27.                                         echo "
  28.                                                 <h3 align='center'> Часы удалены <br><br></h3>
  29.                                         ";
  30.                                 } else {
  31.                                         $query = mysql_query("SELECT * FROM watch c LEFT JOIN ccount cc ON c.ID = cc.ID WHERE c.ID='$ID'",$db);
  32.                                         $data = mysql_fetch_array($query);
  33.                                         $button = forma($data['name'], $data['material'],$data['waterproof'],$data['diameter'],$data['mechanism'],$data['gender'],$data['glass'],$data['countwatch'],$data['price']);
  34.                                 }
  35.                         } else {
  36.                                 $button = forma();
  37.                         }
  38.                 } else {
  39.                 echo "
  40.                         <h3 align='center'>У вас недостаточно прав.<br><br><a href='index.php?zZ=".$_SESSION['ID']."'>Вернуться назад</a></h3>
  41.                 ";
  42.                 }
  43.         function forma($name='',$material='',$waterproof='',$diameter='',$mechanism='',$gender='',$glass='',$countwatch='',$price=''){
  44.                 $res = "
  45.                 <br><br>
  46.                         <table align=center>
  47.                         <form method='post' enctype='multipart/form-data'>
  48.                                 <tr>
  49.                                         <td valign=top>
  50.                                                 <label>Название</label><br>
  51.                                                         <textarea name='name' cols=20 rows='2'>".$name."</textarea><br><br>
  52.                                                 <label>Материал</label><br>
  53.                                                         <textarea name='material' cols=20 rows='2'>".$material."</textarea><br><br>
  54.                                                 <label>Водостойкость</label><br>
  55.                                                         <textarea name='waterproof' cols=20 rows='2'>".$waterproof."</textarea><br><br>
  56.                                                 <label>Диаметр</label><br>
  57.                                                         <textarea name='diameter' cols=20 rows='2'>".$diameter."</textarea><br><br>
  58.                                                 <label>Механизм </label><br>
  59.                                                         <textarea name='mechanism' cols=20 rows='2'>".$mechanism."</textarea><br><br>
  60.                                                 <label>Пол </label><br>
  61.                                                         <textarea name='gender' cols=20 rows='2'>".$gender."</textarea><br><br>
  62.                                                 <label>Стекло</label><br>
  63.                                                         <textarea name='glass' cols=20 rows='2'>".$glass."</textarea><br><br>
  64.                                                 <label>В наличии </label><br>
  65.                                                         <textarea name='countwatch' cols=20 rows='2'>".$countwatch."</textarea><br><br>
  66.                                                 <label>Цена </label><br>
  67.                                                         <textarea name='price' cols=20 rows='2'>".$price."</textarea><br><br>
  68.  
  69.                                                 <label>Изображение</label>
  70.                                                         <input type='file' name='img'><br>
  71.                                                 <input type='submit' name='ok?' value='Готово'>
  72.                                         </td>
  73.                                        
  74.                                 </tr>
  75.                         </form>
  76.                         </table>
  77.                 ";
  78.                                 echo $res;
  79.                 if (isset($_POST['ok?'])) {
  80.                         return 1;
  81.                 } else {
  82.                         return NULL;
  83.                 }
  84.         }
  85.  
  86.         if ($button != NULL) {
  87.  
  88.                 $ID = $_GET['ID'];
  89.                 $name = $_POST['name'];
  90.                 $material = $_POST['material'];
  91.                 $waterproof = $_POST['waterproof'];
  92.                 $countwatch_new = $_POST['countwatch'];
  93.                 $diameter = $_POST['diameter'];
  94.                 $mechanism = $_POST['mechanism'];
  95.                 $gender = $_POST['gender'];
  96.                 $glass = $_POST['glass'];
  97.                 $price = $_POST['price'];
  98.                 $countshop = $_POST['countshop'];
  99.                 $url = "";
  100.  
  101.                 if (isset($_FILES['img'])) {
  102.                         $url = saveImg("img");
  103.                         $url = str_replace('\\', '\\\\', $url);
  104.                 }
  105.                
  106.                 if (isset($_GET['ID'])) {
  107.                         $query = mysql_query("SELECT countwatch FROM watch WHERE ID='$ID'",$db);
  108.                         $data = mysql_fetch_array($query);
  109.                         $countwatch = $countwatch_new;
  110.                         $update_image = (!empty($url)) ? ", 'image' = '" . mysql_real_escape_string($url) . "'"
  111.                         $r = mysql_query("UPDATE watch SET name = '$name', material = '$material', waterproof = '$waterproof',countwatch = '$countwatch', diameter = '$diameter',mechanism = '$mechanism',gender = '$gender',glass = '$glass',price = '$price',image='$update_image' WHERE ID='" . (int)$_GET['ID'] . "'",$db);
  112.                         echo '<META HTTP-EQUIV="Refresh" content="0; URL=kabinet_1.php?ID='.$_SESSION['ID'].'">';
  113.                 } else {
  114.                         mysql_query("INSERT INTO watch (name,material,waterproof,countwatch,diameter,mechanism,gender,glass,price,image) VALUES ('$name','$material','$waterproof','$countwatch_new','$diameter','$mechanism','$gender','$glass','$price','$update_image')",$db);
  115.                         echo '<META HTTP-EQUIV="Refresh" content="0; URL=kabinet_1.php?ID='.$_SESSION['ID'].'">';
  116.                 }
  117.         }
  118.  
  119.         function saveImg($dir) {
  120.                 $name = substr(basename($_FILES['img']['name']), strrpos(basename($_FILES['img']['name']), "."));
  121.                 $name = md5(time()) . $name;
  122.                 $path = $dir . DIRECTORY_SEPARATOR . $name;
  123.                 copy($_FILES['img']['tmp_name'], $path);
  124.                 return $path;
  125.         }
  126.  
  127. ?>
  128.  
  129. </body>
  130. </html>
  131.  

Попробовала так, но тогда выдается ошибка в 111 строке
Parse error: parse error, unexpected T_VARIABLE in ... on line 111, которая UPDATE, а когда код почему то работал, то старая картинка оставалась при редактировании, но новая не заливалась
 
 Top
Fart
Отправлено: 26 Сентября, 2016 - 02:29:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




$update_image = (!empty($url)) ? ", 'image' = '" . mysql_real_escape_string($url) . "'";

; - не было

(int)$_GET['ID'] - желательно проверить. если 0, то выдавать ошибку. пустые запросы тоже ни к чему и вот еще mysql_real_escape_string(intval($_GET['ID']))

вы слишком доверяете данным которые приходят. могут вас "пощупать"
(Добавление)
вот еще как пример (а их у вас куча)

входящие данные:
$ID = $_GET['ID'];

и после запрос:
c.ID='$ID'

не хорошо это!!! вам нужно исправлять.

(Отредактировано автором: 26 Сентября, 2016 - 02:36:18)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB