Originariamente inviato da prinzart
ora ho messo questo nella query:

Codice PHP:
function checkMail$m ) {
  
// andr3a / HTML.IT
  
$r "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])*";
  
$r "/(?i)^{$r}\@{$r}\.[a-z]{2,6}$/";
  return 
preg_match($r$m);
}
$str '@'
e ora l'errore non me lo da più.

Poi ho messo questo:

Codice PHP:
<?php
echo checkMail($str) ? 'corretta' 'sbagliata';
?>
ma mi stampa sempre corretta, anche quando l'email non c'è
Non ti sto seguendo. Se come stringa passi solo la chiocchiola la funzione ti dirà che il formato della mail è sbagliato. Poco ma sicuro.
Ti ripeto, devi passare alla funzione come parametro $row['email'].

edit.
Ti rincollo la funzione

codice:
function checkMail( $m ) {
  // andr3a / HTML.IT
  $r = "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])*";
  $r = "/(?i)^{$r}\@{$r}\.[a-z]{2,6}$/";
  return preg_match($r, $m);
}
I tag php del forum non vanno d'accordo con le espressioni regolari e si "mangiano dei caratteri".