![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Piszę skrypt rejestracji i chcę uzyskać efekt podobny jak ma Allegro. Czyli: 1. Plik "register.php" -> User wypełnia formularz i klika "Dalej >". 2. Następuje przekierowanie (przez formularz) do pliku "register_preview.php". 3. Skrypt ten wyświetla wprowadzone dane i prosi o ich zweryfikowanie. 4. Jeśli user chce poprawić lub uzupełnić dane może kliknąć przycisk "< Popraw dane" i zostanie przekierowany spowrotem do pliku "register.php", z tymże formularz ma zostać wypełniony danymi, które wcześniej wpisał. No i tu pojawia się problem bo formularz nie zostaje wypełniony danymi, w dodatku to, co jest przed (nad) formularzem (logo strony itd.) zostaje powielone, a w pasku adresu widnieje plik "register_preview.php" zamiast "register.php". Gdyby ktoś nie kumał jaki efekt chcę uzyskać - niech wyłączy obsługę JavaScript i potestuje skrypty rejestracji w Allegro. EDIT (Usunąłem moją zabawę z cURL-em): Hmm... Widzę, że w Allegro jest dość dziwnie jedna rzecz zrobiona. Mianowicie znalazłem taki oto fragment kodu odp. za kliknięcie w przycisk "< Popraw dane": Więc jak to się dzieje, że bez użycia JavaScript-u do pliku new_user.php "lecą" dane POST z pliku "new_user_preview.php" ? Ten post edytował Walian 20.08.2009, 19:28:21 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To jak lecą, zależy czego używasz. Ja w Kohance w momencie gdy ktoś walnął babole, czyli nie przechodzą zmienne post walidacji, do zmiennych formularza przypisuję z powrotem zmienne post. Jest to rozwiązane więc w sposób:
a) przypisz do zmiennych formularza wartości domyślne, ![]() b1) jeśli tak, przetwarzaj dane i dalej rób co chcesz, c) dopiero teraz wyświetl formularz. Zwróć uwagę na punkt b1), bo to on jest dla Ciebie ważny... Możesz bowiem w "rób co chcesz" zrobić sobie dowolną rzecz i potem do zmiennych formularza przypisać to co masz w zmiennej post. W efekcie po przetworzeniu zmiennych wyświetlą się one w formularzu ponownie. To się przydaje podczas walidacji ![]()
Plik widoku wyświetli dane domyślne dla nowego usera. Ale jeśli nastąpiła edycja, był błąd walidacji lub powrót z momentu o jakim mówisz, to masz dane podane przez usera w polach lub pobrane z bazy. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dopiero dziś zobaczyłem Twój post
![]() Na razie rozwiązałem to na sesjach, póki co działa dobrze. A z tego co napisałeś, wnioskuję, że wszystko masz w jednym pliku, a ja właśnie nie - i na tym polega cały bajer ![]() Zwróć uwagę jak wygląda plik "preview" w Allegro - nie ma żadnych input-ów więc nie ma możliwości "normalnego" wysłania danych POST spowrotem do pliku z formularzem - stosują inną technikę, możliwe, że sesje. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Może to się wydawać dziwne... Ale nie używam allegro i nie mam oraz nie miałem tam nigdy konta
![]() ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dokładniej mówiąc - mam dwa pliki:
register.php - plik z formularzem oraz register_preview.php - plik wyświetlający dane wprowadzone w pliku register.php. działanie plików: register.php 1.) Przypisanie zmiennym wartości zerowych/pustych. 2.) Sprawdzenie czy sesja zawiera dane - jeśli tak - skrypt je ustawia. 3.) Skrypt przypisuje wartości zmiennych do formularza. Po kliknięciu przycisku lecą dane w $_POST do pliku register_preview.php register_preview.php 1.) Sprawdzenie czy otrzymano dane w $_POST - jeśli tak - nastąpi ich filtracja/weryfikacja. Jeśli brak danych - przekierowanie do register.php. 2.) Jeśli punkt 1 został spełniony to dane zostaną przypisane do $_SESSION. 3.) Dane zostaną wyświetlone z prośbą o ich "wzrokową" weryfikację. Tak to działa. Prawda, że proste? Chyba fajnie co? ![]() Ten post edytował Walian 24.08.2009, 16:31:16 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 16:47 |