Перейти к содержимому



Формы, передача данных из формы

#11 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176
0

Отправлено 19 Июнь 2009 - 11:59

v1ex,
ну я дополнил свое замечание
  • 0

#12 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 19 Июнь 2009 - 12:01

Banderas,
обратите внимание: основная ошибка не в кавычках, а в неверном типе кнопки ("button" вместо правильного "submit").
А то за холиваром пропустите суть. :)
  • 0

#13 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 19 Июнь 2009 - 12:11

2*yury* я это хотел написать 4-а постами выше, просто не знал как называть этот знак > :)

пс. ещё будут вопросы по этому поводу, сейчас учу форму, заодно если не сложно, обясните что такое getCookieData() - взять кикизы из браузера? так же setCookieData() - вести/добавить масив(данные) в куки ? правильно? Ато я остановился на автозаполнении полей :)
  • 0


#14 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 19 Июнь 2009 - 12:20

Banderas, впервые вижу эти функции. Используйе setCookie() - для установки куков, и массив $_COOKIE - для чтения.
  • 0

#15 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 19 Июнь 2009 - 12:38

2*v1ex* угу, но дядя Уэнц их юзает о_О А о setCookie() и $_COOKIE я знал :)

Вот пример, я отсюда взял Прикрепленный файл  save_cookie.php   1,41К   Количество загрузок: 79
  • 0


#16 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 19 Июнь 2009 - 12:59

угу, но дядя Уэнц их юзает

Слушай, может этот дядька написал эту функцию сам, и подключает её из:
require_once 'stripFormSlashes.inc.php';
или
  require_once 'getFormData.inc.php';
Потому что такой функции в PHP нету :)

А вообще, я так понял эта функция просто заносит массив в cookies, где имя cookies - это ключ массива, а значение cookies - это значение массива.
Т.е. setCookieData делает примерно так:
foreach ($_POST as $k => $v)
{
  setCookie($k, $v);
}
А функция getCookieData извлекает подобно тому, как setCookieData устанавливает.
  • 0

#17 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 19 Июнь 2009 - 15:32

ага, точно :) просто он это не упомянул... вот
function setCookieData($arr) {
	$formdata = getCookieData();
	if ($formdata == null) { // если ничего в куки не занесено, создаем масив
	  $formdata = array();
	}
	foreach ($arr as $name => $value) { // хз, плозо в форич разбараюсь... ща почитаю
	  $formdata[$name] = $value;
	}
	setcookie('formdata', serialize($formdata), time()+30*24*60*60); // называем печенько formdata, конвертируем весь масив в строку, линия жизни куки
  }

теперь если хотим передать что нить в куки, юзаем setCookieData(переменная)

правильно?
  • 0


#18 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 19 Июнь 2009 - 16:19

теперь если хотим передать что нить в куки, юзаем setCookieData(переменная)

Если под переменной вы подразумеваете не массив, то нет. Функция setCookieData() сериализует массив и заносит его в cookie под именем 'formdata', getCookieData() десериализует массив и возвращает его. Т.е. с обычными значениями данные функции работать не будут.
Эти функции в данном контексте созданы для передачи данных формы между страницами. Т.е. например пользователь заполнил форму, отправил данные на сервер, сервер обработал данные, и какое-то поле не удолетваряет условию, заносим данные формы с помощью функции setCookieData() в Cookies, редиректим на форму и восстанавливаем данные с помощью getCookieData().

P.S.
Рано.... за практику взялся... ИМХО
  • 0

#19 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 19 Июнь 2009 - 17:51

Ладно, пошел дальше читать.. :) Скоро придут новые книги, думаю будет легче все понять :)
  • 0


#20 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 20 Июнь 2009 - 19:57

v1ex, 100 раз видел эту сериализацию. Это отличный способ сжать передаваемые данные и сократить время работы скрипта на несколько микросекнд :)
Чем не нравится данная методика, это отключенные куки. Уж лучше использовать сессии. Возможно это и более затратно по ресурсам, но работает всегда.

Banderas, глядя на пример можно построчно прочитать его и понять суть. Ты же уже примерно представляешь что делают циклы foreach и другие операторы. А прежде чем задавать вопросы, иногда стоит 10 раз всё проверить. Твой код проверялся легко. Так как ты посылаешь к примеру POST и они не доходят, то проблема в форме, других вариантов нет. Проверяем форму на правильность своим профессиональным взглядом :)
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru