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 :: Перенаправление массива $_POST через несколько скриптов

 PHP.SU

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


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

> Без описания
A.B.C.
Отправлено: 12 Июля, 2010 - 13:43:55
Post Id



Новичок


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


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




Здравствуйте.

Сразу скажу, чтоб не было криков это не скрипт авторизации здесь другое.

Смысл в том, что ВЭБ страница состоит из нескольких таблиц, на одной из котрых форма для заполнения, это форма не стандартная (т.е. не как лист авторизации) количество ее строк и столбиков меняется взависимости от права доступа скажем так.

Единственное, что у всех таблиц этой формы схожее это название и формат полей.

Вопрос такой:

После того как, поля формы заполнены и отправлены кнопкой на проверяющий скрипт, я вижу полученный массив $_POST.

Я могу сразу занести его в таблицу скриптом:

PHP:
скопировать код в буфер обмена
  1. foreach ($_POST as $key => $val ){print "$key = $val <br>\n";
  2. $keys[]=$key;
  3. $vals[]=$val;
  4. $ki=implode(",", $keys);
  5. $vi=implode("','", $vals);
  6. }
  7. $sql= "INSERT INTO $tab ($ki) VALUES ('$vi')" ;
  8. $sql_otvet=mysql_query($sql, $bd) or die ("Ошибка!!!".mysql_error());


, но если какое то поле не прошло проверку мне необходимо отправить все значения полученные значения формы т.е. массив $_POST обратно в форму + отчет с ошибками заполнения. Чтобы правильныые значения встали обратно в поля формы в VALUES по умолчанию.

Проблема в том, что напрямую массив $_POST я header(locationУлыбка в нужный мне скрипт я перенаправить не могу т.к. для того чтобы добраться до той таблицы нужно пройти несколько скриптов, которые рисуют другие таблицы. Все действие происходит как бы на одной и той же страничке.

Как безопасно перенапавить массив $_POST туда ?
 
 Top
JustUserR
Отправлено: 12 Июля, 2010 - 21:14:33
Post Id



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


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


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




A.B.C. пишет:
Проблема в том, что напрямую массив $_POST я header(location в нужный мне скрипт я перенаправить не могу т.к. для того чтобы добраться до той таблицы нужно пройти несколько скриптов, которые рисуют другие таблицы. Все действие происходит как бы на одной и той же страничке.
Как безопасно перенапавить массив $_POST туда ?
Если рассматривать клиентский вариант решения то можно использовать статическую HTML-страницу со специальным JS-скриптом и динамической передачей данных с помощью iframe-транспорта - в таком случае вы можете обеспечить хранение текущего состояния на стороне клиента В таком случае система передачи данных огранизуется следующим образом - для начала вы обеспечиваете определенный безопасных формат передачи данных за счет проведения шифрования по собственной схеме - после чего клиентская web-страница выполняет запрос PHP-скрипту в определенной форме и анализирует его ответ и представляет его пользователю в определенном виде - введенные пользователем могут передаваться следующему PHP-скрипту аналогичным образом
Многоступенчатая передача данных между PHP-скриптами осуществяется следующим образом - сначала web-клиент запрашивает первый PHP-скрипт и смотрит результат его работы - которые содержат например указанные POST-данные для из запроса второму PHP-скрипту и тд Когда очередной PHP-скрипт возвращает данные другого рода например информацию об успешной проведении транзакции - то web-клиент выводит эти данные пользователю Как уже упоминалось ранее для упрощения взаимодейтсвия и избежания сложнообнаружимых ошибок следует правильно разработать формат передачи данных - например PHP-скрипт может возвратить маркер переадресации по GET/POST-запросу или же поле с данными для вывода их пользователю - кстати таким же образом можно обеспечивать поэлементное обновление HTML-страницы


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Champion Супермодератор
Отправлено: 12 Июля, 2010 - 21:21:08
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Не надо ничего перенаправлять. Надо вывести ту же форму, просто <input name=inp1 value=$_POST[inp1]> и аналогично.
И к чему столько криков, что это не форма авторизации? Какая разница?
 
 Top
ALEN
Отправлено: 12 Июля, 2010 - 21:25:02
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




A.B.C.
Ну можно св сессию например сохранить, перенаправить нас куда нужно и вывести!
 
 Top
JustUserR
Отправлено: 12 Июля, 2010 - 21:45:38
Post Id



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


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


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




Champion пишет:
И к чему столько криков, что это не форма авторизации? Какая разница?
Видимо имелось в виду что форма не содержит данные типа пароля которые должны подвергаться необратимому шифрованию
A.B.C. Для интерактивности взаимодейтсвия с пользователем вы можете воспользоваться схемой приведенной выше - но тем не менее если среди передаваемых данных между инстанциями PHP-скриптов имеют те которые отвечают за организацию прав доступа к ресурсу - то следует хранить их отдельно на стороне сервера а со стороны клиента передавать только ключ сессии


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
A.B.C.
Отправлено: 13 Июля, 2010 - 02:07:46
Post Id



Новичок


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


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




Всем спасибо за помощь, но:

JustUserR, решение с
Цитата:
JS-скриптом и динамической передачей данных с помощью iframe
не подойдет для меня так как с Ява скриптом почти не знаком да и слишком кажется сложно.

Champion, если я выведу форму типа
Цитата:
<input name=inp1 value=$_POST[inp1]>
она будет пустая т.к. массива $_POST уже не будет существовать к тому времени, между нажатем на кнопку "Отправить" и новым рисование формы несколько скриптов. Можно воспользоваться Сессией, но для каждый раз придется вписывать условия
PHP:
скопировать код в буфер обмена
  1.  if (isset($_POST['a'])) {$_SESSION['a']=$_POST['a'];}


и обратный перевод в:

<input name=inp1 value="<?php if (isset($_SESSION['a'])) {print ($_SESSION['a']);} ?>"]>

универсальный механизм для форм составить нельзя потому что каждый раз в формах разные теги т.е. селекты и инпуты...с разным содержимым и в разных местах...

вот я и хотел как - еибудь Пост сохранить и перекинуть его через несколько скриптов и в форму в значения по умолчанию вывести.
 
 Top
JustUserR
Отправлено: 13 Июля, 2010 - 02:36:48
Post Id



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


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


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




A.B.C. пишет:
JustUserR, решение с JS-скриптом и динамической передачей данных с помощью iframe не подойдет для меня так как с Ява скриптом почти не знаком да и слишком кажется сложно
Пожалуйста! Данный вариант решения на самом деле не является особенно сложным и используется в интерактивных сайтах - если вы реализуете нижеуказанный вариант то потом сможете добавить интерактивность с указанием пользователю прогресс-бара процесса
A.B.C. пишет:
Вот я и хотел как - еибудь Пост сохранить и перекинуть его через несколько скриптов и в форму в значения по умолчанию вывести
В таком случае можете попробовать сделать опорный PHP-скрипт который будет осуществлять трансляцию POST-запросов по серии других PHP-скриптов - в таком случае схема очень похоже на использование JS-скрипта - но для запуска PHP-скриптов из web-пространста здесь служит CURL/fsockopen или вызов консольного браузера типа /usr/bin/links


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
A.B.C.
Отправлено: 13 Июля, 2010 - 02:40:47
Post Id



Новичок


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


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




Спасибо
 
 Top
JustUserR
Отправлено: 13 Июля, 2010 - 03:01:14
Post Id



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


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


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




A.B.C. пишет:
Спасибо
Пожалуйста! Об использовании функций curl можете посмотреть здесь http://www.php.su/functions/?cat=curl - а обрабатывать полученные данные можно с помощью регулярных выражений или функциями типа http://www.php.su/functions/?cat=domxml если ответ приходит в XML-подобном формате


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB