Форма - валидация и обработка

Koc9k

Новичок
Форма - валидация и обработка

Не буду всё расписывать и тд и тп ,
спрошу коротко и ясно :
Каким образом можно проверить введённые данные в форму средствами php , чтоб ошибки выводились там где форма ,
и если всё введено правильно , то происходил переход на другую страницу допустим с поздравлением ?
Ведь чтоб ошибки выводились там где форма , нужно чтоб в формe action был пуст или $_SERVER['PHP_SELF'] , но тогда и при успешной проверке получится форма и поздравление .. А надо чтоб формы не было .
Пример : html_quickform , cakePHP , ну или допустим как тут
http://my.mambo.ru/reg.phtml?sold=Dgpd.GFo8Kiskgl2.XjO0BSeWp7Uo1J9
Без использования header('Location'); , без использования javascript'a .

Я никак не вдуплю , как так можно сделать ?!
 

Koc9k

Новичок
И ещё один вопрос , не в тему ,
вот кажется что я основы знаю , что делать дальше ?
Пытаться написать что-нибудь своё ?
Но когда ты думаешь что это уже тысячу раз написано , сразу падаешь духом :/
Изучать фреймворк какой нибудь ?
Или структуру какой нибудь cms ?
Подскажите что делать :)

-~{}~ 17.05.07 00:14:

Автор оригинала: Андрейка
if ?
Ну if , а толку ?
Я же написал без header('Location: '), ибо там нужно мудрить с ob_start , и мне не верится что везде делается именно так ..
 

Андрейка

Senior pomidor developer
вот кажется что я основы знаю , что делать дальше ?
это в зависимости от того в какого Бога веришь

а какая связь между if и header?
 

BRat

o_0
if (форма не валидирована, или не отослана)
показываем форму
else
показываем приветствие
 

Фанат

oncle terrible
Команда форума
if (гетом пришел параметр, что форма прошла нормально) поблагодарить

а написать - напиши гостевую книгу.
хороших гостевых в инете нет
 

Koc9k

Новичок
Автор оригинала: Фанат
if (гетом пришел параметр, что форма прошла нормально) поблагодарить

а написать - напиши гостевую книгу.
хороших гостевых в инете нет
Так откуда этот get параметр придёт ? Допустим action в форме $_SERVER['PHP_SELF'] или даже $_SERVER['PHP_SELF']?val=ok ,
разницы никакой не будет .
При проверке данных будет эта страница , и при удачном заполнении - тоже эта же страница .
В общем не буду долбаться , приступил к изучению ajax .
А насчёт гостевой книги , что вы подразумеваете под 'хорошей' ?
Всё что там надо , это должна быть навигация , редактирование постов и защита от спама :/
 

Nest

Новичок
Koc9k извени, но за Ajax тебе еще рано браться, хоть с основами разберись
 

Koc9k

Новичок
:/ Если на то пошло , обьясни мне , тупому ,
в 3 строчках смысл , так чтоб можно был понять .
Очень прошу ..
 

Фанат

oncle terrible
Команда форума
Так откуда этот get параметр придёт ?
локейшеном.
приступил к изучению ajax .
ха ха ха.
это самая смешная шутка года.
ну пиши-пиши, болезный.
только сюда с вопроасми не обращайся.
ибо тебе ответят то, что написал Nest
А насчёт гостевой книги , что вы подразумеваете под 'хорошей' ?
Всё что там надо , это должна быть навигация , редактирование постов и защита от спама :/
вот и напиши.
если получится хорошая, то все её будут юзать и говорить тебе спасибо
а если плохая, то приждется переделывать, и так до тех пор, пока не станет хорошей. вот так и научишься писать на пехапе.

гы.
но с аяксом ты насмешил, да.
представляю себе второгодника, который говорит - да ну, не дается мне эта таблица умножения! займусь лучше дифурами!
 

Nest

Новичок
Koc9k в чем конкретно проблема? тебе уже объяснили, если тебе это не понятно, то мой тебе совет, пойди купи книжку хорошую по PHP и по разбирайся, если что-то не получиться, тогда пиши в форум, тока предварительно поюзай поиск, потому как ответов на простые вопросы сдесь море
 

Фанат

oncle terrible
Команда форума
Nest
в твоем совете отсутствует очень важный элемент. собственно работа по написанию скрипта.

а именно на этом надо внимание заострять, а не на книжках с поисками.
ну найдет он в поиске готовый скрипт. и сколько у него опыта или знаний прибавится?

поиско можно найти решение конкретной проблемы.
научиться программировать поиском нельзя
 

Koc9k

Новичок
Хва стебаться надо мной =))
Я только 2 месяца назад начал изучать .
Ладно , допустим максимально урезанный пример :
PHP:
 <form method='post'>
   <input type='text' name='login'>
   <input type='text' name='pass'>
   <input type='submit' name='submit' value='submit'>
 </form>
<?php
 if(isset($_POST['submit']))
     {
       checkerrors(); // проверяет через прег матч и создает массив $errors , если что-то не так 
    if(!empty($errors))
       {
        showerrors();
         }
      else
         { тд тп echo 'nice one'; }
    }
 ?>
Как вывести nice one на новой странице ? =))
Nest у меня куча книг , но ..
в одной это делается при помощи phpBookmark , в другой quickform , в остальных такого вообще нет
Фанат 'локейшен' , если это не header('location') , то впервый раз слышу .. А я просил без заголовков ...
И насчёт ajax'a я имел ввиду изучить как там происходит валидация форм ) Ибо в книге есть такая тема

-~{}~ 17.05.07 18:11:

П.с. ап стену биться не предл0гать ))
 

Фанат

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

Koc9k

Новичок
Автор оригинала: Фанат
во-первых, непонятно, нафига ошибки выводятся "там же, где форма", если все равно форма остается пустой.
Что значит форма остается пустой ? В смысле после сабмита я не запоминаю те value , что ввёл пользователь ? :/
Если так , то это просто урезано . И какая разница , он ввёл данные , нажал сабмит , данные принялись , проверились , если что-то не так , выводится сообщение что что-то не так , и он заново заполняет форму чтоб таких ошибок не было, если всё нормально было введено , то выводится что всё гуд
Автор оригинала: Фанат
во-вторых, обе эти книжки эти выкини на помойку. ничему хорошему они тебя не научат
Нет , книги на самом деле гуд , не от Васи Пупкина (c) , а перевод от америкосов .
Автор оригинала: Фанат
в-третьих, твого мнения никто не спрашивал. сказали с заголовками - значит делай с заголовками.
Тогда скажи пжлст, когда создаешь форму в html_quickform , задаёшь ей проверку на значения , и когда нажимаешь сабмит - происходит редирект ? Не думаю П.с javascript'a нет . Если я именно в этом ошибаюсь , скажи , тогда у меня отпадут все вопросы сразу .
Просто взять 'локейшен' , придётся использовать ob_start() , а это ( хотя может и ошибаюсь ) тоже не есть хорошо .
Автор оригинала: Фанат
а то мало ли, чего ты не захочешь. возжелаешь делать без оператора IF, и все должны начать бегать искать тебе решение?
Нет , я этого не прошу . Именно поэтому я хочу знать как делаются тогда такая обработка , если мне бы сказали что без header('location: '); такое было бы невозможно , тогда я всё бы понял .
 

dark-demon

d(^-^)b
Koc9k, данные нужно обрабатывать до начала вывода контента. соответственно, если форма обработана - редиректишь куда надо. нет - выводишь форму с ошибкой.
 

Фанат

oncle terrible
Команда форума
Если так , то это просто урезано
поверю на слово
И какая разница , он ввёл данные , нажал сабмит , данные принялись , проверились , если что-то не так , выводится сообщение
большая разница.
на той же самой странице вывдить сообщение об ошибке имеет смысл ТОЛЬКО если ты выводишь запоненную форму.
во всех остальных слуячаях выводить можно где угодно.
Тогда скажи пжлст, когда создаешь форму в html_quickform
не скажу.
Никогда не видел смысла в html_quickform.
но если она не дура, то делает локейшеном.
если мне бы сказали что без header('location: '); такое было бы невозможно , тогда я всё бы понял .
Здесь не детский сад. И уговаривать капризную дитятю, которая не хочет манную кашу, и желает, чтобы ей доказали, что без манной каши он умрет - никто не будет.
Не нравится - не ешь. Встал из-за стола, пошел на все четыре стороны.

чтобы локейшен использовать, надо не об старт делать, а программы нормально писать.
с какой радости тебе об_старт понадоибился?
 

Koc9k

Новичок
Автор оригинала: dark-demon
Koc9k, данные нужно обрабатывать до начала вывода контента. соответственно, если форма оработана - редиректишь куда надо. нет - выводишь форм с ошибкой.
Отсюда вопрос - КАК ОБРАБОТАТЬ ФОРМУ ДО ВЫВОДА КОНТЕНТА? )
ведь чтоб её обработать , полюбому надо нажать сабмит .. И контент полюбому выводится , так как на странице форма ..
Если сделать форму на другой странице , а там где обработка - выводить сообщения о ошибке , то придётся жать кнопку назад в браузере , чтоб поправить , а мне этого не надо )
 

Фанат

oncle terrible
Команда форума
сколько раз запускается твой скрипт, когда пользователь хочет отправить что-то на сйт через форму?
 

Koc9k

Новичок
Автор оригинала: Фанат
поверю на слово
Привести кусок кода ?
Автор оригинала: Фанат
чтобы локейшен использовать, надо не об старт делать, а программы нормально писать.
с какой радости тебе об_старт понадоибился?
Понадобился потому , что на странице ЕСТЬ ФОРМА . Если есть форма - значит вывод данных на странице уже есть .
Значит если написать header('Location: ') , то будет писать что заголовки уже отправлены
 
Сверху