Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]alert + zniakające strona
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam.
Mam taki mały skrypcik obsługujący plik formularza html (poniżej część kodu):
  1. $PESEL=$_POST['pesel'];
  2. $x= ($PESEL[0]+$PESEL[1]*3+$PESEL[2]*7+$PESEL[3]*9+$PESEL[4]+$PESEL[5]*3+$PESEL[6]*7+$PESEL[7]*9
  3. +$PESEL[8]+$PESEL[9]*3+$PESEL[10]);
  4. if($x%10!=0){
  5. echo "<script>alert('Numer PESEL jest nieprawidłowy.');</script>";
  6. echo "<script>window.history.go(-1)</script>";
  7. exit();
  8. //echo("<script>window.location.href = 'pacjent.html';</script>");
  9. }

Problem polega na tym, że jak PESEL ma nieprawidłowy format to owszem pokazuje się komunikat, ale znika strona. Kiedy zaakceptuje komunikat to formularz (co z niego pochodzą dane) pokazuje się ponownie z wypełnionymi wcześniej danymi.
Czy da się zrobić, żeby strona z formularzem html w ogóle nie znikała?

Ten post edytował jacusek 20.11.2010, 17:44:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Ghost_78
post
Post #2





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


da sie - sprawdz prawidlowosc pesel przez JS albo AJAX'a


--------------------
Always look on the bright side of life ;-)
Go to the top of the page
+Quote Post
jacusek
post
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


javascript znam raczej słabo, stąd było moje pytanie. Ewentualnie mógłbym to zrobić w jednym pliku.
Go to the top of the page
+Quote Post
Ghost_78
post
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


jezeli nie zrobisz tego na JS to raczej nie uda sie bez przeladowania


--------------------
Always look on the bright side of life ;-)
Go to the top of the page
+Quote Post
jacusek
post
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


no właśnie już zauważyłem smile.gif. Ale w sumie na razie to tylko ozdobnik mało istotny.
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Nie lepiej po prostu wyświetlić błąd nad formularzem?
Nieprawidłowy = wyświetl error (błąd w formie alertu JS jest kiepskim wyjściem) + formularz.
Prawidłowy = wykonaj odpowiednią akcje.


--------------------
Go to the top of the page
+Quote Post
maviozo
post
Post #7





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


Pamiętaj, że nawet jeśli zrobisz sprawdzenie danych w JS przed wysłaniem formularza i które może przerwać wysyłanie oraz wyświetlić stosowny komunikat, nadal powinieneś sprawdzić poprawność danych po stronie serwera. JS można wyłączyć, lub obejść bez żadnego problemu. Poza tym osobiście nie przepadam za rozwiązaniem history.go(-1).
Go to the top of the page
+Quote Post
markonix
post
Post #8





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Ee... maviozo...

To, że wyświetla błąd w JS to nie znaczy, że weryfikacja także przebiegła po stronie JS..
Zresztą zobacz pierwszy post..


--------------------
Go to the top of the page
+Quote Post
konrados
post
Post #9





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


@jacusek

Standardowo to wygląda tak:
jedna strona typu formularz.php w której robisz i formularz i wprowadzenie danych do bazy danych.
na początku sprawdzasz czy są jakieś dane w post/get
są? W takim razie sprawdzasz czy ok, jeśli tak to wyświetlasz komunikat "OK" i na tym kończysz, jeśli coś nie tak, lub nie ma żadnych danych w post/get wtedy idziesz dalej, czyli...:
wyświetlasz formularz.

A Ty zrobiłeś exit() i jakieś history back.

Do tego co napisałem, możesz (ewentualnie) dołożyć sprawdzanie poprawności danych przy onsubmit.
Go to the top of the page
+Quote Post
maviozo
post
Post #10





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


@markonix

Rozwiązanie z pierwszego postu jest ułomne. Mój post to tylko taka przypominajka, gdyby autor porzucił swoje rozwiązanie i zmienił sposób na przerywanie wysyłania formularza jeszcze na czystym formularzu. Niektórzy mogą o tym zapomnieć, po radości z działania JS winksmiley.jpg
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 09:32