Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rejestracja w kilku krokach - jak?
Forum PHP.pl > Forum > Przedszkole
ownede
Cześć,

Chciałbym w swoim skrypcie zrobić rejestrację w kilku krokach - regulamin, informacje, quiz, dane. Nie wiem jak to rozwiązać.
Mógłby ktoś podsunąć jakiś pomysł i ew. jakiś przykładowy kod?
Tak, aby użytkownik nie mógł od razu przejść do wprowadzania danych.

Z góry dzięki,
ownede
blooregard
1. Pomiędzy kolejnymi krokami przekazujesz np. zmienne $_POST ze znacznikami, czy poprzednie kroki były juz wypełnione poprawnie, jeśli nie, cofasz usera do pominiętego kroku.
2. To samo, ale z uzyciem zmiennych sesyjnych, co pozwoli na lepszą kontrolę nad całym procesem
bełdzio
i tam i tam smile.gif po kazdym kroku wrzucasz dane do bazy; dodatkowo musisz miec jakas kolumne informujaca ze sa to dane czastkowe; przy ostatnim kroku zamieniasz wartosc kolumny z danymi czastkowymi i juz smile.gif
ownede
Cytat(blooregard @ 15.03.2009, 11:30:07 ) *
1. Pomiędzy kolejnymi krokami przekazujesz np. zmienne $_POST ze znacznikami, czy poprzednie kroki były juz wypełnione poprawnie, jeśli nie, cofasz usera do pominiętego kroku.

Mm.. Czyli uzyc pola typu hidden, w ktorym bedzie podana wartosc kroku, jesli $_POST['krok'] nie bedzie zgodne z $_GET['krok'] skrypt 'umiera' wyswietlajac informacje o blednym kroku, dobrze rozumuje?
Cytat(blooregard @ 15.03.2009, 11:30:07 ) *
2. To samo, ale z uzyciem zmiennych sesyjnych, co pozwoli na lepszą kontrolę nad całym procesem

Ukhm, na sesjach sie zbytnio nie znam, moglbys troche przyblizyc?

Cytat(bełdzio @ 15.03.2009, 12:07:32 ) *
i tam i tam smile.gif po kazdym kroku wrzucasz dane do bazy; dodatkowo musisz miec jakas kolumne informujaca ze sa to dane czastkowe; przy ostatnim kroku zamieniasz wartosc kolumny z danymi czastkowymi i juz smile.gif

Tylko jak zapisywac, jak wpierw jest regulamin, potem informacje, quiz i dopiero dane konta.
Po IP, czy jak?
bełdzio
najprosciej to po pierwszym zapisie wrzuc do sesji ID wstawionego rekordu, a pozniej go tylko updatuj
ownede
A mógłby mi ktoś "zaobrazować" jakby to wyglądało na sesjach?

Coś takiego? :
  1. <?
  2.  
  3. if(empty($_SESSION['krok']) || $_SESSION['krok'] == 1) {
  4.   // krok 1 - regulamin
  5.   $_SESSION['krok'] == $_SESSION['krok'] + 1;
  6. } elseif($_SESSION['krok'] == 2) {
  7.   // informacje
  8.   $_SESSION['krok'] == $_SESSION['krok'] + 1;
  9. } elseif($_SESSION['krok'] == 3) {
  10.   // krok 3 - quiz
  11.   $_SESSION['krok'] == $_SESSION['krok'] + 1;
  12. } elseif($_SESSION['krok'] == 4) {
  13.   // krok 4 - wprowadzanie danych
  14.   $_SESSION['krok'] == $_SESSION['krok'] + 1;
  15. }
  16. ?>
bełdzio
nie :-)
Kod
krok 1
  pokazanie formy 1
krok 2
  zapis przeslanych danych do bazy
  zapisanie w sesji id wstawionego rekordu
  pokazanie formy 2
krok 3
  zapis przeslanych danych do bazy pod ID znajdujace sie w sesji
  pokazanie formy 3

etc
ownede
Cytat(bełdzio @ 15.03.2009, 16:22:15 ) *
nie :-)
Kod
krok 1
  pokazanie formy 1
krok 2
  zapis przeslanych danych do bazy
  zapisanie w sesji id wstawionego rekordu
  pokazanie formy 2
krok 3
  zapis przeslanych danych do bazy pod ID znajdujace sie w sesji
  pokazanie formy 3

etc

Mm, a bez użycia baz danych mój sposób da radę?
bełdzio
generalnie jak nie chcesz uzywac bazy to nie ma potrzeby korzystania z bazy, wez tylko pod uwage 2 rzeczy: 1. i tak bedziesz na koncu procesu zapisywal dane do bazy 2. i tak musisz gdzies przechowywac dane pomiedzy kolejnymi krokami, tak wiec sposob opisany przeze mnie bedzie tu zdecydowanie lepszy
Spawnm
zawsze można te dane zamiast do bazy dać do sesji , ale baza chyba najlepsza, choć trzeba uwzględnić że jak ktoś w połowie zrezygnuje to trzeba po nim posprzątać w bazie smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.