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 или GET

 PHP.SU

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


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

> Описание: Варианты передачи данных в массив POST или GET
ivnphp
Отправлено: 07 Марта, 2015 - 22:35:29
Post Id


Новичок


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


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




Добрый день. Недавно начал изучать php. Есть вопрос который пока что не получается решить.

Какие есть альтернативные методы варианты передачи данных в массив POST или GET?
Есть ли возможность записать данные в массив POST после нажатии на ссылку?

Например у менять есть следующий код:

<form method="post" action="add.php">
<input type="text" name="fio" value=""/>
</form>

Сюда пользователь вводит данные, далее при нажатии на ссылку <a href=book.php>подобрать</a> хотелось бы что бы данные которые были введены в поле <input type="text" name="fio" value=""/> записались в массив и браузер перевел на другую страницу.

Вкратце пытаюсь сделать форму в которой пользователь вводит данные, потом жмет выбрать, его переводит в другую форму где он выбирает уже из списка и далее жмет выбрать (уже во второй форме) и его переводит обратно в начальную форму, но сейчас, по факту все ранее введенные данные (в первой форме) сбрасываются. Т.е возвращаясь обратно приходится заполнять все заново.

Хотелось бы все обыграть с помощью php.

(Отредактировано автором: 07 Марта, 2015 - 23:32:17)

 
 Top
DelphinPRO
Отправлено: 07 Марта, 2015 - 23:45:23
Post Id



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


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


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




чтобы придумать как запрограмировать нужное вам поведение программы, нужно понять как вообще php работает. Скрипт исполняется по запросу от начала до конца и умирает. Всё. По завершение работы нет никаких ПОСТов и ГЕТов. Срипт умер, и все не сохраненные данные потеряны. Где их сохранять, предлагаю подумать вам самому.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
ivnphp
Отправлено: 08 Марта, 2015 - 00:05:33
Post Id


Новичок


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


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




тогда как заставить их сохраняться при нажатии на ссылку, а не на <input type="submit" name="add" value="ДОБАВИТЬ" />?
 
 Top
exlant
Отправлено: 08 Марта, 2015 - 00:56:42
Post Id



Посетитель


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


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




ivnphp пишет:
тогда как заставить их сохраняться при нажатии на ссылку, а не на <input type="submit" name="add" value="ДОБАВИТЬ" />?

"на чисто php" - никак! Php это серверный язык, и за то что нажимает клиент, и то как он это нажимает у себя в браузере, php вообще не отвечает!

Если вам нужно, что бы форма что то отправила по нажатию на ссылку используйте JS
GET параметры можно передавать по ссылке типа .php?name=some_name

После передачи данных, их чаще всего нужно куда то сохранить, это могут быть сессии, куки, файл, база данных!

Еще можно посылать запросы к серверу различными методами с помощью библиотеки cURL, но думаю это не то что вам нужно!
 
 Top
ivnphp
Отправлено: 08 Марта, 2015 - 11:56:19
Post Id


Новичок


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


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




exlant пишет:
ivnphp пишет:
тогда как заставить их сохраняться при нажатии на ссылку, а не на <input type="submit" name="add" value="ДОБАВИТЬ" />?

"на чисто php" - никак! Php это серверный язык, и за то что нажимает клиент, и то как он это нажимает у себя в браузере, php вообще не отвечает!



разве после нажатии кнопки <input type="submit" name="add" value="ДОБАВИТЬ" /> запись в базу не происходит? Такое же действе в браузере как и ссылка (тоже необходимо нажимать)

Вобщем думаю сделать такую конструкцию и прошу подсказать на сколько это перспективно и надежно?:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="add.php">
  3. <input type="text" name="fio" value=""/>
  4. <input type="submit" name="add" value="ДОБАВИТЬ" />
  5. </form>


Кнопка ДОБАВИТЬ вместо ссылки для перехода на другую страницу

PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['add']))
  3. {
  4.         $_SESSION['fio'] = $_POST['fio'];
  5. }
  6. echo '<script>window.location.href = "book.php";</script>';


И на следующей странице уже работать с $_SESSION['fio']

Так же на сколько безопасно я тут использую код JS?

(Отредактировано автором: 08 Марта, 2015 - 13:00:54)

 
 Top
exlant
Отправлено: 08 Марта, 2015 - 12:34:54
Post Id



Посетитель


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


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




Цитата:

разве после нажатии кнопки <input type="submit" name="add" value="ДОБАВИТЬ" /> запись в базу не происходит? Такое же действе в браузере как и ссылка (тоже необходимо нажимать)

представьте себе, никакой записи не происходит в базу данных по нажатию вашей кнопки!
происходит запрос, точно так же при нажатии ссылки, просто происходит запрос к серверу!
Изучите с начало, что такое html, что такое php, и что такое js до кучи.
 
 Top
ivnphp
Отправлено: 08 Марта, 2015 - 12:59:11
Post Id


Новичок


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


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




exlant пишет:
Цитата:

разве после нажатии кнопки <input type="submit" name="add" value="ДОБАВИТЬ" /> запись в базу не происходит? Такое же действе в браузере как и ссылка (тоже необходимо нажимать)

представьте себе, никакой записи не происходит в базу данных по нажатию вашей кнопки!
происходит запрос, точно так же при нажатии ссылки, просто происходит запрос к серверу!
Изучите с начало, что такое html, что такое php, и что такое js до кучи.


Собственно я этим сейчас и занимаюсь, поэтому прошу помощи (по возможности) на данном этапе
 
 Top
exlant
Отправлено: 08 Марта, 2015 - 13:39:44
Post Id



Посетитель


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


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




по сути я тоже ответил, что php с html общаются с помощью запросов!
и что бы отправить запрос(форму методом post) с помощью ссылки, или при помощи любого другого тега, по нажатию(или еще чего то там) нужно использовать js
примерно это выглядит так:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href="#" onclick="document.forms.some_form.submit(); return false;">click<a/>
  3.     <form name="some_form" method="post" action="">
  4.         <input type="text" name="fio" value=""/>
  5.     </form>
  6.  

проще не знаю, как написать..

а тут вы просто делаете редирект на другую страницу, и вообще не понятно зачем его делаете...
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['add']))
  3. {
  4.         $_SESSION['fio'] = $_POST['fio'];
  5. }
  6. echo '<script>window.location.href = "book.php";</script>';
  7.  
 
 Top
ivnphp
Отправлено: 08 Марта, 2015 - 17:36:03
Post Id


Новичок


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


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




exlant пишет:
по сути я тоже ответил, что php с html общаются с помощью запросов!
и что бы отправить запрос(форму методом post) с помощью ссылки, или при помощи любого другого тега, по нажатию(или еще чего то там) нужно использовать js
примерно это выглядит так:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href="#" onclick="document.forms.some_form.submit(); return false;">click<a/>
  3.     <form name="some_form" method="post" action="">
  4.         <input type="text" name="fio" value=""/>
  5.     </form>
  6.  

проще не знаю, как написать..

а тут вы просто делаете редирект на другую страницу, и вообще не понятно зачем его делаете...
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['add']))
  3. {
  4.         $_SESSION['fio'] = $_POST['fio'];
  5. }
  6. echo '<script>window.location.href = "book.php";</script>';
  7.  


благодарю за помощь, позже начну изучать основы JS.

из последнего...
при нажатии записываю данные в массив, а редирект меня перебрасывает на другую страницу, что бы продолжить работать с этим данными. вот спрашиваю на сколько это будет реально на той странице на которую меня перебросят...
 
 Top
exlant
Отправлено: 08 Марта, 2015 - 20:07:52
Post Id



Посетитель


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


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




Цитата:
при нажатии записываю данные в массив

при нажатии вы посылаете post запрос, насколько я понимаю, той же странице где и находится форма! Вы при нажатии кнопки ничего никуда не записываете! Записывает уже скрипт, который принимает данные от запроса post!
ваша запись идентична записи
CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="book.php">
  2. <input type="text" name="fio" value=""/>
  3. <input type="submit" name="add" value="ДОБАВИТЬ" />
  4. </form>


и уже в book.php делаете с пришедшими данными, что вам нужно!
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['add']))
  3. {
  4.         $_SESSION['fio'] = $_POST['fio'];
  5. }
  6.  


p.s редирект лучше делать так
 
 Top
ivnphp
Отправлено: 10 Марта, 2015 - 22:12:57
Post Id


Новичок


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


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




Добрый день еще раз.
Что бы не пладить новые тему, прошу по возможности подсказать (дать ссылки)
каким образом регулируется вывод даты и времени. И так же интересует каким образом выводятся ссылки или емайл.
Спасибо за помощь. В поисковике искал, но пока еще ни чего не нашел.
 
 Top
ivnphp
Отправлено: 19 Марта, 2015 - 22:46:30
Post Id


Новичок


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


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




Если вернуться к этой теме (возврат данных обратно в форму), то этот вопрос можно решить с помощью литературы (в интернете скан книги есть) "Изучаем PHP и MySQL" Линн Бейли и Майкл Моррисон, стр. 239. При нажатие на ссылку еще не нашел.

(Отредактировано автором: 19 Марта, 2015 - 22:49:11)

 
 Top
exlant
Отправлено: 20 Марта, 2015 - 04:44:02
Post Id



Посетитель


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


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




ivnphp пишет:
Если вернуться к этой теме (возврат данных обратно в форму), то этот вопрос можно решить с помощью литературы (в интернете скан книги есть) "Изучаем PHP и MySQL" Линн Бейли и Майкл Моррисон, стр. 239. При нажатие на ссылку еще не нашел.


возврат данных обратно в форму, обычно делают или с помощью сессий:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //some.php
  3. if(isset($_POST['some_name'])){
  4. $_SESSION['some_name'] = $_POST['some_name'];
  5. }
  6. ?>

PHP:
скопировать код в буфер обмена
  1. <form action="some.php" method="post">
  2. <input type="text" name="some_name" value="<?=(isset($_SESSION['some_name'])) ? $_SESSION['some_name'] : "" ?>">
  3. <input type="submit" value="Send">


или с помощью того же массива $_POST
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="" method="post">
  3. <input type="text" name="some_name" value="<?=(isset($_POST['some_name'])) ? $_POST['some_name'] : "" ?>">
  4. <input type="submit" value="Send">
  5.  

а вот если вернуться к теме, то вы хотели
Цитата:
заставить их сохраняться при нажатии на ссылку, а не на <input type="submit" name="add" value="ДОБАВИТЬ" />

на что вам уже ответил несколько раз, что только с помощью php это не возможно! И для отправки формы(не их сохранения, как вы хотели) нажатием на ссылку, нужно использовать JS!

P.S. А ответ вам дал DelphinPRO еще в самом первом сообщении, и посоветовал разобраться, что такое php, и где его используют! А то, что вы кроме себя никого не слышите, лично ваши проблемы!

(Отредактировано автором: 20 Марта, 2015 - 06:13:04)

 
 Top
ivnphp
Отправлено: 02 Апреля, 2015 - 08:55:15
Post Id


Новичок


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


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




exlant пишет:
ivnphp пишет:
Если вернуться к этой теме (возврат данных обратно в форму), то этот вопрос можно решить с помощью литературы (в интернете скан книги есть) "Изучаем PHP и MySQL" Линн Бейли и Майкл Моррисон, стр. 239. При нажатие на ссылку еще не нашел.


возврат данных обратно в форму, обычно делают или с помощью сессий:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //some.php
  3. if(isset($_POST['some_name'])){
  4. $_SESSION['some_name'] = $_POST['some_name'];
  5. }
  6. ?>

PHP:
скопировать код в буфер обмена
  1. <form action="some.php" method="post">
  2. <input type="text" name="some_name" value="<?=(isset($_SESSION['some_name'])) ? $_SESSION['some_name'] : "" ?>">
  3. <input type="submit" value="Send">


или с помощью того же массива $_POST
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="" method="post">
  3. <input type="text" name="some_name" value="<?=(isset($_POST['some_name'])) ? $_POST['some_name'] : "" ?>">
  4. <input type="submit" value="Send">
  5.  

а вот если вернуться к теме, то вы хотели
Цитата:
заставить их сохраняться при нажатии на ссылку, а не на <input type="submit" name="add" value="ДОБАВИТЬ" />

на что вам уже ответил несколько раз, что только с помощью php это не возможно! И для отправки формы(не их сохранения, как вы хотели) нажатием на ссылку, нужно использовать JS!

P.S. А ответ вам дал DelphinPRO еще в самом первом сообщении, и посоветовал разобраться, что такое php, и где его используют! А то, что вы кроме себя никого не слышите, лично ваши проблемы!



Спасибо за ваше сообщение...
Все верно я уже просмотрел не много видео по js специально по этому вопросу и не только и получив не много знания сегодня вернулся на форум, что бы как раз посмотреть что написал DelphinPRO.
Если у Вас есть хорошая литература для начинающих буду благодарен за рекомендации.

(Отредактировано автором: 02 Апреля, 2015 - 08:58:17)

 
 Top
ivnphp
Отправлено: 08 Апреля, 2015 - 11:02:03
Post Id


Новичок


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


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




На сегодняшний день получилось решить с помощью JS следующим образом (с помощью PHP пока нет возможности решить эту проблему).
1. Использую jQuery.
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.                
  3.                         $('#submit').click(function(){
  4.                
  5.                                 var password1 = $('#pass1').val();
  6.                
  7.                                
  8.                                 $.post('http://localhost/session.php',
  9.                                 {
  10.                                         pass1:password1,
  11.                                
  12.                                 },
  13.                                 function(data){
  14.                                 $('#alert').html(data);
  15.                                
  16.                                 }
  17.                                
  18.                                 );
  19.                
  20.                         });
  21.                
  22.                 });


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="text" id="pass1" placeholder="Password one"/>              <input type="text" id="pass2" placeholder="Password two"/>              <a href="#" id="submit">Submit</a>
  3.                 <p id="alert"></p>


В этом коде с помощью JS ищет с начало место ссылки по которой выполнен клик с помощью селектора '#submit' (ссылку можно вписать вместо символа #), далее создает переменную var password1 и добавляет введенный текст в поле input который он находит с помощью селектора '#pass1'.
После чего методом .post передает это значение в файл session.php в котором следующий код где и создается сессия:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.  
  5.  
  6.         if(isset($_POST))
  7.                 {
  8.                 $_SESSION['password1'] = $_POST['pass1'];
  9.  
  10.                 if($_SESSION['password1'] == '12345')
  11.                         echo "Success!";
  12.                 else
  13.                         echo "Faill";
  14.                
  15.                 }
  16.                
  17. ?>
  18.  
  19.  


echo "Success!" или echo "Faill" это то, что он возвращает обратно и это можно вывести на страницу где была нажата ссылка (если не уходить с этой странице, и не много дописать строку $.post).

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

и не забываем про
session_start();
unset($_SESSION['password1']);
или session_destroy();

JS добавляет функционал, но обработка только на стороне клиента, например если отключить JS в браузере то сайт facebook.com не будет работать и предложит включить JS или пользоваться мобильной версией.

(Отредактировано автором: 08 Апреля, 2015 - 11:09:37)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB