Программирование => PHP => Тема начата: Shocker от 08 Февраля 2005, 15:11:21
Название: Как из сценария запустить другой?
Отправлено: Shocker от 08 Февраля 2005, 15:11:21
Блин, никак понять не могу...:confused: Ситуация следующая: при вводе данных в форму, запускается сценарий на РНР, который их обрабатывает, и в зависимости от результата запускает тот или иной ДРУГОЙ сценарий. При этом нужно завершить выполнение исходного.
if () {запуск first.php} else {запуск second.php} ?> Как блин это сделать??? Не exec\'ом же...
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 08 Февраля 2005, 15:17:39
вообще-то, в пхп есть такая замечательная инструкция, как [p]include[/p] только вот термин "запуск" к ней неприменим. Другое дело, что "завершить выполнение исходного" по-другому не получится.
Впрочем, если ты скажешь конкретно, что ты делаешь, без терминов, в которых путаешься, мы подскажем точное решение
Название: Как из сценария запустить другой?
Отправлено: Shocker от 08 Февраля 2005, 15:30:33
RomikChef
if ( (strlen(trim($inp_mail))<6) or (strpos($inp_mail,"@")==false) or (strpos($inp_mail,".")==false) ) // { echo "Неправильно набран адрес электронной почты"; } elseif (strlen(trim($inp_text))<20) { echo "Вы не набрали текст заказа"; } else { Echo strlen(trim($inp_text)); $message= " отправитель $inp_name пишет следующее: $inp_text";
if (Mail("postmaster@neftegazdetal.ru",$subject,$message,$from)==1) { echo "Письма отправлены!!!"; } else { echo "ОтпраBкA обломилась!!!"; } } ?> Вместо echo хотелось бы выводить нормальные странички с сообщением. А про завершение текущего сценария - так это чтоб предотвратить просмотр исходного кода, представленного выше. Надеюсь понятно объяснил...
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 08 Февраля 2005, 15:37:38
вместо каких echo? echo "Вы не набрали текст заказа"; или вместо echo "ОтпраBкA обломилась!!!"; ?
Про просмотр исходного кода у тебя неверные сведения. никакое завершение не требуется. и исходный код нельзя просмотреть ни в каком случае.
Название: Как из сценария запустить другой?
Отправлено: Shocker от 08 Февраля 2005, 15:43:41
Про исходник ты прав - и правда нельзя.... :))) Но вопрос остается в силе. То есть я хотел вместо КАЖДОГО из echo вывести разную страничку. Ну типа чтобы сохранить стилевое оформление сайта... Или вернуть пользователя обратно на страницу с формой, откуда пришли неверные данные....
Название: Как из сценария запустить другой?
Отправлено: Lutik от 08 Февраля 2005, 16:01:40
Ну так что тебе мешает это сделать? Сделай обработку формы в этом же фаиле и выводи ошибку которая вирнул скрипт или подтверждение что все ок. Если форма обрабатывается в отдельном фаиле делай редирект на фаил с формой и возвращай ошибку скрипта!(header)
Название: Как из сценария запустить другой?
Отправлено: Shocker от 08 Февраля 2005, 16:13:42
Че-то не работает редирект... может че не так делаю..? после условия ставлю
Название: Как из сценария запустить другой?
Отправлено: Shocker от 08 Февраля 2005, 16:30:14
Эхх, как так? Передаю данные об ошибке в форму и пытаюсь назначить полю inp_mail значение ошибки: ...order.php?inp_mail=wrong_adress а в форме так и остается - там тэг
Посоветуйте, плз, как вместо фиксированного value="Ваш адрес электронной почты" вставить переданный параметр...
Название: Как из сценария запустить другой?
Отправлено: Lutik от 08 Февраля 2005, 16:46:12
if($_GET[\'inp_mail\']){ $m="wrong_adress"; } else $m="Ваш адрес электронной почты";
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 08 Февраля 2005, 17:28:05
вот фигни-то без меня понаписали. Shocker я тебя специально спросил, вместо какого эха тебе нужно вызывать скрипт. Дело в том, что вместо первых надо инклюдить форму. а вместо последних - делать таки редирект.
чтобы написать нужное значение в форме, надо сделать там оператор вывода пхп. соответственно, форма должна быть пхп скриптом
Название: Как из сценария запустить другой?
Отправлено: Shocker от 09 Февраля 2005, 08:34:05
RomikChef Страничка с формой и есть PHP скрипт, только вот такая штука - сама форма создается командами HTML, т.е. находится внутри тэгов . Как внутри них указать кусок скрипта? Это где-то было, только я не смог найти...
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 09 Февраля 2005, 12:06:14
Shocker , не поверишь. ?>
Название: Как из сценария запустить другой?
Отправлено: Shocker от 09 Февраля 2005, 13:23:27
RomikChef :) :) :) Че-то я стормозил... А почему строчка \'; ?> работает, а echo \'\'; ?> нет?
?>
Название: Как из сценария запустить другой?
Отправлено: Shocker от 09 Февраля 2005, 13:42:09
И вот еще до кучи - почему при назначении $m=\'Ваш адрес электронной почты\'; в форму выводится только первое слово?
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 09 Февраля 2005, 15:35:56
Цитировать
Shocker: А почему строчка \'; ?> работает, а echo \'\'; ?> нет?
не знаю смотри сам. где косяки. тем более, что так писать смысла нету. зачем вся эта борода, если пхп тебе нужен только чтобы вывести $m?
Цитировать
Shocker: почему при назначении $m=\'Ваш адрес электронной почты\'; в форму выводится только первое слово?
неправда. все выводится прекрасно. а если ты не знаешь, что такое хтмл, то пойди на форум хтмл для чайников и спроси
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 09 Февраля 2005, 15:36:29
http://phpfaq.ru/na_tanke читать вдумчиво и внимательно
Название: Как из сценария запустить другой?
Отправлено: Shocker от 09 Февраля 2005, 15:49:51
Ну, что ж, понятно. Просто приходится одновременно доучивать HTML и заодним врубаться в РНР. Это я вам скажу, конечно, не то же самое, что с нуля контроллер домена поднять, но все же... Мне же шеф не дает год-два на изучение веб-программирования, надо все сейчас и сразу. Щас, когда все более-менее получилось, хоть и коряво - покажу ему исходники скриптов... :) Приношу свои извинения за тупые вопросы.
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 09 Февраля 2005, 16:22:43
С вопросами-то разобрался? что вместо твоей бороды надо писать "> и что параметры тегов надо брать в кавычки? еще надо, кстати, все value обрабатывать через htmlspecialchars
Название: Как из сценария запустить другой?
Отправлено: Shocker от 11 Февраля 2005, 15:39:27
RomikChef Да, спасибо, все теперь работает. Просто пока трудно совместить два языка сразу, тем более, что один отрабатывает до того, как начинает работать другой.
Название: Как из сценария запустить другой?
Отправлено: Shocker от 11 Февраля 2005, 15:49:57
RomikChef Про htmlspecialchars. Если обрабатывать сценарием полученные от формы строки $inp_mail=htmlspecialchars($inp_mail,ENT_QUOTES); ?>, то спецсимволы заменяются как-то не так.... По крайней мере применительно к моему сценарию :( Т.е. апостроф становится \\& и при дальнейшей передаче обратно в форму выводит двойной бэкслеш... Если обрабатывать циклом, то \\& так и остается....
Название: Как из сценария запустить другой?
Отправлено: Shocker от 11 Февраля 2005, 15:51:16
... после \\& было написано amp...
Название: Как из сценария запустить другой?
Отправлено: Меняздесьдавнонет от 11 Февраля 2005, 17:28:16
Цитировать
Shocker: Если обрабатывать сценарием полученные
НЕ ПОЛУЧЕННЫЕ А ВЫВОДИМЫЕ. Это раз. А во-вторых, http://phpfaq.ru/slashes
И настоятельно рекомендую больше не задавать вопросов, освещённых на этом сайте.
Название: Как из сценария запустить другой?
Отправлено: kuskin от 23 Февраля 2005, 05:09:48
Цитировать
Shocker: А почему строчка \'; ?> работает, а echo \'\'; ?> нет?
а кавычки внутри эхи экранировать не надо ? :) echo \'\';
Название: Как из сценария запустить другой?
Отправлено: Shocker от 24 Февраля 2005, 07:07:32
Нет
Название: Как из сценария запустить другой?
Отправлено: Shocker от 24 Февраля 2005, 07:08:33
Потому что кавычки внутри апострофов не интерполируются. :lol: