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 :: Передача данных из формы методом Get

 PHP.SU

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


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

> Описание: Помогите разобрать , почему пример из урока на сайте не работает у меня..
Конструктор
Отправлено: 22 Марта, 2011 - 12:41:30
Post Id



Частый гость


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


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




Разбираюсь в передаче данных из формы.
Рассматриваю код от сюда: http://www.php.su/phphttp/forms/?scrint
Там есть скрипт для обработки 2х переменных:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "Привет, $_GET['name'] ! Вам $_GET['age'] лет !";
  3. ?>

Но у меня о работает если убрать кавычки ' ', то есть так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "Привет, $_GET[name] ! Вам $_GET[age] лет !";
  3. ?>

Нужны ли эти кавычки или нет? или может иногда нужны? или это от чего зависит?
(Добавление)
В уроке также описывается 2 файла:
1 - страница с формой.
2 - скрипт на который ссылается 1я страница и который обрабатывает пришедшие данные.
А ведь можно их объединить?

Я вот попробовал
PHP:
скопировать код в буфер обмена
  1. <html><body>
  2. <?PHP
  3. While ($name=$_GET[name])
  4. {
  5. echo "Привет, $name ! Вам $_GET[age] лет !";
  6. }
  7. ?>
  8.  
  9. <form action="index.php">
  10. Введите имя: <input type=text name="name"><br>
  11. Введите возраст: <input type=text name="age"><br>
  12. <input type=submit value="GO!">
  13. </form>
  14. </body></html>


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


-----
Если все время идти вперед, до цели будет немного ближе..
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2011 - 13:31:28
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




if(isset($_GET['name']))
{
}

Проверять это циклом - некорректно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Конструктор
Отправлено: 22 Марта, 2011 - 14:04:35
Post Id



Частый гость


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


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




Спасабо, теперь первый раз вывод не происходит..
Но как сделать чтоб вывода не было каждый раз при нулевом вводе?
PHP:
скопировать код в буфер обмена
  1. <html><body>
  2. <?PHP
  3. if(isset($_GET['name']))
  4. {
  5. echo "Привет, $_GET[name] ! Вам $_GET[age] лет !";
  6. }
  7. ?>
  8.  
  9. <form action="index.php">
  10. Введите имя: <input type=text name="name"><br>
  11. Введите возраст: <input type=text name="age"><br>
  12. <input type=submit value="GO!">
  13. </form>
  14. </body></html>


-----
Если все время идти вперед, до цели будет немного ближе..
 
 Top
Платинум
Отправлено: 22 Марта, 2011 - 14:37:01
Post Id



Частый гость


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


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




<?PHP
if(isset($_GET['name']) and $_GET['name'] !='')
{
echo "Привет, $_GET[name] ! Вам $_GET[age] лет !";
}
?>
 
My status
 Top
dread_rock
Отправлено: 22 Марта, 2011 - 15:09:00
Post Id


Новичок


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


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




а так ведь тоже можно??

PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['name']) && !empty($_GET['name']))
  2. {
  3. echo "Привет, $_GET[name] ! Вам $_GET[age] лет !";
  4. }
 
 Top
Конструктор
Отправлено: 22 Марта, 2011 - 15:49:23
Post Id



Частый гость


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


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




Пока все предыдущие вопросы решены, всем спасибо..
Но появляются новые )..
Теперь скрипт может передавать данные из формы в базу данных и выводить их в таблицу.
Но если обновить страницу после отправки данных, она повторяет ввод последней строки...например >>
CODE (htmlphp):
скопировать код в буфер обмена
  1. адресная строка после отправки данных -> http://test1.ru/index.php?FullName=Pushkin+A&Email=push%40lit.ru&age=500

Если обновить эту страницу, добавится копия последней отправленной строки..
Теперь если жму кнопку отправить, после проверки пустых значений ничего не происходит,
А как решить проблему с обновлением (F5)? Можно как то обнулять переменные?

PHP:
скопировать код в буфер обмена
  1. <html><body>
  2.  
  3. <table width=100% height=50%>
  4. <tr><td align=center>
  5. <h2 align=center><a href="">Это файл /home/test1.ru/www/index.html.</a></h2>
  6. </td></tr>
  7. </table>
  8.  
  9. <?PHP
  10. $con = mysql_connect("localhost","root","");
  11. if (!$con)
  12.   {
  13.   die('Could not connect: ' . mysql_error());
  14.   }
  15.  
  16. if (mysql_query("CREATE DATABASE my_db",$con))
  17.   {
  18.   echo "Database created";
  19.   }
  20. else
  21.   {
  22.   echo "Error creating database: " . mysql_error();
  23.   }  
  24.  
  25. // Create table
  26. mysql_select_db("my_db", $con);
  27. $sql = "CREATE TABLE Persons
  28. (
  29. FullName varchar(15),
  30. Email varchar(15),
  31. Age int
  32. )";
  33. // Execute query
  34. mysql_query($sql,$con);
  35.  
  36. //Запись данных  
  37.   if(isset($_GET['FullName']) and $_GET['FullName'] !=''){  
  38. $sql=" INSERT INTO Persons
  39. (FullName, Email, Age)
  40. VALUES ('$_GET[FullName]','$_GET[Email]','$_GET[age]') ";
  41. mysql_query($sql,$con) or die (mysql_error());
  42. }
  43. //Вывод базы в таблице html
  44. $zapros="SELECT * FROM Persons";
  45. $result = mysql_query($zapros) or die (mysql_error());
  46. echo '<table>';
  47. while ( $row = mysql_fetch_array($result) ) {
  48.         echo '<tr>';
  49.                 echo '<td>'.$row[0].'</td>.
  50.                         <td>'.$row[1].'</td>.
  51.                         <td>'.$row[2].'</td>.
  52.                         <td>'.$row[3]."</td>";
  53.         echo '</tr>';
  54. }
  55. echo '</table>';
  56. mysql_close($con);  
  57. ?>
  58. <form action="index.php">
  59. Введите полное имя или Nickname: <input type=text name="FullName"><br>
  60. Введите E-Mail: <input type=text name="Email"><br>
  61. Введите возраст: <input type=text name="age"><br>
  62. <input type=submit value="Отправить!">
  63. </form>
  64.  
  65. </body></html>

(Отредактировано автором: 22 Марта, 2011 - 15:54:48)



-----
Если все время идти вперед, до цели будет немного ближе..
 
 Top
varyag
Отправлено: 22 Марта, 2011 - 16:16:51
Post Id


Новичок


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


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




что, таблицу персоны каждый раз создаете? Радость
 
 Top
Champion Супермодератор
Отправлено: 22 Марта, 2011 - 19:10:44
Post Id



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


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


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




Конструктор echo "всякие буквы {$_GET['name']} еще буквы". Тогда всё с кавычками будет хорошо и не будет возникать сомнений
(Добавление)
Да, создание таблицы и БД здесь - это круто) А проблему с F5 решить редиректом после вставки. Можно еще на форму поместить скрытое поле с каким-нибудь ключом (и его же записать в сессию) и при использовании данных с формы сравнить ключ с ключом из сессии и удалить ключ из сессии, чтобы второй раз не получилось.
 
 Top
MethodMan
Отправлено: 07 Октября, 2013 - 11:28:24
Post Id


Новичок


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


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




Хм

(Отредактировано автором: 07 Октября, 2013 - 15:39:31)

 
 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