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]   

> Без описания
imediasun
Отправлено: 24 Января, 2013 - 16:44:25
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


Почему при обновлении страницы повторно вносятся данные в базу если условие стоит на нажатии кнопки submit
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action="" method="post" enctype="multipart/form-data" >
  3.  <input type="text" name="name_cat" value="" size="40"><br>
  4. <input type="file" name="userfile" size="20"/>
  5. <input type="submit" name="submit1" value="создать категорию">
  6. </form>                  
  7.  


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if (isset ($_POST['submit1'])){
  4. $name_cat=$_POST['name_cat'];
  5. $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов
  6. $max_filesize = 5242888; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).
  7. $upload_path = '../images/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
  8. $filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).
  9. $file_with_path = $upload_path.$filename;
  10. $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.
  11.  
  12. // Сверяем полученное расширение со списком допутимых расширений, которые мы определили в самом начале. Если расширение загруженного файла не входит в список разрешенных, то прерываем выполнение программы и выдаем соответствующее сообщение.
  13.  
  14. if(!in_array($ext,$allowed_filetypes))
  15. die('Данный тип файла не поддерживается.');
  16.  
  17. if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
  18. die('Фаил слишком большой.');
  19.  
  20. if(!is_writable($upload_path))
  21. die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
  22.  
  23. // Загружаем фаил в указанную папку.
  24. if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
  25. {
  26. echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename .'">смотреть</a>';
  27. $sql_ins_category="INSERT INTO categories (id_cat,name_cat, photo_cat) VALUES (NULL,'$name_cat','$file_with_path')";
  28. $query_ins_category=mysql_query($sql_ins_category)or die (mysql_error());
  29. if ($query_ins_category){
  30.    echo "Данные внесены успешно";
  31.     header('Location: '.$_SERVER['PHP_SELF']);
  32.     die();
  33. }
  34. }
  35. else
  36. {
  37. echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
  38. }
  39. }
  40.  
  41.  
  42. ?>
  43.  

(Добавление)
Warning: Cannot modify header information - headers already sent by (output started at /home/imediasun/data/www/proflifter.com.ua/admin/admin_products2.php:57) in /home/imediasun/data/www/proflif ter.com.ua/admin/admin_products2 .php on line 189

(Отредактировано автором: 24 Января, 2013 - 17:18:35)

 
 Top
Vaio
Отправлено: 24 Января, 2013 - 17:07:38
Post Id


Гость


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


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




PHP:
скопировать код в буфер обмена
  1. echo "Данные внесены успешно";
  2. header('Location: '.$_SERVER['PHP_SELF']);
  3. die();
 
 Top
sheff2000
Отправлено: 24 Января, 2013 - 17:07:44
Post Id


Новичок


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


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




а как оно у вас вообще куда то перенаправляет (обновляет страницу) если header стоит после echo ?

(Отредактировано автором: 24 Января, 2013 - 17:16:46)

 
 Top
imediasun
Отправлено: 24 Января, 2013 - 17:15:34
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


Ваш фаил успешно загружен смотретьДанные внесены успешно
Warning: Cannot modify header information - headers already sent by (output started at /home/imediasun/data/www/proflifter.com.ua/admin/admin_products2.php:57) in /home/imediasun/data/www/proflif ter.com.ua/admin/admin_products2 .php on line 189
и по прежнему при обновлении повторно записываются данные в базу

(Отредактировано автором: 24 Января, 2013 - 17:16:11)

 
 Top
sheff2000
Отправлено: 24 Января, 2013 - 17:18:38
Post Id


Новичок


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


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




imediasun пишет:
Ваш фаил успешно загружен смотретьДанные внесены успешно
Warning: Cannot modify header information - headers already sent by (output started at /home/imediasun/data/www/proflifter.com.ua/admin/admin_products2.php:57) in /home/imediasun/data/www/proflif ter.com.ua/admin/admin_products2 .php on line 189
и по прежнему при обновлении повторно записываются данные в базу


Цитата:
Помните, что header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле или из PHP. Очень частой ошибкой является чтение кода функциями include() или require(), или другой функцией доступа к файлу, и наличие пробелов или пустых строк, которые выводятся до вызова header(). Та же проблема возникает при использовании едингого PHP/HTML-файла.

http://www.php.su/functions/?header
 
 Top
DelphinPRO
Отправлено: 24 Января, 2013 - 17:20:34
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. if (!headers_sent()) {
  2.     header('Location: '.$_SERVER['PHP_SELF']);
  3. } else {
  4.     die('Сорри, хедеры уже отправлены :( Вероятно перед вызовом header() вы делаете echo, а так делать низзя');
  5. }


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
imediasun
Отправлено: 24 Января, 2013 - 17:30:31
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


а как указать задержку в пять секунд при переходе и отобразить echo в эти пять секунд

(Отредактировано автором: 24 Января, 2013 - 17:32:09)

 
 Top
esterio
Отправлено: 24 Января, 2013 - 17:37:24
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. header('Refresh: 3; URL=http://www.tigir.com/php.htm'); echo 'Через 3 сек. вы будете перенаправлены на новую страницу.'; exit();
 
 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