Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

e-mail validacija

[es] :: PHP :: e-mail validacija

Strane: 1 2

[ Pregleda: 5244 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

damakii

Član broj: 136925
Poruke: 58
109.175.65.*



Profil

icon e-mail validacija10.09.2011. u 19:51 - pre 153 meseci
Zdravo, imam sljedeci kod za upis podataka u bazu. Interesuje me kako ga modifikovati da upisuje samo e-mail format u bazu, a za sve ostalo da ispise da format nije validan. Evo koda:
---------------------------------
Code:
<?php
include('konekcija.php');
// Get values from form 
$email = $_POST['email'];
$date = date("d.m.Y.");
if (!$email)
  {
     echo 'Molimo upišite Vaš e-mail'; 
     exit;
  }
// Insert data into mysql 
$sql ="INSERT INTO newsletter (email,datum_upisa) VALUES ('$email', '$date')";
$result=mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result) {
echo "Uspješno ste upisali Vaš e-mail.";
}
else {
echo "Greška pri upisu e-maila u bazu.";
}
// close connection
mysql_close();
?>

---------------------------------
Molim pomoc.

[Ovu poruku je menjao flylord dana 10.09.2011. u 21:15 GMT+1]
damaki
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: e-mail validacija11.09.2011. u 05:10 - pre 153 meseci
Code:

function check_email_address($email) {
  // First, we check that there's one @ symbol, 
  // and that the lengths are right.
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters 
    // in one section or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
      return false;
    }
  }
  // Check if domain is IP. If not, 
  // it should be valid domain name
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$",
$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}


Posle samo ubacis ovu funkciju u svoj kod, odradis provere, ukoliko funkcija vraca tacnu vrednost, upisuje se u bazu, ukoliko ne, izbacuje gresku.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
92.36.218.*



Profil

icon Re: e-mail validacija11.09.2011. u 07:11 - pre 153 meseci
Hvala puno na odgovoru, ali mi nesto ne ide uglavljivanje mog koda u ovaj tvoj. Negdje grijesim :(
damaki
 
Odgovor na temu

Milan Kragujevic
Software Engineer

Član broj: 231903
Poruke: 2220
*.dynamic.isp.telekom.rs.

Sajt: https://milankragujevic.c..


+201 Profil

icon Re: e-mail validacija11.09.2011. u 08:33 - pre 153 meseci
Code (php):

<?php
function check_email_address($email) {
  // First, we check that there's one @ symbol,
  // and that the lengths are right.
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters
    // in one section or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"
,
$local_array[$i])) {
      return false;
    }
  }
  // Check if domain is IP. If not,
  // it should be valid domain name
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$"
,
$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}
include('konekcija.php');
// Get values from form
$email = mysql_real_escape_string($_POST['email']);
$date = date("d.m.Y.");
if (!$email)
  {
     echo 'Molimo upišite Vaš e-mail';
     exit;
  }
if(!check_email_address($email)) {
     echo 'E-mail nije validan';
exit;
// Insert data into mysql
$sql ="INSERT INTO newsletter (email,datum_upisa) VALUES ('$email', '$date')";
$result=mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result) {
echo "Uspješno ste upisali Vaš e-mail.";
}
else {
echo "Greška pri upisu e-maila u bazu.";
}
// close connection
mysql_close();
?>
 
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
109.175.80.*



Profil

icon Re: e-mail validacija11.09.2011. u 18:41 - pre 153 meseci
Negdje i ovaj kod ima problem, na submit se nista ne desi.
damaki
 
Odgovor na temu

Milan Kragujevic
Software Engineer

Član broj: 231903
Poruke: 2220
*.dynamic.isp.telekom.rs.

Sajt: https://milankragujevic.c..


+201 Profil

icon Re: e-mail validacija11.09.2011. u 18:49 - pre 153 meseci
Pejstuj kompletnu stranicu ovde
 
Odgovor na temu

Milan Kragujevic
Software Engineer

Član broj: 231903
Poruke: 2220
*.dynamic.isp.telekom.rs.

Sajt: https://milankragujevic.c..


+201 Profil

icon Re: e-mail validacija11.09.2011. u 19:23 - pre 153 meseci
Code (php):


<?php
function check_email_address($email) {
  // First, we check that there's one @ symbol,
  // and that the lengths are right.
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters
    // in one section or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"
,
$local_array[$i])) {
      return false;
    }
  }
  // Check if domain is IP. If not,
  // it should be valid domain name
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$"
,
$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}
include('konekcija.php');
// Get values from form
$email = mysql_real_escape_string($_POST['email']);
$date = date("d.m.Y.");
if (!$email)
  {
     echo 'Molimo upišite Vaš e-mail';
     exit;
  }
if(!check_email_address($email)) {
     echo 'E-mail nije validan';
exit;
// Insert data into mysql
$sql ="INSERT INTO newsletter (email,datum_upisa) VALUES ('$email', '$date')";
$result=mysql_query($sql) or die(mysql_error());
// if successfully insert data into database, displays message "Successful".
if($result) {
echo "Uspješno ste upisali Vaš e-mail.";
}
else {
echo "Greška pri upisu e-maila u bazu.";
}
// close connection
mysql_close();
?>

 
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
109.175.80.*



Profil

icon Re: e-mail validacija11.09.2011. u 19:36 - pre 153 meseci
Hvala mnogo na brzim odgovorima, ali opet se nista ne desava. :((((((((

izvini sto sam dosadan.
damaki
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: e-mail validacija11.09.2011. u 23:34 - pre 153 meseci
A Milane, gde ti je else ovde? Napisao si samo sta se desava ukoliko je pogresno unesen e-mail ili nije unesen uopste, al' nisi napisao sta se desava ako je tacno upisan. U tome je problem.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: e-mail validacija12.09.2011. u 01:03 - pre 153 meseci
Rekao bih da su veoma loše napisani ovi gornji primeri.
ereg funkcija je odavno deprecated - http://php.net/manual/en/function.ereg.php

Za proveru maila možeš jednostavno koristiti regex:
Code:
if (!preg_match("/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i", $mail))
 { 
 echo "Email adresa nije validna"; 
 }
  else  {
         echo "Email adresa je validna.";
         }

I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.loc-s.akton.net.



Profil

icon Re: e-mail validacija12.09.2011. u 10:03 - pre 153 meseci
Meni i dalje ne radi, bas me j... ovaj kod :))))))). Pomagajte ljudi.
damaki
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.static.stelkom.net.



+18 Profil

icon Re: e-mail validacija12.09.2011. u 11:54 - pre 153 meseci
Ovaj kod gore radi 100%-probao sam kod sebe. Ti imas negdje drugdje problem.
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: e-mail validacija13.09.2011. u 02:18 - pre 153 meseci
Citat:
damakii: Meni i dalje ne radi, bas me j... ovaj kod :))))))). Pomagajte ljudi.
Napiši ceo kod sa gornjim primerom (stavi ga izmedju [code ] i [ / code ] tagova) pa ćemo rešiti problem. :)
Verovatno si propustio neku sitnicu...
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.loc-s.akton.net.



Profil

icon Re: e-mail validacija13.09.2011. u 14:13 - pre 153 meseci
01.php ima sljedeći kod:

Code (php):
 
<form id="form" name="form" method="post" action="insertmail2.php">
<table width="220" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="5" class="dezure"></td>
</tr>
<tr>
<td class="dezure"><input name="email" type="text" disabled="disabled" class="newsedit" id="email" /></td>
</tr>
<tr>
<td height="3" class="dezure"></td>
</tr>
<tr>
<td align="left" valign="middle" class="dezure"><input name="button" type="submit" class="newsdugme" id="button" value="Spasi" />
</td>
</tr>
</table>
</form>
 


A insermail2.php ima kod koji je napisao Milan:

Code (php):

<?php
function check_email_address($email) {
  // First, we check that there's one @ symbol,
  // and that the lengths are right.
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters
    // in one section or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"
,
$local_array[$i])) {
      return false;
    }
  }
  // Check if domain is IP. If not,
  // it should be valid domain name
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$"
,
$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}
include('konekcija.php');
// Get values from form
$email = mysql_real_escape_string($_POST['email']);
$date = date("d.m.Y.");
if (!$email)
  {
     echo 'Molimo upišite Vaš e-mail';
     exit;
  }
if(!check_email_address($email)) {
     echo 'E-mail nije validan';
exit;
// Insert data into mysql
$sql ="INSERT INTO newsletter (email,datum_upisa) VALUES ('$email', '$date')";
$result=mysql_query($sql) or die(mysql_error());
// if successfully insert data into database, displays message "Successful".
if($result) {
echo "Uspješno ste upisali Vaš e-mail.";
}
else {
echo "Greška pri upisu e-maila u bazu.";
}
// close connection
mysql_close();
?>
 


Jednostavno ne radi, nista se ne desi. kada kliknem na "Spasi" na formi, otvori mi se insertmail2.php ali sa praznim ekranom, ništa nije ispisano. kako da ovo prilagodim. konekcija.php je ok jer mi radi kod ostalih formi bez problema. Dakle ovdje je neki problem u ovom insertmail2.php

Hvala puno na pomoći.

Dakipro:ispravljeni CODE tagovi

[Ovu poruku je menjao dakipro dana 13.09.2011. u 15:28 GMT+1]
damaki
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: e-mail validacija13.09.2011. u 14:26 - pre 153 meseci
Kreni redom da dampujes post, promenjivu po promenjivu i prati dokle i kako se izvrasava kod, mozda ulazi u neku pogresnu granu, mozda nesto ne obradjuje kako je zamisljeno. Naj brze resenje problema, mnogooog brze od cekanja sigurno.
Ukljuci error_reporting ako vec nisi i vidi dal izlazi neka greska (obicno iskoci gde je zapelo)
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: e-mail validacija13.09.2011. u 14:37 - pre 153 meseci
Code (php):

if(!check_email_address($email)) {
     echo 'E-mail nije validan';
     exit;
 


Već ti je rečeno, nedostaje zatvorenje if grane. Nauči najpre osnove programiranja.

Kada se izvrši, kroz kod pitaš da li ova funkcija vraća netačno.

Trebaš ispod exit; da dodaš zatvorenu vitičastu zagradu. Tada će upis u bazu da se dogodi ako su prethodno sve provere prošle.

Da si uključio prikaz grešaka, stranica ne bi bila prazna već bi se prikazala PHP greška da nedostaje zagrada.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.loc-s.akton.net.



Profil

icon Re: e-mail validacija13.09.2011. u 15:01 - pre 153 meseci
Nisam vidio ovo uopšte, ok sada radi sve nakon dodavanja }.

Gorane zahvaljujem na kritici.
damaki
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: e-mail validacija14.09.2011. u 10:52 - pre 153 meseci
Pitanje je samo do koje verzije php-a će ti raditi, pošto će pomenuta funkcija biti izbačena. Čudi me da niko od programera to nije spomenuo...

Zameni celu check_email_address funkciju sa sledećim kodom:

Code:
function check_email_address($email) {

   if (!preg_match("/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i", $email))
   return false;
            else
            return true;
}

I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

tahuti

Član broj: 53920
Poruke: 83
*.vc.shawcable.net.



+41 Profil

icon Re: e-mail validacija14.09.2011. u 21:28 - pre 153 meseci
Code (php):

if(!filter_var($email, FILTER_VALIDATE_EMAIL))
  {
  echo "E-mail is not valid";
  }
else
  {
  echo "E-mail is valid";
  }
 
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: e-mail validacija14.09.2011. u 21:31 - pre 153 meseci
Konačno. Pet bambija ;)

Najbolje rešenje ako je PHP >= 5.2, a verovatno jeste.

[Ovu poruku je menjao Goran Rakić dana 14.09.2011. u 22:44 GMT+1]
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

[es] :: PHP :: e-mail validacija

Strane: 1 2

[ Pregleda: 5244 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.