Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2010, 14:54   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Переменные, являющиеся именами "элементов управления".

Доброе время суток.
Прошу ответить на вопрос , связанный с получением данных из html-формы.
Есть код формы -
Код HTML:
<html>
<head>
<title>  Work with database </title>
</head>
 <center>
    <h1> Выбери что-нибудь)) </h1>
	<form action="u2php.php" metod="post"> 
	Вот здесь ты можешь что-нибудь выбрать<br>
	<select name="searchtype">
	  <option value="name"> Name
	  <option value="orderid"> Orderid
	  <option value="amount"> Amount
	</select>
	<br>
	Напиши сюда , что конкретно ты хочешь-><br>
	<input name="searchterm" type=text>
	<br><br>
	<input type=submit value="ПОиск">
	</form>
	
 </CENTER>
</body>
</html>
и есть кусок кода , который обрабатывает всё это дело (собственно, до обработки даже не дошло). -
Код:
<html>
<head>
<title>  Результаты поиска. </title>
</head>
 <center>
    <h1> А вот и то, что нам удалось найти </h1>
	<?php
	  trim($searchterm);
	  if ( !$searchterm );
	  if (!$searchtype || !$searchterm)
	  {
	      echo "ВЫ что-то недоуказали. Пожалуйста ,доукажите )) ";
		  exit;
	  }
	   else
	  { echo " Пашет пока ))  ";
	  }
	  
	  $searchtype =addslashes($serchtype);
	  $searcterm =addslashes($serchterm);	
	  ?>
 </CENTER>
</body>
</html>
вот выделяю красным строку, где по мнению php-интерпретатора есть ошибка.
есть два вопроса -
1) Получается, что таким вот образом (просто через имена элементов управления ) -
Цитата:
$searchtype =addslashes($serchtype);
$searcterm =addslashes($serchterm);
значения получать нельзя ?
2) Если данные получить нельзя , то почему же работает фрагмент -
Код:
if (!$searchtype || !$searchterm)
	  {
	      echo "ВЫ что-то недоуказали. Пожалуйста ,доукажите )) ";
		  exit;
	  }
	   else
	  { echo " Пашет пока ))  ";
	  }
(надпись, о том, что пашет - появляется).
Заранее благодарю.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 20.09.2010, 15:16   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

нужно писать
$_POST['searchtype'] и $_POST['searchterm']
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 21.09.2010, 12:13   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
нужно писать
$_POST['searchtype'] и $_POST['searchterm']
да. так можно. можно ещё -
Код:
$_REQUEST ["searchterm"] ;
но , при этом получается, что выражение
Цитата:
if (!$searchtype || !$searchterm)
и
Цитата:
trim($searchterm);
являются корректными....ну или почему-то не сообщается об ошибке в этих строчках.
------------------------------
вот прикреплю пример- там ошибки только в 19-той и 20-той строках.
Вложения
Тип файла: zip u2.zip (447 байт, 6 просмотров)
Тип файла: zip u2php.zip (416 байт, 5 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 21.09.2010 в 12:17. Причина: добавка файлов 0)))
vedro-compota вне форума Ответить с цитированием
Старый 21.09.2010, 12:45   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Выражение:
PHP код:
if (!$searchtype || !$searchterm)
      {
          echo 
"ВЫ что-то недоуказали. Пожалуйста ,доукажите )) ";
          exit;
      }
       else
      { echo 
" Пашет пока ))  ";
      } 
у вас отрабатывает корректно:
IF((ноль_или_пустое_значение) ИЛИ (ноль_или_пустое_значение)){
// код 1
}
ELSE{
// код 2
}
Ключевой момент здесь - || (ИЛИ) - т.е. условие истинно,если пустым или нулевым является ОДНО ИЗ ЗНАЧЕНИЙ(значение_1 ИЛИ значение_2).
В вашем случае, из-за неиспользования $_POST, значения не передаются - потому пустыми или нулевыми являются ОБА ЗНАЧЕНИЯ - а значит условие не выполняется,поэтому отрабатывает альтернативный код из ELSE.

Что касается trim() - то эта функция возвращает значение,потому корректно использовать её так:
PHP код:
$var 'value';// какое-то значение
$var trim($var); 
Ваше выражение trim($searchterm) возвращает обработанную строку,но возвращает её в никуда - возможно потому у вас и нет ошибки в этом месте.
Andkorol вне форума Ответить с цитированием
Старый 21.09.2010, 13:34   #5
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
Ваше выражение trim($searchterm) возвращает обработанную строку,но возвращает её в никуда
видимо так и есть. просто в листинге почему-то была именно такая запись ( то есть trim выступало в роли ...процедуры что ли...).
--------------------------------
кстати, mv28jam подсказал единственно верное решение . вот такой вариант не работает -
Цитата:
$searchtype =addslashes($_REQUEST ["serchtype"]);
$searcterm =addslashes($_REQUEST ["serchterm"]);
а вот так хотяб не сообщает об ошибке -
Цитата:
$searchtype =addslashes($_POST ["serchtype"]);
$searcterm =addslashes($_POST ["serchterm"]);
Непонятно почему не работает REQUEST. В другом учебнике его успешно вроде применяют...
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 21.09.2010 в 13:42.
vedro-compota вне форума Ответить с цитированием
Старый 21.09.2010, 14:18   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

получается , что и post у меня тоже не работает......вот пример....прикрепляю.
Вложения
Тип файла: zip u2.zip (449 байт, 6 просмотров)
Тип файла: zip u2php.zip (318 байт, 7 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 21.09.2010, 14:23   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от vedro-compota Посмотреть сообщение
получается , что и post у меня тоже не работает......вот пример....прикрепляю.
Всё там работает - пробелы уберите между $_POST и ["serchtype"] - ну и во втором выражении так же.
Andkorol вне форума Ответить с цитированием
Старый 21.09.2010, 14:46   #8
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
Всё там работает - пробелы уберите между $_POST и ["serchtype"] - ну и во втором выражении так же.
Andkorol, не работает оно. в один файл запихнул и прикрепил
Вложения
Тип файла: zip u2php.zip (744 байт, 7 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 21.09.2010, 15:19   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Это потому,что у вас с грамматикой плохо совсем.
Вот,из вашего кода:
1.<form action="u2php.php" metod="POST"> - нужно method
2.<select name="searchtype"> - а в обработчике вы ожидаете : $searchtype =addslashes($_POST["serchtype"]);
3.<input name="searchterm" type=text> - а в обработчике вы ожидаете : $searcterm =addslashes($_POST["serchterm"]);

Какого вывода вы ожидаете от этого кода? :
Код:
<html>
<head>
<title>  Результаты поиска. </title>
</head>
 <center>
    <h1> А вот и то, что нам удалось найти </h1>
	<?php
	 
	  
	  $searchtype =addslashes($_POST["serchtype"]);
	  $searcterm =addslashes($_POST["serchterm"]);
	
	
	  ?>
 </CENTER>
</body>
</html>
Внимательно пишите код - сэкономите кучу времени...Причём всем.
Andkorol вне форума Ответить с цитированием
Старый 21.09.2010, 19:22   #10
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
Это потому,что у вас с грамматикой плохо совсем.
и то верно....
Цитата:
сэкономите кучу времени...Причём всем.
и это.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
MFC: как передать фокус елементу управления "edit" ? umnick Visual C++ 2 02.11.2008 18:45
Цветовая палитра и "Панель управления" Xaerl Общие вопросы Delphi 5 31.05.2008 16:43