Автор Тема: Проблема с формой  (Прочитано 12764 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн oksale

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с формой
« Ответ #15 : 05 Января 2003, 16:01:23 »
to GoBeer:
эт мой курсовой проект, рано-не рано, а делать надо:))
буду разбираться, что делать-то...

to new:
версия 4.0
а я про сессии слышала, что они могут не поддерживаться(что это как-то задается), или польз-ль вообще может удалить файлы, где все это будет храниться. Как тогда быть?

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с формой
« Ответ #16 : 05 Января 2003, 16:08:04 »
Цитировать

а я про сессии слышала, что они могут не поддерживаться(что это как-то задается), или польз-ль вообще может удалить файлы, где все это будет храниться. Как тогда быть?

Дать такому умному пользователю по голове.
Нет, правда.
В веб-приложениях защиту от дурака ИМХО почти нереально сделать.
•••Jah\'d never let us down!•••

Оффлайн Bang

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 120
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anna.comcor.ru
Проблема с формой
« Ответ #17 : 05 Января 2003, 16:08:39 »
В сессии, конечно, лучше всего, имхо.
Потому что при такой частичной записи в БД, после каждого фрагмента, встает такой вопрос: а если пользователь бросил на полпути заполнять форму? Что делать с этими огрызками данных?
best wishes!
bang

Оффлайн Nevermind

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с формой
« Ответ #18 : 05 Января 2003, 18:04:18 »
Файлы сессии хранятся на сервере. Пользователь-дурак при всём желании не сможет их оттуда удалить.

А не поддерживаться могут кукисы (отключены просто). Тогда идентификатор сессии будет передаваться в url.
Цитировать
Потому что при такой частичной записи в БД, после каждого фрагмента, встает такой вопрос: а если пользователь бросил на полпути заполнять форму? Что делать с этими огрызками данных?

А зачем вообще на полпути в базу записывать?

Вообще, данные имхо можно обнулять по таймауту...

Оффлайн new

  • .
  • Постоялец
  • ***
  • Сообщений: 135
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с формой
« Ответ #19 : 05 Января 2003, 18:34:22 »
oksale
Цитировать
версия 4.0

???
Значит иди на http://www.php.net и бери 4.3.0 (это настойчивая рекомендация).

Кроме того полезно почитать http://www.php.net/manual/ru/

Особое внимание удели:
http://www.php.net/manual/ru/reserved.variables.php
http://www.php.net/manual/en/ref.session.php

Nevermind
Цитировать
Файлы сессии хранятся на сервере.

Ну да, или в БД иногда тоже...
Цитировать
зачем вообще на полпути в базу записывать?
, в общем то совершенно без разницы в какой файл писать - в файл сессии или в файл БД.

Bang
Цитировать
В сессии, конечно, лучше всего, имхо.
Потому что при такой частичной записи в БД, после каждого фрагмента, встает такой вопрос: а если пользователь бросил на полпути заполнять форму? Что делать с этими огрызками данных?

Дык, всё равно - по каким то условиям чистить необходимо, будь то сессия в файле или запись в БД.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с формой
« Ответ #20 : 05 Января 2003, 23:50:03 »
Оксана.
Сначала тебе надо перечитать уитату, которую я тебе привел в самом начале.
И накрепко уяснить себе то, что там написано.
Что непонятно - спросить.
Потому, что твои слова показывают, что ты совершенно ничего из этого текста не поняла.

Фокус в поле находится в браузере у клиента. а программа выполняется на сервере.
И к тому моменту, когда у пользователя появляется фокус, программа давно отработала.

Пожалуйста. Уясни себе сначала, как работает РНР. Согласись - без этого трудно двигаться дальше.

Но попробуем.
Вариантов с передачей данных у тебя немного. Точнее, всего два. или тащить хидденами, что глупо и бесмысленно. Потому, что ты три раза будешь их таскать туда сюда и по объему это получится гораздо больше, чем все сделать одной формой.

Второй вариант - сохранять на сервере. Как - это уже второй вопрос. В базе, в файле или в сессии - это не принципиально.

Сессии - это тоже не бином ньютона. Это просто файл на сервере, имя которого передается от скрипта к скрипту либо куками либо по ссылке, либо хидден полем.
Поэтому ты можешь либо воспользоваться готовым механизмом, либо написать свой - к примеру, в форму пишешь хидден поле с именем файла, и в этот файл дописываешь все время данные. А после завершающей формы файл стирать.

К скрипту придется дописать небольшой код, который удаляет устаревшие файлы - которые остались недозаполненными.

С базой еще проще - такие недозаписи можно удалять одним запросом.

С сессиями тоже - PHP удалит их сам.

Сессии... Могут не поддерживаться самим PHP. Как и базы данных и работа с текстовыми файлами, да и самого РНР может не быть - верно?
Стереть файл пользователь может. Закрыв, например, браузер. И это как раз удобно - тебе самой не надо заботиться об этом. В общем, мне надо больше понимать твою задачу, а тебе - в РНР, чтобы судить о том, что удобнее и правильнее.

И еще. Сначала разберись полностью, на 100% с ОДНОЙ формой. Как данные принимать, обрабатывать, проверять, сохранять. А потом уже делай многостраничную. Зачем себе самой трудности создавать?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с формой
« Ответ #21 : 06 Января 2003, 00:04:49 »
Цитировать
Я нажимаю на какой-нибудь товар, у меня появляется список фирм, ну и так далее. То есть у меня инф-ция должна накапливаться. Так мне всю кучу переменных и передавать этим hidden?


Варианта 3:
1. По нажатию кнопки данные отправляются скрипту, который выдает новую картинку. страница, естественно, перезагружается. Решение чисто серверное. Остальные два чисто клиентские.
2. Все варианты заранее запихать в яваскрипт.
3. По нажатии кнопки открывать попап окно, которое отправляет информацию серверу, получает нужные данные, передает в основную страницу и закрывает само себя.

На РНР проверка производится так.
в самом начале скрипта проверяешь, была ли нажата кнопку submit
если была, то проверяешь заполнение.
Если были ошибки, то формируешь сообщения о них.
если нет ошибок, то записываешь, делаешь редирект, куда надо и завершаешь работу скрипта.
выводишь сообщения об ошибках
Выводишь форму.

Фокусировать, извини, PHP не умеет. Он, как я уже говорил, находится на сервере, а фокусы - на клиенте.
Вот тебе пример простейшей формы с проверкой

<?
$err=\'\';
if (isset($submit)) {
  if (!$name) $err="Вы забыли написать свое имя
"; 
  if (!$notes) $err.="Вы забыли написать сам отзыв!
"; 
  if (!$err) {
    $s=$name."|".$notes."|".time()."\\n";
    $fp=fopen("gb.txt","a");
    fwrite($fp,$s);
    fclose($fp);
    Header("Location: $PHP_SELF");
    exit;
  } 
}
if ($err) echo \'<font color=red><b>\'.$err.\'</b></font>\';
?>
<form action="" method="post">

Name: <input type="text" name="name" value="<? echo htmlspecialchars($name) ?>">

Notes: <textarea name="notes"><? echo htmlspecialchars($notes); ?></textarea>

<input type="submit" name="submit">
</form>
« Последнее редактирование: 06 Января 2003, 13:08:51 от RomikChef »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с формой
« Ответ #22 : 06 Января 2003, 13:09:54 »
Обязтельно прочти весь http://faq.phpclub.net
там чтения на 10 минут, а сэкономит тебе десятки часов.

Оффлайн Bang

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 120
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anna.comcor.ru
Проблема с формой
« Ответ #23 : 08 Января 2003, 10:02:40 »
Цитировать
С базой еще проще - такие недозаписи можно удалять одним запросом.

Можно, конечно. Вопрос - в какой момент это лучше делать? (это я серьезно спрашиваю)
best wishes!
bang

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с формой
« Ответ #24 : 08 Января 2003, 13:50:06 »
в начале каждого скрипта.

Оффлайн Bang

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 120
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anna.comcor.ru
Проблема с формой
« Ответ #25 : 08 Января 2003, 14:18:59 »
спасибо :)
best wishes!
bang

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28