Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 01.08.2010, 14:04   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Передача данных из формы на страницу (php)

Доброго времени суток.
Не могу понять - в чём ошибка - если кто знает - подскажите, пожалуйста.
Есть код страницы с формой (form.html) -
Код:
<html>
<head>
<title>Пробный</title>
</head>
<body>
<?php
print ("hello, World! ");
?>
<Form Action = "handleform.php" method=post>
first name <input type=text name="firstname" size=20><br>
Last name <input type=text name="lastname" size=40><br>
e-mail  <input type=text name="email" size=60><br>
Comments <textarea name="comments" rows=5 cols=40> </TEXTAREA> <BR >
<input type=submit name="submit" value="Submit!">
<input type=reset name="reset" value="reset">
</form>
</body>
</html>
и есть код , другой страницы, которая получает данные из предыдущей (handleform.php) -
Код:
<html>
<head>
<title> handleform </title>
</head>
<body>
<?php
/* эта страница обрабатывает данные формы из страницы "form.html" */
print ("your first name is $firstname  ");
print ("your last name is $lastname ");
print ("your first name is $email ");
print ("your first name is $comments ");
?>
</body>
</html>
А интернет эксплорер говорит вот что-
Цитата:
Notice: Undefined variable: firstname in C:\data\localhost\www\handleform.ph p on line 9

Notice: Undefined variable: _gh in C:\data\localhost\www\handleform.ph p on line 9
your first name is

Notice: Undefined variable: lastname in C:\data\localhost\www\handleform.ph p on line 10
your last name is .
Notice: Undefined variable: email in C:\data\localhost\www\handleform.ph p on line 11
your first name is .
Notice: Undefined variable: comments in C:\data\localhost\www\handleform.ph p on line 12
your first name is .
видимо, что-то не то с синтаксисом.....выручайте .
Заранее благодарю.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 01.08.2010 в 14:11.
vedro-compota вне форума Ответить с цитированием
Старый 01.08.2010, 14:23   #2
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Получать надо так $_GET['email'] для get запросов
или $_POST['email'] для post запросов.
Можно $_REQUEST['email'] для любых запросов. Там все в куче)))
Просто в php с версии 5 вроде надо брать значения из массивов в целях безопасности а не просто по имени переменной.
В синтаксисе все нормально. Пишет переменная не определена по причине что я указал выше.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 01.08.2010, 15:17   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Mixasik,
1) то есть
Код:
 $_POST['email']
- это как раз таки и есть опасный способ передачи значений с помощью переменной ?
2) после вашего совета ( за что спасибо )) получил такую вот страницу (пока только одну строчку оставил)-
Код:
<html>
<head>
<title> handleform </title>
</head>
<body>
<?php
/* эта страница обрабатывает данные формы из страницы "form.html" */
print ("your first name is $_POST['firstname']  ");

?>
</body>
</html>
на что браузер говорит - дескать -
Цитата:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\data\localhost\www\handleform.ph p on line 9
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 01.08.2010, 15:26   #4
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

vedro-compota, нет $_POST['email'] - это безопасный, а опасный по переменной (который в настоящее время не работает), вот например у тебя есть переменная $test1 которая учавствует в sql запросе, а тут раз злоумышленник написал так: test.php?test1=code вот он исправил вам переменную и все - нанес вред, поэтому от этого отказались.
Код:
print ("your first name is $_POST['firstname']  ");
Здесь просто синтаксическая ошибка с неверным указанием кавычек и апострофов (я не пользуюсь данной функцией поэтому точно не скажу, может он не приемлет использование внутри параметра значения из массива).
Попробуйте так:
Код:
echo 'your first name is '.$_POST['firstname'];
Страх это слабость и потому, кто испугался уже побежден.

Последний раз редактировалось Mixasik; 01.08.2010 в 15:28.
Mixasik вне форума Ответить с цитированием
Старый 01.08.2010, 15:37   #5
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Mixasik, точку перед знаком доллара - это всегда при использовании переменной ставить надо ?
------------------------------
ага.....это сцепление строк....переползу и я на эхо тогда ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 01.08.2010 в 15:40.
vedro-compota вне форума Ответить с цитированием
Старый 01.08.2010, 15:39   #6
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

vedro-compota, нет это значит конкатенция строк, то есть сложение например
$test= '1'.'2'.'3';
даст результат при echo $test;
Цитата:
123
Цитата:
echo 'your first name is '.$_POST['firstname'];
Здесь мы можно сказать сложили две строк: 1 строка 'your first name is ' и вторая строка это содержимое переменной $_POST['firstname']
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 01.08.2010, 15:44   #7
dr.Chas
***
СуперМодератор
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,161
По умолчанию

Конкатенация строк:
В различных языках программирования используются различные операторы конкатенации (объединения) строк. Например, в Pascal используется оператор "+". Использование в PHP оператора "+" для конкатенации строк некорректно: если строки содержат числа, то вместо объединения строк будет выполнена операция сложения двух чисел.

В PHP есть два оператора, выполняющие конкатенацию.

Первый - оператор конкатенации ('.'), который возвращает объединение левого и правого аргумента.

Второй - оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому.

Приведем конкретный пример:

<?php
$a = "Hello ";
$b = $a . "World!"; // $b содержит строку "Hello World!" - Это конкатенация

$a = "Hello ";
$a .= "World!"; // $a содержит строку "Hello World!" - Это присвоение с конкатенацией
?>
(с)
dr.Chas вне форума Ответить с цитированием
Старый 01.08.2010, 16:22   #8
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Ага. вот что получается -
Код:
html>
<head>
<title> handleform </title>
</head>
<body>
<?php
/* эта страница обрабатывает данные формы из страницы "form.html" */
echo 'your first name is'.$_POST['firstname']  ;
?>
</body>
</html>
и ответ-
Цитата:
Notice: Undefined index: firstname in C:\data\localhost\www\handleform.ph p on line 9
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 01.08.2010, 16:22   #9
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

что-то с индексом каким-то.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 01.08.2010 в 16:49.
vedro-compota вне форума Ответить с цитированием
Старый 01.08.2010, 16:54   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

При работе с данными из форм,получаемыми через $_GET или $_POST желательно сначала проверять эти данные на существование,примерно так:
PHP код:
if(isset($_POST['firstname'])){
    echo 
'your first name is'.$_POST['firstname']  ;

Andkorol вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных php-скрипту mikhea PHP 8 26.06.2010 21:12
передача данных из формы с определенной кодировкой kirosin HTML и CSS 0 08.05.2010 20:36
Передача данных из формы в форму. Meridian PHP 3 09.04.2009 11:44
Передача данных php скрипту Черничный Работа с сетью в Delphi 3 11.11.2008 08:56
Передача данных из формы в родительское окно OSKiller JavaScript, Ajax 1 29.01.2008 23:34


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840