Novo

Forum kao aplikacija na telefonu

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

  • 23 odgovora
  • 7.688 pregleda

Najnovija ↓

e-mail validacija 10.09.2011. u 20:51 · pre 184 meseca
izmenjeno 1 put, poslednji put flylord 10.09.2011. u 21:15
  1. flylord10.09.2011. u 21:15zapis iz teksta poruke
#1
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.
Potpis
damaki
Re: e-mail validacija 11.09.2011. u 06:10 · pre 184 meseca #2
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.
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: e-mail validacija 11.09.2011. u 08:11 · pre 184 meseca #3
Hvala puno na odgovoru, ali mi nesto ne ide uglavljivanje mog koda u ovaj tvoj. Negdje grijesim :(
Potpis
damaki
Re: e-mail validacija 11.09.2011. u 09:33 · pre 184 meseca #4
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();
?>
 
Re: e-mail validacija 11.09.2011. u 19:41 · pre 184 meseca #5
Negdje i ovaj kod ima problem, na submit se nista ne desi.
Potpis
damaki
Re: e-mail validacija 11.09.2011. u 20:23 · pre 184 meseca #7
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();
?>

 
Re: e-mail validacija 11.09.2011. u 20:36 · pre 184 meseca #8
Hvala mnogo na brzim odgovorima, ali opet se nista ne desava. :((((((((

izvini sto sam dosadan.
Potpis
damaki
Re: e-mail validacija 12.09.2011. u 00:34 · pre 184 meseca #9
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.
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: e-mail validacija 12.09.2011. u 02:03 · pre 184 meseca #10
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.";
         }
Potpis
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
Sviđa mi se1
Re: e-mail validacija 12.09.2011. u 11:03 · pre 184 meseca #11
Meni i dalje ne radi, bas me j... ovaj kod :))))))). Pomagajte ljudi.
Potpis
damaki
Re: e-mail validacija 12.09.2011. u 12:54 · pre 184 meseca #12
Ovaj kod gore radi 100%-probao sam kod sebe. Ti imas negdje drugdje problem.
Re: e-mail validacija 13.09.2011. u 03:18 · pre 184 meseca #13
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...
Potpis
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
Re: e-mail validacija 13.09.2011. u 15:13 · pre 184 meseca
izmenjeno 1 put, poslednji put dakipro 13.09.2011. u 15:28
  1. dakipro13.09.2011. u 15:28zapis iz teksta poruke
#14
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
Potpis
damaki
Re: e-mail validacija 13.09.2011. u 15:26 · pre 184 meseca #15
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)
Potpis
http://norway.dakipro.com/
Re: e-mail validacija 13.09.2011. u 15:37 · pre 184 meseca #16
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.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Sviđa mi se1
Re: e-mail validacija 13.09.2011. u 16:01 · pre 184 meseca #17
Nisam vidio ovo uopšte, ok sada radi sve nakon dodavanja }.

Gorane zahvaljujem na kritici.
Potpis
damaki
Re: e-mail validacija 14.09.2011. u 11:52 · pre 184 meseca #18
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;
}
Potpis
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
Re: e-mail validacija 14.09.2011. u 22:28 · pre 184 meseca #19
Code (php):

if(!filter_var($email, FILTER_VALIDATE_EMAIL))
  {
  echo "E-mail is not valid";
  }
else
  {
  echo "E-mail is valid";
  }
 
Re: e-mail validacija 14.09.2011. u 22:31 · pre 184 meseca
izmenjeno 1 put, poslednji put Goran Rakić 14.09.2011. u 22:44
  1. Goran Rakić14.09.2011. u 22:44zapis iz teksta poruke
#20
Konačno. Pet bambija ;)

Najbolje rešenje ako je PHP >= 5.2, a verovatno jeste.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme