Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Walidacja przed wysłaniem danych do php
Asmox
post 8.03.2009, 14:54:27
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Witam. Zastanawiam się jak zrobić, aby JavaScript w prosty sposób sprawdził dane z formularza (czy w roku email user wstawił znak @ i tak dalej) i dopuścił dane do skryptu php wtedy i tylko wtedy, jeśli dane przejdą walidację pomyślnie. Czy javascript posiada funkcję zatrzymania wysyłania danych z formularza?


--------------------
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
kamil4u
post 8.03.2009, 15:08:14
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Poczytaj o wyrażeniach regularnych lub znajdź gotowca na np. e-mail, później piszesz funkcję typu:
Kod
<script>
function sprawdz()
{
var errors = '';
if(jakiespole != costam) errors+="BLABLA1 \n";
if(jakiespole2 != costam2) errors+="BLABLA2 \n";
//itd
if(errors == '') {return true;} else { alert(errors); return false;}
}
</script>
----------------------
<form action="itd" onSubmit="return sprawdz();">


Przypominam, że w skrypcie PHP też musisz sprawdzić poprawność danych na wypadek gdyby ktoś nie miał włączonego JS smile.gif


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 8.03.2009, 21:12:49
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ja bym proponował AJAX'a. z uwzględnieniem jQuery. naprawdę ciekawe rzeczy można z tym wyczyniać.


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 8.03.2009, 21:22:59
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
ja bym proponował AJAX'a. z uwzględnieniem jQuery. naprawdę ciekawe rzeczy można z tym wyczyniać.

@piotrooo89: a co Twoja wypowiedź wnosi do tematu? Gdybyś dał chociaż przykład zastosowania tu tych technologi(a raczej skryptów) lub jakiś algorytm to IMO miałoby to sens. To tak jakbym napisał: "ale przecież można użyć flasha lub Javy (nie JS), aby to zrobić , bo można 'tworzyć' ciekawe efekty" - i co nie miałbym racji? Tylko po co?


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 8.03.2009, 21:33:37
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




poszerzam zagadnienie.

Cytat
Gdybyś dał chociaż przykład zastosowania tu tych technologi


i co jeszcze pewnie będę musiał to odpowiednio skonfigurować aby działało? niech poszuka w googlach. rzuciłem temat ponieważ być może on nie wie że istnieje możliwość validacji formularza.

btw. Twój przykład jest troszkę toporny i mało uniwersalny.


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 8.03.2009, 21:53:07
Post #6





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
i co jeszcze pewnie będę musiał to odpowiednio skonfigurować aby działało? niech poszuka w googlach. rzuciłem temat ponieważ

Genialne! Ja zaproponowałem Javą - i co Twoim zdaniem to jest rozszerzenie tematu, czy zupełnie nie potrzebna informacja? Poza tym co trzeba konfigurować? I w końcu co ma poszukać w Google? Co to jest jQuery? Jak Twoim zdaniem ma wykorzystać tą wiedzę(skrypt), skoro nie wie co ma z tym zrobić? Napisz może jaki jest Twoje rozwiązanie problemu ~Asmox -a.
Cytat
być może on nie wie że istnieje możliwość validacji formularza.

No racja nie wie. Tylko nie wiem dlaczego w temacie pyta o to jak to zrobić, dziwne co?

Cytat
btw. Twój przykład jest troszkę toporny i mało uniwersalny
Chodzi Ci o:
Kod
if(jakiespole != costam) errors+="BLABLA1 \n";
to oczywiście if-a trzeba odpowiednio zmodyfikować np. żeby sprawdzał poprawność adresu e-mail (jeśli o to Ci chodzi). Jeśli nie oto to rozwiń co masz na myśli - mało uniwersalny? Podaj chociaż jedną wadę mojego rozwiązania w porównaniu z Twoim(choć nadal nie wiem jakie to rozwiązanie)

Pozdrawiam

PS. Nie miej mi za złe takiej krytyki Twoich postów(z tego tematu), ale po prostu nie mogę zrozumieć po co to napisałeś. Żeby mieć więcej postów/pomógł? Nie wierze - i tak masz ich już dużo, w takim razie po co? I nie mam Ci za złe, że udzielasz się w temacie - to dobrze, tylko jakbyś podał inne rozwiązanie problemu, a nie tylko technologię do realizacji tego problemu winksmiley.jpg

Ten post edytował kamil4u 8.03.2009, 21:56:59


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 8.03.2009, 22:11:08
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




czy dostrzegasz subtelną różnice między Java a JS/AJAX? jeśli nie nie czytaj dalej. jeśli tak to rozwiązanie AJAX'em IHMO jest elegantsze i można z nim wyczyniać czego dusza zapragnie.

Cytat
No racja nie wie. Tylko nie wiem dlaczego w temacie pyta o to jak to zrobić, dziwne co?


zapytał wyraźnie o js, ja również js utożsamiam AJAX'a który przewyższa ją możliwościami.

Cytat
Podaj chociaż jedną wadę mojego rozwiązania w porównaniu z Twoim(choć nadal nie wiem po co)


zrób sobie 100 pól w formularzu i przevaliduj wszystkie. albo chociaż 60%. good luck and have fun.

Cytat
PS. Nie miej mi za złe takiej krytyki Twoich postów(z tego tematu), ale po prostu nie mogę zrozumieć po co to napisałeś. Żeby mieć więcej postów/pomógł? Nie wierze - i tak masz ich już dużo, w takim razie po co?


nie mam za złe, ponieważ prowadzimy dyskusje, a to forum dyskusyjne więc dopóki mnie nie obrażasz, krzyczysz etc jest OK smile.gif.

co do tematu:
http://marcgrabanski.com/pages/code/clean-form-validation
jeden z najprostszych validatorów jQuery, sam z niego korzystam.

a tu moja paczka wraz z przykładem użycia lekko przerobiona:
http://www.sendspace.pl/file/0XAOOgYx/


--------------------
Go to the top of the page
+Quote Post
blooregard
post 8.03.2009, 22:18:40
Post #8


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Pozwolicie, że się wtrącę:
Cytat
zapytał wyraźnie o js, ja również js utożsamiam AJAX'a który przewyższa ją możliwościami.

A niby czym jest Ajax, jeśli nie JavaScriptem ? Ajax to ogólne określenie technologii, która pozwala w taki czy inny sposób na realizację żądania przeglądarki BEZ przeładowywania strony, czy to za pomocą iFrame, czy też obiektu HttpXMLRequest. Ale nadal jest to tylko JavaScript.
Nie myl pojęć - AJAX to nie jest jakiś język programowania, przewyższający JS, jak to ująłeś.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
piotrooo89
post 8.03.2009, 22:20:47
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




dlatego napisałem że utożsamiam JS z AJAX'em.


--------------------
Go to the top of the page
+Quote Post
blooregard
post 8.03.2009, 22:24:21
Post #10


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
ja również js utożsamiam AJAX'a który przewyższa ją możliwościami.

No to kogo przewyższa? Javę? Bo tak trochę niezrozumiale to ująłeś smile.gif


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kamil4u
post 8.03.2009, 22:25:25
Post #11





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
jeśli tak to rozwiązanie AJAX'em IHMO jest elegantsze i można z nim wyczyniać czego dusza zapragnie.

Chyba mylisz pojęcia: Ajax != jQuery smile.gif Wiki:
Cytat
AJAX (ang. Asynchronous JavaScript and XML, Asynchroniczny JavaScript i XML) – technologia tworzenia aplikacji internetowych, w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu


Cytat
zapytał wyraźnie o js, ja również js utożsamiam AJAX'a który przewyższa ją możliwościami.

Źle Cię zrozumiałem albo Ty mnie smile.gif

Cytat
zrób sobie 100 pól w formularzu i przevaliduj wszystkie. albo chociaż 60%. good luck and have fun.

Pętla i po sprawie ( przy założeniu, że validacja różnych pól będzie taka sama smile.gif ) - oczywiście ja nigdy nie sprawdzałem 100 pól a max około 15 i
Cytat
dopóki mnie nie obrażasz, krzyczysz etc

Nie mam w zwyczaju obrażać kogoś dlatego, że się z nim nie zgadzam smile.gif

Cytat
jeden z najprostszych validatorów jQuery, sam z niego korzystam.

Nie korzystam z jQuery, ale mogę Cię zapewnić, że po lekkiej przeróbce mojego kodu mogę dostać taki sam efekt smile.gif

I widząc, że się nie rozumiemy napisze jeszcze raz prośbę do Ciebie: nie pisz jakich technologi można użyć, tylko jak je wykorzystać w danym temacie/problemie i o to mi się "rozchodzi" - gdybyś dał linka w swoim 1 poście nie byłoby całej tej dyskusji - tak sadze smile.gif

Pozdrawiam

Ten post edytował kamil4u 8.03.2009, 22:26:59


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 8.03.2009, 22:26:19
Post #12


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Cytat
No to kogo przewyższa?


no fakt troszke nie zrozumiałe, chodziło mi o to że AJAX przewyższa czystą JS. możliwości przy użyciu AJAX'a są większe aniżeli przy zastosowaniu samej JS.


--------------------
Go to the top of the page
+Quote Post
erix
post 8.03.2009, 22:40:43
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




AJAX, to jest element JavaScript...

Ok, na temat proszę.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Asmox
post 9.03.2009, 21:17:19
Post #14





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


1. Nie kłóćmy się
2. Czy jest w końcu jakiś sposób na zatrzymanie wysyłania danych do skryptu w pisanego w atrybut action ?
3. Czy nie ma ?
4. Oczywiście zamierzam wykorzystać do tego Ajax - formularze bez Ajaxa są do do niczego.


--------------------
Go to the top of the page
+Quote Post
erix
post 9.03.2009, 21:21:02
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Czy jest w końcu jakiś sposób na zatrzymanie wysyłania danych do skryptu w pisanego w atrybut action ?

Przy wywołaniu funkcji w onsubmit dajesz e.preventDefault() lub return false.

Cytat
1. Nie kłóćmy się

Waść prosisz, a sam co robisz? tongue.gif
Cytat
Oczywiście zamierzam wykorzystać do tego Ajax - formularze bez Ajaxa są do do niczego.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piotrooo89
post 9.03.2009, 21:31:59
Post #16


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Cytat
Czy jest w końcu jakiś sposób na zatrzymanie wysyłania danych do skryptu w pisanego w atrybut action ?


dałem Ci gotowy skrypt + przykład użycia czego chcieć więcej?


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 10.03.2009, 21:21:49
Post #17





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Albo mi się wydaj albo nadal mylicie pojęcia: Ajax != jQuery. IMO AJAX-a można tu wykorzystać tylko po to, żeby zamiast JS pola zostały sprawdzone przez PHP i dynamicznie przesłać wynik zwrotny do przeglądarki (co IMO jest bez sensu) . Tak więc zwrot typu:
Cytat
formularze bez Ajaxa są do do niczego.
jest bzdurą (chyba, że rzeczywiście chcesz sprawdzać tak jak opisałem to powyżej, a nie tak jak w linku podanym przez ~piotrooo89) - i jak tu się nie kłócić tongue.gif

Cytat
Czy jest w końcu jakiś sposób na zatrzymanie wysyłania danych do skryptu w pisanego w atrybut action ?

Jak byś miał czas (przypuszczam, że go nie masz bo w przeciwnym wypadku zrobiłbyś to) i przeanalizowałbyś w swej łaskawości mój kod(lub podany w linku przez ~piotrooo89) to byś się sam domyślił

Ten post edytował kamil4u 10.03.2009, 21:26:52


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 10.03.2009, 21:28:21
Post #18


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ja oczywiście się nie zgadzam z takim podejściem. jasne że można stworzyć wyczesaną w kosmos walidacje po stronie JS(chodzi mi tu o czyste JS bez używania frameworków). tylko jak dla mnie zrobienie czegoś w jQuery wydaje mi się takie przejrzyste i eleganckie, co rzecz jasna nie znaczy że JS też takie nie może być - nie chce tu uogólniać). ja rzeczywiście trochę namieszałem z tymi wszystkimi pojęciami. za co z góry przepraszam (używałem skrótów myślowych) sciana.gif


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 10.03.2009, 21:39:05
Post #19





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Wbrew pozorom się zgadzasz - napisze jeszcze raz:

Ajax to nie to samo co jQuery - Ajax służy do dynamicznego 'kontaktu' z innymi plikami np. PHP, a jQuery to biblioteka, która ułatwia życia webmasterowi ( chodź ja wolę samemu wiele rzeczy zrobić smile.gif ). Tak więc Ty korzystasz z jQuery (Twój wybór smile.gif - to jak najbardziej prawidłowo) - natomiast używanie Ajax-u IMO w tym wypadku jest bezużyteczne i nie zgadzam się z twierdzeniem:
Cytat
formularze bez Ajaxa są do do niczego.
. Mam nadzieję, że już wszyscy znają różnicę, a autor strony poradził sobie ze swoim 'problemem' smile.gif

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
nexis
post 10.03.2009, 21:46:47
Post #20





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Cytat(kamil4u @ 10.03.2009, 21:21:49 ) *
AJAX-a można tu wykorzystać tylko po to, żeby zamiast JS pola zostały sprawdzone przez PHP i dynamicznie przesłać wynik zwrotny do przeglądarki (co IMO jest bez sensu)

Niby na jakiej podstawie tak twierdzisz? Sprawdzanie w ten sposób (czyli wysyłanie żądania do skryptu PHP i otrzymanie odpowiedzi) jest jednym z najlepszych rozwiązań, a dlaczego? Właśnie dlatego, że przy walidacji formularzy musisz walidować dwukrotnie (pierwszy raz w po stronie przeglądarki, drugi raz po stronie serwera). Po co więc dwa razy pisać odpowiednie walidatory? Lepiej wykorzystać ten napisany po stronie serwera po stronie przeglądarki.

Jaki są dodatkowe plusy? O ile sprawdzanie składni adresu e-mail jest równie proste w JS jak PHP, to np. sprawdzenie rekordu MX na serwerze DNS w JS już chyba nie wygląda tak pięknie. smile.gif


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:26