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 :: mysql ошибка

 PHP.SU

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


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

> Без описания
miniaka
Отправлено: 24 Сентября, 2013 - 18:09:10
Post Id


Новичок


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


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




Всем привет ! У меня форма добавления статей на сайт. Все норма работает на локалке. На сервере он тоже добавляет статьи, но только если в форме нет html тегов. То есть я вставляю в форму например путь до изображения <img src='img/article/yfp.jpg'>. Если в форме не присутствует html, то все нормально. В чем причина ребят, кто в курсе ?
PHP:
скопировать код в буфер обмена
  1.  
  2. // Добавление Статей
  3. if(isset($_POST[add])){
  4.         $cat = "article";
  5.         $name = trim($_POST[name]);
  6.         $title = trim($_POST[title]);
  7.         $description = trim($_POST[description]);
  8.         $full_description = trim($_POST[full_description]);
  9.         $date = trim($_POST[date]);
  10.         if($cat=="" or $name=="" or $title=="" or $description=="" or $full_description=="" )
  11.         {
  12.                 $info_add = "Поля не заполнены";
  13.         }else{
  14.                 foreach($_FILES['file']['name'] as $k=>$f) {
  15.  
  16.   if (!$_FILES['file']['error'][$k]) {
  17.  
  18.     if (is_uploaded_file($_FILES['file']['tmp_name'][$k])) {
  19.  
  20.       if (move_uploaded_file($_FILES['file']['tmp_name'][$k], "../img/article/".$_FILES['file']['name'][$k])) {
  21.                         $img1 = $_FILES['file']['name'][0];
  22.                         $img2 = $_FILES['file']['name'][1];
  23.                         $img3 = $_FILES['file']['name'][2];
  24.                        
  25.                         $path = "img/article/$img1";
  26.                         $path2 = "img/article/$img2";
  27.                         $path3 = "img/article/$img3";}}}}
  28.                         if($img2==""){unset($path2);}
  29.                         if($img3==""){unset($path3);}
  30.    
  31.                         $add = mysql_query("INSERT INTO kontent(cat,name,title,description,full_description,img,img2,img3,date)
  32.                         VALUE('$cat','$name','$title','$description','$full_description','$path','$path2','$path3','$date')");
  33.                 if(!$add){
  34.             $info_add = "Ошибка";
  35.         }else{
  36.                                 $info_add = "<center style='color:red;'>Сатья успешно добавлена</center>";
  37.             header("Refresh:1;url=index.php");
  38.         }
  39.                
  40.         }}
  41.  
  42.  
 
 Top
Мелкий Супермодератор
Отправлено: 24 Сентября, 2013 - 18:43:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Типичный безобидный эффект SQL-инъекции.
Экранирование где?

Почему работает на локалке - видимо, у вас древней версии php и включены магические кавычки.


-----
PostgreSQL DBA
 
 Top
miniaka
Отправлено: 24 Сентября, 2013 - 18:46:40
Post Id


Новичок


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


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




Мелкий пишет:
Экранирование где?

Можно подробнее, что именно нужно экранировать ?
 
 Top
VestCoastman
Отправлено: 24 Сентября, 2013 - 19:31:13
Post Id



Посетитель


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


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




get и post запросы
mysql_real_escape_string($_POST[...])
 
 Top
esterio
Отправлено: 24 Сентября, 2013 - 19:38:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Простите меня конешно, но тут сплошной говнокод.
По существу
1. $_POST['add'] - кавички надо использовать
2. как сказали више нужно екранировать данные которые йдут в запрос
3. mysql драйвер считаеться устаревшым и вместо него рекомендуеться mysqli или PDO
 
 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