Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Rejestracja Na Etapy, Jak?
Matimor
post
Post #1





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Witam
Tworzyłem rejestracje na kilka etapów w osobnych plikach lecz teraz pojawia się taki problem, że można ominąć np. pytania do rejestracji wpisując adres www.adres/step2.php. Moje pytanie polega na tym, jak zrobić aby cała rejestracja odbywała się od kroku 1 do 4 po kolei czyli jak wpisze www.adres/step2.php to przekieruje mnie na step1 a jeżeli wejdę ze step1 na step2 to będzie normalnie. Lub można też zamaskować link, czego nie potrafię.

Proszę o pomoc (IMG:style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Zrób w jednym pliku i na sesjach najlepiej.
Go to the top of the page
+Quote Post
bikerszymek
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 23.08.2008

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


Moze ktos ma inny pomysl ale ja bym ustalil jakas zmienna sesyjna po kazdym z etapow i bez niej nie mozna by bylo przystapic do kolejnego (automatycznie przekierowanie do wymaganego). pzdr

edit: Zostalem uprzedzony

Ten post edytował bikerszymek 22.08.2009, 21:36:45
Go to the top of the page
+Quote Post
f1xer
post
Post #4





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


  1. //zawartość pliku step1.php
  2. <form action="step2.php" method="post">
  3. //tutaj dajesz formularz
  4. <input type="hidden" name="next_step" value="2" />
  5. </form>


  1. //zawartość pliku step2.php
  2. if ($_POST['next_step']!=2){
  3. echo ('Próbujesz mnie oszukać');
  4. }
  5. ?>
  6. <form action="step3.php" method="post">
  7. //tutaj dajesz formularz
  8. <input type="hidden" name="next_step" value="3" />
  9. </form>
  10.  


tak na szybko reszta analogicznie czyli w step3.php next_step ustawiasz na 4

Ten post edytował f1xer 22.08.2009, 21:39:32
Go to the top of the page
+Quote Post
Solimo
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 11.08.2007

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


Aby nic nie przepisywać chyba najszybciej przekazywać w ukrytych polach form'a dane z poprzednich kroków. Jeżeli step2 nie otrzyma odpowiednich danych w _POST to przekieruje do step1. Nie zapomnij po ostatnim kroku/etapie przewalidować wszystkich danych, ponieważ moża podmienić _POST np. za pomocą JavaScript.

Ten post edytował Solimo 22.08.2009, 21:41:43
Go to the top of the page
+Quote Post
Matimor
post
Post #6





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Możecie mi pokazać jak to mniej więcej ma wyglądać, nie wiem za dużo na temat sesji. Ale mi się wydaję, że ten pomysł na zmienne będzie lepszy, ponieważ budowa w jednym pliku mi nie odpowiada.
Go to the top of the page
+Quote Post
Solimo
post
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 11.08.2007

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


To zrób ze zmiennymi skoro tak Ci bardziej pasuje. Pamietaj o walidacji po ostatnim kroku.
Go to the top of the page
+Quote Post
f1xer
post
Post #8





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


a i jeszcze wypadałoby abyś przy każdym kroku badał $_SERVER['HTTP_REFERER']; i badał czy user dostał się tutaj z poprzedniego kroku
Go to the top of the page
+Quote Post
Matimor
post
Post #9





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Cytat(f1xer @ 22.08.2009, 22:38:37 ) *
  1. //zawartość pliku step1.php
  2. <form action="step2.php" method="post">
  3. //tutaj dajesz formularz
  4. <input type="hidden" name="next_step" value="2" />
  5. </form>


  1. //zawartość pliku step2.php
  2. if ($_POST['next_step']!=2){
  3. echo ('Próbujesz mnie oszukać');
  4. }
  5. ?>
  6. <form action="step3.php" method="post">
  7. //tutaj dajesz formularz
  8. <input type="hidden" name="next_step" value="3" />
  9. </form>
  10.  


tak na szybko reszta analogicznie czyli w step3.php next_step ustawiasz na 4



To co mi podałeś to ukrywa sumbity i nie można w ogóle przejść na kolejny etap.
Go to the top of the page
+Quote Post
f1xer
post
Post #10





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


w jaki sposób może Ci to ukryć submit? podaj swój kod.
Go to the top of the page
+Quote Post
Fifi209
post
Post #11





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Jak na moje oko tam w ogóle nie ma submitu...

Zrób na sesjach, bo pomysł z ukrytym polem jest dobry na laików. Wystarczy firebug i zmienię wartość tego pola. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Matimor
post
Post #12





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


  1. echo' <form action="step2.php">';
  2. require "regulamin.txt"; /* Regulamin z Pliku */
  3. echo"<center><input type='hidden' name='next_step' value='$lang[akceptuj]'/></center>";


Jak dam za hidden submit to jest normalnie.
Go to the top of the page
+Quote Post
Quantum
post
Post #13





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


Cytat(f1xer)
a i jeszcze wypadałoby abyś przy każdym kroku badał $_SERVER['HTTP_REFERER']; i badał czy user dostał się tutaj z poprzedniego kroku


a słyszał o CURLOPT_REFERER ? co do hidden, CURLOPT_POSTFIELDS.. sesje.. tylko i wyłącznie
Go to the top of the page
+Quote Post
Matimor
post
Post #14





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Jak ma to wyglądać z sesjami, nie orientuję się za bardzo w tym dziale.

PS: Czytałem gdzieś kiedyś na kurshtml.boo.pl jak robi się etapy ale nie mogę teraz tego znaleźć.

Ten post edytował Matimor 23.08.2009, 09:37:41
Go to the top of the page
+Quote Post
Quantum
post
Post #15





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


http://pl.php.net/manual/pl/book.session.php

przy przejściu do następnego etapu dajesz np $_SESSION['etap']++;

Ten post edytował sniffer32 23.08.2009, 09:38:12
Go to the top of the page
+Quote Post
Matimor
post
Post #16





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


  1. echo' <form action="step2.php">';
  2. require "regulamin.txt";
  3. echo"<center><input type='submit' name='next_step' value='$lang[akceptuj]'/></center>";
  4. $_SESSION['etap']++;


Formularz 2
  1. if(empty($_SESSION["etap"]))
  2. {
  3. echo '<meta http-equiv="Refresh" content="0; URL=step1.php"; />';
  4. }
  5. echo' <form action="step3.php">';
  6. require "regulamin.txt";
  7. echo"<center><input type='submit' name='next_step' value='$lang[akceptuj]'/></center>";
  8. $_SESSION['etap']++;



Namieszałem raczej (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
Quantum
post
Post #17





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


ja bym to zrobił na switch, dużo prościej (IMG:style_emoticons/default/winksmiley.jpg)

  1. <?
  2.  
  3. switch($_SESSION['etap'])
  4. {
  5.  
  6. case 1:
  7.  
  8. //instrukcje w etapie 1
  9.  
  10. if(poprawnie_wypelniony) $_SESSION['etap']++;
  11.  
  12. break;
  13.  
  14. case 2:
  15.  
  16. //instrukcje w etapie 2
  17.  
  18. if(poprawnie_wypelniony) $_SESSION['etap']++;
  19.  
  20. break;
  21.  
  22. default:
  23.  
  24. //instrukcje na start
  25.  
  26. if(poprawnie_wypelniony) $_SESSION['etap']++;
  27.  
  28. break;
  29. }
  30. ?>


Ten post edytował sniffer32 23.08.2009, 09:58:54
Go to the top of the page
+Quote Post
Matimor
post
Post #18





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Tam gdzie instrukcja dodać treść formularza?

A nie lepiej by było zrobić całą rejestracje na action w 1 pliku ? (IMG:style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
Quantum
post
Post #19





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


mówiąc instrukcje miałem na myśli i formularz i kod, który sprawdza jego poprawność jeśli jest poprawny przechodzi do następnego etapu, wszystko byłoby wtedy w jednym pliku, a action zostaw puste lub wogóle nie dodawaj go do <form>..ale nie jestem zwolennikiem mieszania logiki z widokiem, MVC FTW.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 20:43