Ne menjetek programozonak...

Nem muszaj minden gyokernek programozonak menni. De tenyleg.

Napi WTF egy kozel 2,5 eve elhajtott kollegatol.


// e-mail cím
$val = $this->values['email'];
if (strstr($val, '@')== false || strstr($val, '.') == false )
{
    $this->addMessage('email', 'Hibás email-cím');
}

Szerk: kulon josag, hogy mivel PostgreSQL az adatbazis-kezelo (ahol normalisan van implementalva az unique index) igy sikeresen be lett regisztralva 6 db e-mail cim 3x es 110 db usernev 2-3x.

Hozzászólások

:-) pedig egyszeru a fix:


--- email.php.orig 2011-04-29 14:13:54.069630855 +0200
+++ email.php      2011-04-29 14:14:12.275630549 +0200
@@ -2,6 +2,6 @@
 $val = $this->values['email'];
 if (strstr($val, '@')== false || strstr($val, '.') == false )
 {
-    $this->addMessage('email', 'Hibás email-cím');
+    $this->addMessage('email', 'Hát ez már tényleg hibás email-cím');
 }

Mindenkinek kipostázzák az alkotmányt

ez meg még értelmes is:


--- email.php.orig	2011-04-29 15:04:37.619450966 +0200
+++ email.php		2011-04-29 15:06:43.052784305 +0200
@@ -1,6 +1,6 @@
 // e-mail cím
 $val = $this->values['email'];
-if (strstr($val, '@')== false || strstr($val, '.') == false )
+if (!filter_var($val, FILTER_VALIDATE_EMAIL))
 {
 	$this->addMessage('email', 'Hibás email-cím');
 }

Milyen helyes kis regexp bújik mögötte:

const char regexp[] = "/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD";