Спустя 51 минута, 26 секунд (27.02.2009 - 19:49) FatCat написал(а):
Сразу после внесения информации в БД, сразу же делать редирект на другую страницу.
Спустя 41 минута, 12 секунд (27.02.2009 - 20:30) nasferatu написал(а):
А другим способом не как нельзя избежать этого??
Спустя 13 минут, 49 секунд (27.02.2009 - 20:44) kirik написал(а):
Можно. Проверять, есть-ли уже в БД такие данные.
Способ с редиректом самый оптимальный.
Способ с редиректом самый оптимальный.
Спустя 9 минут, 4 секунды (27.02.2009 - 20:53) nasferatu написал(а):
Это с помощью header организовать??
Спустя 3 минуты, 18 секунд (27.02.2009 - 20:57) kirik написал(а):
nasferatu
Ага.
Ага.
PHP |
header('Location: http://site.com/'); |
Спустя 37 минут, 49 секунд (27.02.2009 - 21:34) nasferatu написал(а):
что-то у меня не совсем получается.
Через header можно также передавать параметры??
Через header можно также передавать параметры??
Спустя 37 минут, 25 секунд (27.02.2009 - 22:12) kirik написал(а):
Цитата (nasferatu @ 27.02.2009 - 13:34) |
Через header можно также передавать параметры?? |
Методом GET можно.
PHP |
header('Location: http://site.com/index.php?var=val'); |
Спустя 14 часов, 43 минуты, 11 секунд (28.02.2009 - 12:55) nasferatu написал(а):
Это хорошо, я так и подумал.
А как добиться автоматического перехода через заданное время, например, 5 сек.??
А как добиться автоматического перехода через заданное время, например, 5 сек.??
Спустя 2 часа, 7 минут, 9 секунд (28.02.2009 - 15:02) twin написал(а):
PHP |
<? |
Спустя 4 дня, 4 часа, 1 минута, 34 секунды (2.03.2009 - 19:04) nasferatu написал(а):
twin
пасиб
пасиб
Спустя 1 день, 19 часов, 28 минут, 54 секунды (4.03.2009 - 14:33) nasferatu написал(а):
столкнулся с такой проблемой.
Не могу сообразить, как написать код.
У меня форма внесения данных (index.php?addcomm). Отправляются данные обработчику (addcomm.php). Там после всех проверок идет перенаправление на (index.php). Но при неправильном вводе данных, надо опять загрузить (index.php?addcomm). Пытался использовать include(index.php?addcomm), не прокатило. Делать автоматическое перенаправление, но надо назад передть слишком много значений. Надеюсь, что понятно я написал свою проблему.
Как тут быть???
Не могу сообразить, как написать код.
У меня форма внесения данных (index.php?addcomm). Отправляются данные обработчику (addcomm.php). Там после всех проверок идет перенаправление на (index.php). Но при неправильном вводе данных, надо опять загрузить (index.php?addcomm). Пытался использовать include(index.php?addcomm), не прокатило. Делать автоматическое перенаправление, но надо назад передть слишком много значений. Надеюсь, что понятно я написал свою проблему.
Как тут быть???
Спустя 6 часов, 2 минуты, 29 секунд (4.03.2009 - 20:35) Grey написал(а):
Вот скрипт примерно под задачу. При неправильном заполнении согласно условиям, отсылка данных не происходит, страница возвращается обратно, но данные в полях сохраняются, чтобы не набивать двести раз. При этом если юзер забыл заполнить обязательное поле, рядом с этим полем появляется соответствующее сообщение. Здесь последнее поле, название сайта, является необязательным, поэтому принимается даже пустое. три первых поля требуют обязательного заполнения
PHP |
<?php |
Спустя 2 часа, 11 минут, 11 секунд (4.03.2009 - 22:46) nasferatu написал(а):
пасиб, но меня это не устраивает, т.к. код формы встроен в главную страницу, где до header, как не крути будут include, поэтому код обработки должен быть отдельно от формы.
Спустя 11 минут, 56 секунд (4.03.2009 - 22:58) Grey написал(а):
Тогда эту часть
PHP |
$result_ins_otm = mysql_query("INSERT INTO object (title,adres,tel,site) VALUES ('$nazv','$adr','$tel','$site')"); |
Заменяем на
PHP |
header('Location: куда_хочешь.рhр?nazv='.$nazv.'&adr='.$adr.'&tel='.$tel.''); |
И в обработчике принимаем
PHP |
$nazv = $_GET['nazv']; |
Спустя 10 минут, 41 секунда (4.03.2009 - 23:09) nasferatu написал(а):
Grey, но я писал, что передаваемых данных назад может быть много, более 10. Разумно ли это???? Хотя, если другого выхода нет, это только и остаеться
Спустя 9 минут, 30 секунд (4.03.2009 - 23:18) sergeiss написал(а):
Цитата (nasferatu @ 4.03.2009 - 22:46) |
пасиб, но меня это не устраивает, т.к. код формы встроен в главную страницу, где до header, как не крути будут include, поэтому код обработки должен быть отдельно от формы. |
А в чем проблемы-то с инклудом ты тут видишь?

Спустя 6 минут, 42 секунды (4.03.2009 - 23:25) nasferatu написал(а):
так include мешает header, на сколько я разобрался. Или я не прав???
Спустя 15 минут, 27 секунд (4.03.2009 - 23:41) Grey написал(а):
PHP |
<?php |
У меня весь дизайн оформлен именно так, отправке заголовка ни коим образом не мешает. Главное проследить логику размещения кода
Спустя 9 минут, 9 секунд (4.03.2009 - 23:50) sergeiss написал(а):
Цитата |
так include мешает header, на сколько я разобрался. Или я не прав??? |
Нет, не прав.
Проблема с хедером может быть только в одном: если до его вызова в браузер будет передан хотя бы один знак. Если же этого нету, то тогда сколько угодно инклудов делай

По сути дела, предложенный ранее Греем алгоритм простой, понятный и правильный. Я попробую выразить эту идею более схеатично, чтобы было понятнее:
файл - обработчик, и он же содержит форму; например, это index.php
Код |
<?php // тут начало файла; внутри тегов могут быть любые пробелы, но только не перед тэгом открытия // в процессе можно делать любые инклуда, о которых я чуть подальше скажу еще // тут сначала проверка, было ли что-то передано // если да, и всё корректно, то тогда пишем данные в БД ..... код проверки и вывода в БД // если данные корректны, то тогда { header( "Location: correct_info.php" ); exit (); } // а если данные не корректны, то просто продолжаем скрипт ... // создаем форму ввода ?> <form ..... > // для вводимых полей проверяем, было ли что-то передано. // если да, то это означает одно: ты находишься в режиме редактирования // выводим эти данные - и так для всех вводимых полей <input type="text" name="id" <?php if( isset( $_POST['id'] ) ) echo 'value="'.$_POST['id'].'"'; ?> > // закрываем форму </form> <?php /**/ ?> |
файл correct.php
Код |
<?php header( "Refresh: 10, url=index.php" ); // тут можно и стили подгрузить, и таблицу сделать для форматирования - всё, что скрипт успеет сделать за заявленные 10 секунд :) Хотя время можно и больше установить. echo "Спасибо, ваши данные записаны. Через 10 секунд вы вернетесь обратно"; exit(); ?> |
Итог: если данные корректны, то производится запись в БД и пользователю показывается страница correct.php. Через 10 секунд (или другое время - как ты сам установишь) произойдет возврат на index.php. Но уже без данных, переданных для записи.
Если же данные неполные (по любым критериям, которые ты сам определишь), то тогда данные не пишутся в БД, но в форме отображается то, что юзер уже ввел. Надо только сказать ему где-то, что он не прав

PS. Сорри, забыл сразу написать про include.
Любой подключаемый файл, который будет перед header(), должен начинаться с <?php и заканчиваться ?> - и никаких выводов в браузер!!! Тогда проблем не будет, все данные будут подключены нормально.
Спустя 12 минут, 14 секунд (5.03.2009 - 00:02) nasferatu написал(а):
это все хорошо, но я пытался так делать и у меня выскакивали ошибки, указывало на инклуд. В подключаемом файле ни каких выводов не было в браузер. Я порылся в литературе и нашел, что инклуды нельзя до хеадера, потому и написал.
Но если так, значит будет пробовать еще раз, буду искать свою ошибку.
Спасибо
Но если так, значит будет пробовать еще раз, буду искать свою ошибку.
Спасибо
Спустя 6 минут, 59 секунд (5.03.2009 - 00:09) nasferatu написал(а):
сейчас проэкспериментиров с инклудами, все работает. Потом верь некоторым источник
Век живи, век учись.

Век живи, век учись.
Спустя 12 часов, 25 минут, 21 секунда (5.03.2009 - 12:34) nasferatu написал(а):
такой вопрос.
У меня есть сайт, где гостевая, фотоальбом и т.д. Я делаю так, чтобы при переходе было не my.com/guestbook/, my.com/foto/, а my.com?guestbook, my.com?foto/, т.е. распределение что отображать выполняется в главном файле (index.php). Не большая ли нагрузка будет на файл???
У меня есть сайт, где гостевая, фотоальбом и т.д. Я делаю так, чтобы при переходе было не my.com/guestbook/, my.com/foto/, а my.com?guestbook, my.com?foto/, т.е. распределение что отображать выполняется в главном файле (index.php). Не большая ли нагрузка будет на файл???
Спустя 9 часов, 37 минут, 56 секунд (5.03.2009 - 22:12) kirik написал(а):
Цитата (nasferatu @ 5.03.2009 - 04:34) |
Не большая ли нагрузка будет на файл??? |
Неа.
Спустя 3 часа, 6 минут, 42 секунды (6.03.2009 - 01:19) Grey написал(а):
коли уж вопрос зашел о нагрузках, спрошу тут. я использую для редиректа после осуществления операций конструкцию swith
PHP |
html> |
и так далее, куча опций для работы примерно с 10 объектами.
Как это выглядит с точки зрения нагрузки?
и возможно ли этот код уложить во что-то общее, в несколько строк?
Спустя 42 минуты, 48 секунд (6.03.2009 - 02:02) kirik написал(а):
Grey, нагрузки тут нет никакой, а вот заоптимизить скрипт в смысле его размера можно.
PHP |
$reports = array( |
Скрипт дает безграничный простор для полета мысли! (Можно замутить мультиязычную версию репортов

Спустя 3 дня, 17 часов, 32 минуты, 24 секунды (9.03.2009 - 19:34) nasferatu написал(а):
PHP |
header("Refresh: 5, url=index.php?detail=$id"); |
В Опере работает, а в експлорере нет. В чем может быть причина????
Спустя 3 дня, 20 часов, 32 минуты, 35 секунд (13.03.2009 - 16:07) Guest написал(а):
в експлорере после Refresh: 5, оказывается, нужна не ",", а ";" тогда параметры передаются