Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 5.148 pregleda

Najnovija ↓

PHP i Javascript validacija forme, redosled 11.05.2009. u 18:45 · pre 212 meseci #1
Pozdrav svima.

Napravio sam php skriptu za validaciju formi, i s njom je sve u redu. Takodje imam i javascript validaciju formi, i s njom je takodje sve u redu.
Sad imam problem sto ne umijem da postavim redosled: ukoliko korisnik u formu unese neodgovarajuci podatak, treba da se aktivira javascript validacija. PHP validacija mi treba samo ako korisnik u svom pretrazivacu nema ukljucen javascript. Kako ovo izvesti?

Izvinjavam se ukoliko tema vec postoji, ja je nisam nasao.

Hvala unaprijed.
Re: PHP i Javascript validacija forme, redosled 11.05.2009. u 19:17 · pre 212 meseci #2
Nemoj da se oslanjaš samo na validaciju sa strane klijenta, jer postoje dosta načina da se ona "zaobiđe". PHP, i uopšte, server-side validaciju nikako ne trebaš da preskačeš.

JavaScript validaciju možeš da pišeš čisto da ne bi svaki put morao ponovo da učitavaš stranu nakon submit-ovanja forme. Npr. korisnik ostavi neko polje nepopunjeno, i ti ga onda JavaScript-om samo obavestiš o tome, pre nego što se ti podaci pošalju na server.

Ja inače u potpunosti izbegavam client-side validaciju, a i kad hoću da dodam malo "user-friendly" efekta pri validaciji neke forme, onda to radim koristeći AJAX, što se opet svodi na server-side validaciju.
Re: PHP i Javascript validacija forme, redosled 11.05.2009. u 19:24 · pre 212 meseci #3
OK, hvala na savjetu, ali mi nista konkretno nisi rekao vezano za moj problem. Za sada mi treba ovako kako sam prethodno opisao.

Naravno, zahvalan sam na ovom predlogu.
Re: PHP i Javascript validacija forme, redosled 11.05.2009. u 20:45 · pre 212 meseci #4
Pa što se tiče provere da li je JS uključen ili ne, meni jedino pada napamet ovako nešto:
Code:

<?php
//Ovde ide neki tvoj PHP kod
?>
<html>
   <body>
   <script type="text/javascript">
      window.location = 'http://www.mojsajt.com/javascript_omogucen.html';
   </script>
      Ovde ide neki sadrzaj koji ce se ispisivati za slucaj da JS nije omogucen.
   </body>
</html>

Drugi način:
Code:

<html>
   <head>
      <title>Title</title>

      <noscript>
         <meta http-equiv="refresh" content="0;url=http://www.mojsajt.com/javascript_onemogucen.html"/>
      </noscript>
   </head>

   <body>
       <?php //tvoj PHP kod ?>
   </body>
</html>

Poenta je da imaš dve iste stranice, samo što ćeš jednu od njih korisiti samo u slučaju da je uključen JS, a ovu drugu kad nije uključen. Evo recimo ovaj prvi primer će pokušati da se redirektuje na stranu javascript_omogucen.html, a to će uspeti samo ako je JS omogućen u browser-u. U suprotnom ispisaće se neki drugi sadržaj, odnosno, isti onaj koji imaš na javascript_omogucen.html, samo što će validacija ići PHP-om.

Ne garantujem da će to da proradi iz prve, al čisto da ti dam neku ideju. :)
Re: PHP i Javascript validacija forme, redosled 11.05.2009. u 21:18 · pre 212 meseci #5
btw Sad mi pade napamet još jedna bolja varijanta... :)

U liniji form tag-a možeš da dodaš događaj onsubmit, koji će da poziva tu tvoju f-ju za validaciju u JS-u:
Code:

<form action = "test.php" method = "post" onsubmit = "validacija();">
   //elementi forme
</form>

Naravno, to će da ima smisla ako je ono krajnje dugme za submit-ovanje forme tipa submit, a ne button. Taj događaj onsubmit će se izvršiti samo ako je u browser-u uključen JavaScript. I sad, kad se klikne na dugme za submit-ovanje forme, pre nego što se podaci stvarno pošalju na server, u ovom slučaju, skriptu test.php, izvršiće se JS f-ja validacija(). U slučaju da je JS isključen, taj događaj se neće trigger-ovati, i podaci iz forme će biti poslati PHP-u.

I ovo takođe nikad nisam probao, al' po nekoj logici, trebalo bi da radi... :)
Re: PHP i Javascript validacija forme, redosled 11.05.2009. u 21:36 · pre 212 meseci #6
OK Nikola, pogledacu to malo... Djeluje logicno... Hvala na predlozima.

E, jos nesto: kako da pozovem javascript preko echo-a u php-u? Ukoliko ovo ne uspije, planiram da ostavim samo js validaciju za sada...
Re: PHP i Javascript validacija forme, redosled 11.05.2009. u 22:01 · pre 212 meseci #7
Citat:
Daffa:E, jos nesto: kako da pozovem javascript preko echo-a u php-u?

Code:

echo '<script type = "text/javascript">//JS kod</script>';

Ako si na to mislio...
Re: PHP i Javascript validacija forme, redosled 12.05.2009. u 17:04 · pre 212 meseci #9
Citat:
Nikola Poša: Nemoj da se oslanjaš samo na validaciju sa strane klijenta, jer postoje dosta načina da se ona "zaobiđe". PHP, i uopšte, server-side validaciju nikako ne trebaš da preskačeš.

JavaScript validaciju možeš da pišeš čisto da ne bi svaki put morao ponovo da učitavaš stranu nakon submit-ovanja forme. Npr. korisnik ostavi neko polje nepopunjeno, i ti ga onda JavaScript-om samo obavestiš o tome, pre nego što se ti podaci pošalju na server.

Ja inače u potpunosti izbegavam client-side validaciju, a i kad hoću da dodam malo "user-friendly" efekta pri validaciji neke forme, onda to radim koristeći AJAX, što se opet svodi na server-side validaciju.


@Daffa

Ovo ti je odgovor koji bi trebao da prihvatiš kao nešto što predstavlja realnost.
Sigurnost aplikacije je jedna od najbitnijih stvari na koje treba obratiti paznju u toku razvoja.
Trimovanje, eskejpovanje i osnovni regularni izrazi uvek dobro dodju da ne misliš.

Evo primera zbog čega uvek treba raditi server-side proveru:

http://en.wikipedia.org/wiki/SQL_injection ,
http://en.wikipedia.org/wiki/Cross-site_scripting ,
http://en.wikipedia.org/wiki/Session_hijacking



Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme