Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Rejestracja w kilku krokach
falcone
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.06.2009

Ostrzeżenie: (0%)
-----


(IMG:http://img193.imageshack.us/img193/1373/rejj.png)

A więc, mam pewien problem ze swoim skryptem rejestracji nowych użytkowników serwisu. Proces tworzenia nowego user'a jest taki jak na powyższym rysunku, tzn. składa się z trzech kroków, z których każdy jest osobnym plikiem PHP. Między kolejnymi etapami dane już podane są przesyłane metodą POST. Aby nie 'stracić' danych wprowadzonych w pierwszym kroku gdy dochodzimy do ostatniego, w pliku 'krok2.php' dane z tablicy $_POST wrzucam do ukrytych (atrybut hidden) znaczników <INPUT> jako ich wartość poniższą metodą:

  1. <INPUT (...) VALUE=" <?php echo $_POST['zmienna_z_1_kroku']; ?> ">


Wszystko niby dobrze, ale mam z tym skryptem jeden problem i jedną wątpliwość na dokładkę. Po pierwsze, jeśli ktoś specjalnie bądź przez nieuwagę odświeży którąś ze stron to wszystko co do tej pory było w tablicy $_POST jak wiadomo 'gine'. Muszę taką okoliczność wyifować, delikwenta przerzucić do pierwszego kroku i wyświetlić informację, że niestety ale ma pecha bo wszystko zaczyna od początku (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Druga rzecz to wspomniana wątpliwość. Chodzi o to, że nie jestem do końca przekonany do całego modelu rejestracji. Z podziału na etapy/kroki nie mogę zrezygnować z tego powodu, że to co będzie możliwe do wyboru w stepie trzecim jest zależne od tego co niedoszły użytkownik wybrał w stepie pierwszym itd. Moje wątpliwości budzi jednak wybór metody POST do obsługi tego skryptu. Pytanie moje brzmi, jak rozwiązać problem takiej kilkustopniowej rejestracji. Jakby to mogło przyzwoicie/profesjonalnie być rozwiązane? Dodatkowo powiem, że każdy z trzech kroków nie musi znajdować się w osobnym pliku, mogą być zawarte w jednym z zastrzeżeniem, że np. każdy 'etap' będzie osobnym if'em, czyli poniekąd będzie wyraźny podział rejestracji na trzy części. Z góry dziękuję za wszelkie odpowiedzi i komentarze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Proponuję if zamienić na switch:
  1. <?php
  2. if (isset($_POST['krok']) && $_POST['krok'] == "1") {
  3.  
  4. echo "<form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST'>";
  5.  
  6. // tu krok 1
  7.  
  8. echo "<input type='hidden' name='krok' value='2'>\n";
  9. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  10.  
  11. } elseif (isset($_POST['krok']) && $_POST['krok'] == "2") {
  12.  
  13. echo "<form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST'>";
  14.  
  15. // tu krok 2
  16.  
  17. echo "<input type='hidden' name='krok' value='3'>";
  18. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  19.  
  20. } elseif (isset($_POST['krok']) && $_POST['krok'] == "3") {
  21.  
  22. echo "<form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST'>";
  23.  
  24. // tu krok 3
  25.  
  26. echo "<input type='hidden' name='krok' value='4'>\n";  
  27. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  28.  
  29. } else {
  30.  
  31. echo "<form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST'>";
  32.  
  33. // tu strona łądowana jako pierwsza
  34.  
  35. echo "<input type='hidden' name='krok' value='1'>\n";  
  36. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  37.  
  38. }
  39. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 12:51