1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class secure{ public $data; public function __construct($data){ $mstring = Array(); foreach($data as $key=>$val){ if($val !== ""){ $val = trim($val); $val = stripslashes($val); $val = htmlentities($val, ENT_QUOTES); $mstring[$key] = $val; $this->data = $mstring; } } return $data; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class Secure { public function stripSearch(&$inputStripSearch) { foreach($inputStripSearch as $key=>&$val) { if($val !== "") { $val = trim($val); $val = stripslashes($val); $val = htmlentities($val, ENT_QUOTES); } } return; } public function validateEmail(&$inputValidateEmail) { if (preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$inputValidateEmail['email'])) return true; else return false; } } ?> |
1 2 3 | filter_var('bob@example.com', FILTER_VALIDATE_EMAIL); ?> |
Kun je ze dan even laten melden hoe dat dan kan (in hun ogen?)quote:Op maandag 14 december 2009 20:52 schreef xaban06 het volgende:
[..]
Ah dus ik doe niks fout Thanks.
Op werk namelijk een discussie gehad dat ik fout bezig ben en dat het veel veiliger en makkelijker kan.
mjah.. zijn expression om te checken is ook nog aan de wat simpele kant.quote:Op donderdag 17 december 2009 14:55 schreef Chandler het volgende:
@hamkaastosti; wil alleen even melden dat die filter ook niet 100% werkt, zelfs niet 50%
http://www.google.nl/search?hl=nl&q=php+FILTER_VALIDATE_EMAIL+bugs&meta=&aq=f&oq=
Het is al weer maanden geleden dat hij zoiets gescript heeft, dus hij kon er niet opkomen. Dat was zijn verdediging.quote:Op donderdag 17 december 2009 14:57 schreef Chandler het volgende:
[..]
Kun je ze dan even laten melden hoe dat dan kan (in hun ogen?)
1 2 3 4 5 6 7 8 9 | $query = $this->db->select() ->from('news', '*') ->join('users', '*', 'news.author_id = users.id') ->order('news.date ASC') ->limit(0, $limit); $result = $this->db->fetchAll($query); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | private $select; private $from; private $join; private $limit; //enz public function limit($startrow, $numrows) { $this->limit = ' LIMIT ' . $startrow . ', ' . $numrows; return $this; } public function fetchall($query) { $doquery = $this->query($query); $result = $doquery->fetchAll(PDO::FETCH_ASSOC); return $result; } ?> |
const char regexp[] = "/^((\\\"[^\\\"\\f\\n\\r\\t\\b]+\\\")|([A-Za-z0-9_][A-Za-z0-9_\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\=\\?\\^\\`\\|\\{\\}]*(\\.[A-Za-z0-9_\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\=\\?\\^\\`\\|\\{\\}]*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9])(([A-Za-z0-9\\-])*([A-Za-z0-9]))?(\\.(?=[A-Za-z0-9\\-]))?)+[A-Za-z]+))$/D"quote:Op donderdag 17 december 2009 16:50 schreef hamkaastosti het volgende:
[..]
mjah.. zijn expression om te checken is ook nog aan de wat simpele kant.
Ik zou gewoon filter_var gebruiken.
kijk maar eens op regel 475 welke regex php zelf gebruikt
http://svn.php.net/viewvc/php/php-src/trunk/ext/filter/logical_filters.c?revision=290791&view=markup
Waarom dan niet gewoon 2 losse queries? je wil toch niet alles aan elkaar koppelen? en heb je bv een voorbeeld van 2 queries?quote:Op zaterdag 19 december 2009 11:25 schreef hamkaastosti het volgende:
ik ben me aan het verdiepen in method chaining.
Nu wil ik mijn database op de volgende manier aanroepen:
[ code verwijderd ]
in de database class werkt het zoiets:
[ code verwijderd ]
Nu werkt dit prima zolang ik maar 1 query heb. Wil ik een tweede query in dezelfde request doen zonder bijvoorbeeld een join terwijl de eerste dat wel had dan wil hij mijn tweede query ook joinen omdat $this->join niet leeg is.
hoe los ik dat netjes op?
In zend gebruiken ze ook zoiets maar daar zit vast een handigheidje achter
2 queries:quote:Op zaterdag 19 december 2009 15:01 schreef Chandler het volgende:
[..]
Waarom dan niet gewoon 2 losse queries? je wil toch niet alles aan elkaar koppelen? en heb je bv een voorbeeld van 2 queries?
1 2 3 | $this->db->insert('table', $array); ?> |
1 2 3 | ->where('field = ?', $array); ?> |
1 2 3 | $this->db->select()->from('table', 'id,title,text')->join('users, 'table.id = users.id)->where(title = ?, 1)->limit(0,10); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | /* * @author Michel Everts */ class Secure{ /* * Strip function for arrays * @param array with text * @return array */ public function stripArray(&$inputStripArray){ foreach($inputStripArray as $key=>&$val){ if($val !== ""){ $val = trim($val); $val = stripslashes($val); $val = htmlentities($val, ENT_QUOTES); } } return; } /* * Strip function for strings * @param string with text * @return string */ public function stripSingle(&$inputStripSingle){ if($inputStripSingle !== ""){ $inputStripSingle = trim($inputStripSingle); $inputStripSingle = stripslashes($inputStripSingle); $inputStripSingle = htmlentities($inputStripSingle, ENT_QUOTES); } return; } /* * E-mail validate function * @param string with text * @return string or die */ public function validateEmail(&$inputValidateEmail){ if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$inputValidateEmail)){ die ("".$inputValidateEmail." <br> Is ongeldig. Gebruik het juiste e-mailadres formaat"); } else{ return; } } /* * URL validate function * @param string with text * @return string or die */ public function validateURL(&$inputValidateURL){ if (!preg_match("/(https?:\/\/+[\w\-]+\.[\w\-]+)/i",$inputValidateURL)){ die ("".$inputValidateURL." <br> is ongeldig. Gebruik het juiste URL formaat"); } else{ return; } } /* * Name validate function * @param string with text * @return string or die */ public function validateName(&$inputValidateName){ $this->stripSingle($inputValidateName); if (preg_match("/[^a-zA-Z]( )'/",$inputValidateName)){ die ("".$inputValidateName." <br>bevat illegale karaters. Alleen alfabetisch karaters zijn toegestaan"); } else{ return; } } /* * Telephone number validate function * @param string with text * @return string or die */ public function validateTel(&$inputValidateTel){ $this->stripSingle($inputValidateTel); if (preg_match("/[^0-9\-]/",$inputValidateTel)){ die ("".$inputValidateTel." <br>bevat illegale karaters. Alleen cijfers en '-' zijn toegestaan "); } else{ return; } } /* * PostCode validate function * @param string with text * @return string or die */ public function validatePostCode(&$inputValidatePostCode){ $this->stripSingle($inputValidatePostCode); if (!preg_match("/^[0-9]{4}( )?[A-Za-z]{2}$/",$inputValidatePostCode)){ die ("".$inputValidatePostCode." <br> is ongeldig. Een postcode bevat alleen alfanumerieke karakters."); } else{ return; } } } ?> |
Je hebt gelijk, ik zou niet zomaar moeten stoppen bij zoiets triviaals als een verkeerd ingevoerd e-mail adres.quote:Op dinsdag 22 december 2009 09:47 schreef hamkaastosti het volgende:
ik snap die die(); elke keer als een field niet klopt niet zo goed. Het lijkt me handiger om gewoon een array met errors bij te houden en een array met gecheckte velden. Die errors gebruik je om je form opnieuw weer te geven met de fout onder elk veld en de array met gecheckte velden gebruik je om je database te vullen.
Verder is het handig om trim te gebruiken om per ongeluk ingevulde spaties te verwijderen.
Mijn validator gebruikt trouwens op meer plekken filter_var en heeft private functions al required() en length()
Zelfs dan, je hebt van die tijdelijke e-mailadressen. Maar goed, dit gaat vooral om klantbestanden e.d. dus dit wordt intern gebruikt.quote:Op dinsdag 22 december 2009 15:40 schreef hamkaastosti het volgende:
het probleem met het valideren van email is dat je 's werelds beste filter nog om de tuin kunt leiden door gewoon een valide mailadres in te vullen terwijl het adres misschien niet eens werkt. Wil je echt iemands mail aan iets koppelen dan zul je hem een mailtje moeten sturen met een link erin die de gebruiker moet volgen
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |