php validacija forme

1

php validacija forme

offline
  • DR  Male
  • Legendarni građanin
  • Pridružio: 08 Okt 2004
  • Poruke: 5450
  • Gde živiš: Beograd

potreban kod za validaciju forme koja salje podatke u bazu Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

bravo, kako si to srocio, ni ja ne bi bolje. Very Happy

Elem, postavi podatke o samoj formi, pa cemo da napravimo i validator, ovako mozemo samo da se slikamo(a i ti sa nama) Wink



offline
  • DR  Male
  • Legendarni građanin
  • Pridružio: 08 Okt 2004
  • Poruke: 5450
  • Gde živiš: Beograd

ahahahaha, mislio sam neka generalna pravila Mr. Green
<?php    $dbhost = 'localhost';    $dbuser = 'xxxx';    $dbpass = 'xxxx';    $dbname = 'apoxxx';    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Greska pri konektovanju na bazu');    mysql_select_db($dbname);       ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>upisi</title>    <script type="text/javascript">    function provera() {       if(document.forma.naziv.value.length<3 || document.forma.naziv.value.length>15) {          alert("Niste uneli naziv Vase apoteke ili ste uneli preko 15 karaktera za naziv sto nije dozvoljeno !");          return false;       }       if(document.forma.email.value.length<1) {          alert("Niste uneli e-mail adresu !");          return false;       }       if(document.forma.email.value != "") {          var ispravanmail=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i          var promenljiva = ispravanmail.test(document.forma.email.value)          if (promenljiva == false){             alert("Unesite validnu e-mail adresu !")             return false;          }       }       if(document.forma.adresa.value.length<6) {          alert ("Niste uneli adresu ili ste uneli premalo karaktera !");          return false;       }               if(document.forma.mesto.value.length<3) {          alert ("Niste uneli mesto !");          return false;       }       if(document.forma.telefon.value.length<6) {          alert ("Niste uneli telefon ili ste uneli premalo karaktera !");          return false;       }                      return true;    } </script> </head> <body> <?    //upis u bazu    if ( isset($_POST['potvrdi']) ) {       $drzava = trim($_POST['drzava']);       $naziv = trim($_POST['naziv']);       $adresa = trim($_POST['adresa']);       $mesto = trim($_POST['mesto']);       $telefon = trim($_POST['telefon']);       $fax = trim($_POST['fax']);       $email = trim($_POST['email']);       $upis = "insert into registar (Drzava, Naziv, Adresa, Mesto, Telefon, Fax, Email) values ('$drzava', '$naziv', '$adresa', '$mesto', '$telefon', '$fax', '$email')";       if( mysql_query($upis) ) {          echo("upisano");       }       else {          echo("greska u upisu");       }    } ?>  <p align="center"><font size="5">xxx</font></p> <form method="post" name="forma" action="" onSubmit="return provera();"> <table align="center" with="80%" cellspacing="15" cellpading="5" border="0" bgcolor="lightblue">              <tr>                <td align="center">Drzava &nbsp                   <select name="drzava">                      <option value="Srbija">Srbija</option>                      <option value="Crna Gora">Crna Gora</option>                      <option value="Bosna i Hercegovina-Republika Srpska">Bosna i Hercegovina-Republika Srpska</option>                      <option value="Bosna i Hercegovina-Federacija">Bosna i Hercegovina-Federacija</option>                      <option value="Makedonija">Makedonija</option>                                         </select> <font color="red">*</font></td>             <tr>                <td align="center">Naziv &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp  <input type="text" name="naziv"><font color="red">*</font></td>             </tr>             <tr>                <td align="center">Adresa &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp  <input type="text" name="adresa"><font color="red">*</font></td>             </tr>                         <tr>                <td align="center">Mesto &nbsp&nbsp <input type="text" name="mesto"><font color="red">*</font></td>             </tr>                         <tr>                <td align="center">Telefon &nbsp&nbsp&nbsp&nbsp&nbsp <input type="text" name="telefon"><font color="red">*</font></td>             </tr>                         <tr>                <td align="center">Fax &nbsp&nbsp&nbsp&nbsp&nbsp <input type="text" name="fax"></td>             </tr>          <tr>                <td align="center">Email&nbsp&nbsp&nbsp&nbsp&nbsp <input type="text" name="email"><font color="red">*</font></td>             </tr>          <tr>       <td colspan="2"  align="center"><input type="submit" name="potvrdi" value="Posalji"></td>    </tr> </table> </form> </body> </html>

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

u sustini nemas neko pravilo, proveris samo da li su sva polja popunjena
if ( isset($_POST['potvrdi']) && isset($_POST['drzava']) && isset($_POST['naziv']) (i tako za sve ostale) ) {
$drzava = trim($_POST['drzava']);
$naziv = trim($_POST['naziv']);
$adresa = trim($_POST['adresa']);

offline
  • DR  Male
  • Legendarni građanin
  • Pridružio: 08 Okt 2004
  • Poruke: 5450
  • Gde živiš: Beograd

ne, ne, bilo bi dobro da moze da se ogranici da za odredjena polja mogu samo brojevi da se pisu a za druga slova ili je za to dovoljna kontrola kroz js?

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

Sa JS dobijaš i gubiš.
Sa JS proveravaš obrazac bez da pošalješ podtake, odnosno sve se izvršava u browsere. Korisnik uveK može isključiti JS i tu ti nastaje problem, a ako neko hoće da ti napravi problem može ti poslati podatke sa svog obrsca.
Tako da javascript nije najbolje rešenje, ali je često sasvim dovoljno.

Najbolje je da sa php prmiš podatke, proveriš ih i ako su ispravni upišeš u bazu, a u suprotnom ispišeš poruku o grešci i korisnika vratiš na početak.

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

pa u glavnom je dovoljna, ali mozes i preko php-a, ali moras da znas regularne izraze(mislim da isto vazi i za js). Ti reci sta za koja polja ti treba tacno, i videcu da ti ja to odradim.

offline
  • DR  Male
  • Legendarni građanin
  • Pridružio: 08 Okt 2004
  • Poruke: 5450
  • Gde živiš: Beograd

e ko ti je kriv sad kad si ponudio Smile
znaci trebaju mi ogranicenja kao i js-u gore
naziv-samo slova do odredjene duzine
adresa kombinacija slova, brojeva i .
mesto samo slova
telefon samo brojevi
fax samo brojevi
email svi karakteri

takodje moze li se spreciti da korisnik vise puta posalje isto popunjen obrazac?

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

E, to već ne može preko JS, već treba odraditi preko php-a.
Pre upisa u bazu treba proveriti da li već postoji red sa tim podacima, ako postoji onda se podaci ne upisuju već se ispisuje poruka o grešci.

offline
  • DR  Male
  • Legendarni građanin
  • Pridružio: 08 Okt 2004
  • Poruke: 5450
  • Gde živiš: Beograd

aha, znam.
i postoji li nacin da se npr za polje godine ogranici mogucnost izbora od npr 1950.god pa do 2006.??

Ko je trenutno na forumu
 

Ukupno su 838 korisnika na forumu :: 40 registrovanih, 8 sakrivenih i 790 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, A.R.Chafee.Jr., amaterSRB, Belac91, bojank, BSD, cikadeda, Cirkon, darkangel, draggan, dragonserbia, drgnk, DucicM, Dukelander, dukikan, dzoni19, Filip Marinković, Georgius, hatman, HrcAk47, Koca Popovic, komkom, madza, mercedesamg, milekNS, milos.cbr, nikoladim, Panonsky, Panter, rovac, sakota79, Singidunumac, Smiljke, Srki98, Toni, Underwood, VaRvArI 85, vathra, vlvl, yufighter