ik hou een array met errors bij.quote:Op woensdag 19 mei 2010 23:10 schreef Light het volgende:
[..]
Lijkt me qua opzet helemaal niet verkeerd. Ik zie alleen niet meteen hoe je aangeeft of een validatiepoging gelukt is en wat er gedaan wordt als een validatie mislukt.
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 | /** * checks if field matched a filter * @access private * @param <string> $field * @param <string> $fieldvalue * @param <string> $filter */ private function checkFilter($field, $fieldvalue, $filter) { switch($filter) { case 'email': if(!filter_var($fieldvalue, FILTER_VALIDATE_EMAIL)) { $this->errors[$field] = $this->locale['email']; } break; case 'num': break; case 'alnum': break; case 'date': break; case 'alpha': break; default: if(!preg_match('' . $filter . '', $fieldvalue)) { $this->errors[$field] = $this->locale['regex']; } } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // hierin zit de array met de form velden en aan welke validatie ze moeten voldoen //en deze class extend de form class waarin de validatie code staat. $form = new User_Form_Register(); //a form was submitted if($this->registry->request->isPost()) { //form is valid. continue saving the user if($form->isValid($this->registry->request->getPostVars())) { $this->model->save($form->GetValues()); } //form is not valid. display it again with errors else { $this->registry->view->errors = $form->getErrors(); } } ?> |
1 |
1 |
1 |
En het idee is dat je later makkelijk een nieuw filter kunt bedenken en toevoegen? Dan zou ik die filterfuncties beperken tot de hoofdzaak, namelijk bepalen of de waarde al dan niet geldig is volgens het filter. Dat kan door true of false terug te geven. Dan hoef je, als je later een filter wilt toevoegen, niet meer uit te zoeken welke classvariabelen je moet aanpassen.quote:Op donderdag 20 mei 2010 12:35 schreef hamkaastosti het volgende:
[..]
ik hou een array met errors bij.
[ code verwijderd ]
ik moet hem nog verder afmaken maar dit is het idee voor elke checkFilterNaam
$this->locale is een array uit een geinclude php bestand.
Dus als je een veld password hebt, met als regels dat de lengte tussen 5 en 10 tekens moet zitten en dat er een cijfer en een letter in moet zitten, dan kan ik 4 keer een foutmelding krijgen dat de ingevoerde waarde niet klopt. "stop" -> te kort, min 5 tekens vereist. "chocoladefabriek" -> te lang, max 10 tekens vereist. "geheim" -> fout, moet ten minste 1 cijfer bevatten. "123456" -> fout, moet ten minste 1 letter bevatten. "g3h31m" -> goed!quote:het checken of een form valideert kan heel simpel in je controller
[ code verwijderd ]
Het werkt nu zo dat de validator alle formfields doorloopt. Zodra er in 1 field een error is skipped ie de rest van de validatie eisen voor dat veld en gaat hij door met het volgende veld. in $this->errors zitten dan per veld de eerste error die de validator vond.
Gewoon zorgen dat je alleen de bekenden velden in de database opslaat.quote:werkt als een tiet. moet alleen nog een check inbouwen dat voorkomt dat iemand de velden in de html aan gaat passen. Maar ik weet alle namen van de form velden dus dat moet geen probleem zijn.
Als ik een nieuw filter wil toevoegen dan voeg ik een extra item aan de switch toe en een voeg ik $this->locale['nieuwfilter] toe. dan zou het moeten werken. lijkt me niet al te lastig.quote:Op vrijdag 21 mei 2010 23:24 schreef Light het volgende:
[..]
En het idee is dat je later makkelijk een nieuw filter kunt bedenken en toevoegen? Dan zou ik die filterfuncties beperken tot de hoofdzaak, namelijk bepalen of de waarde al dan niet geldig is volgens het filter. Dat kan door true of false terug te geven. Dan hoef je, als je later een filter wilt toevoegen, niet meer uit te zoeken welke classvariabelen je moet aanpassen.
1 2 3 4 5 6 7 8 9 10 11 12 13 | if(!isset($this->errors[$field])) { if(!method_exists(__CLASS__, $method)) { throw new Framework_Exception($type . ' is not a valid validation type'); } if($this->$method($field, $fieldvalue, $value) == false) { $this->errors[$field] = $this->locale[$type]; } } ?> |
Ik wil graag dat ik per fout de juiste melding krijg te zien. dus veld is te kort, te lang e.d. Geen generieke melding dat het veld niet klopt. Vandaar ook de $this->locale;quote:Als een validatie mislukt, hoef je de rest van de validaties voor dat veld uiteraard niet te doen. En een eventuele melding zou je als derde parameter bij de functie addField() kunnen toevoegen. Mislukt de validatie, dan krijg je die melding te zien. Die check-functies roep je niet zelf aan, dat gaat waarschijnlijk via iets als validateField() en die kan wel zorgen dat de melding in $this->errors[] wordt geplaatst.
[..]
1 2 3 4 5 6 7 8 9 10 11 | $this->locale['required'] = 'Dit is een verplicht veld'; $this->locale['minlength'] = 'Dit veld moet minimaal %s karakters hebben'; $this->locale['maxlength'] = 'Dit veld mag maximaal %s karakters hebben'; $this->locale['equalto'] = 'Dit veld moet hetzelfde zijn'; $this->locale['email'] = 'Een geldig emailadres is vereist'; $this->locale['alnum'] = 'Vul een geldige alphanumerieke waarde in'; $this->locale['num'] = 'Vul een geldig numeriek getal in'; $this->locale['alpha'] = 'Vul enkel letters in'; $this->locale['regex'] = 'Dit veld bevat ongeldige karakters'; ?> |
Op dit moment zou je meerdere keren een foutmelding kunnen krijgen ja omdat het script stopt met valideren zodra bijvoorbeeld het veld te kort is. Ik heb zitten denken om alle fouten te verzamelen en die onder elkaar achter het veld weer te geven na een POST met fouten maar dan krijg je dingen als 'dit veld is verplicht' samen met 'dit veld moet langer dan 3 karakters zijn' en dat lijkt me ook wat krom. Ik ben wel van plan om tooltips te gaan gebruiken met daarin de eisen voor het veld. De bedoeling is dat deze class ook de benodige jquery gaat genereren om clientside validatie te doen.quote:Dus als je een veld password hebt, met als regels dat de lengte tussen 5 en 10 tekens moet zitten en dat er een cijfer en een letter in moet zitten, dan kan ik 4 keer een foutmelding krijgen dat de ingevoerde waarde niet klopt. "stop" -> te kort, min 5 tekens vereist. "chocoladefabriek" -> te lang, max 10 tekens vereist. "geheim" -> fout, moet ten minste 1 cijfer bevatten. "123456" -> fout, moet ten minste 1 letter bevatten. "g3h31m" -> goed!
[..]
dat heb ik inderdaad al gefixed. ik weet alle velden dus als ik over de velden heen loop en het veld bestaat niet dan is er mee gekloot.quote:Gewoon zorgen dat je alleen de bekenden velden in de database opslaat.
1 2 3 4 5 6 7 | //check if the form has been tampered with by altering the input names if(!isset($postvars[$field])) { throw new Framework_Exception('required form field: ' . $field . ' was not found in $_POST.'); } ?> |
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 | CREATE TABLE IF NOT EXISTS `users_groups` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `lastupdate` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // tabel voor gebruikers aan een groep koppelen CREATE TABLE IF NOT EXISTS `users_groups_link` ( `user_id` int(10) unsigned NOT NULL, `group_id` int(10) unsigned NOT NULL, `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, KEY `gebruiker_id` (`user_id`,`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // link voor groepen & rechten CREATE TABLE IF NOT EXISTS `users_groups_rights_link` ( `group_id` int(10) unsigned NOT NULL, `right_id` int(10) unsigned NOT NULL, KEY `groep_id` (`group_id`,`right_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // tabel voor rechten CREATE TABLE IF NOT EXISTS `users_rights` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `value` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // link voor rechten die aan een specifieke gebruiker gekoppeld worden. CREATE TABLE IF NOT EXISTS `users_rights_link` ( `user_id` int(10) unsigned NOT NULL, `right_id` int(10) unsigned NOT NULL, `lastupdate` datetime NOT NULL, KEY `gebruiker_id` (`user_id`,`right_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
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 | if(isset($_POST['submit'])) { if (isset($_FILES['foto']) && $_FILES['foto']['error'] == UPLOAD_ERR_OK) { echo "Bedankt voor het uploaden, maar ik doe er even niets mee. Doei!"; } else { echo "Er is helaas iets fout gegaan bij het uploaden. Probeer het nog eens!"; } $temp_map = "/uploads/"; $temp_naam = $_FILES['foto']['tmp_name']; $result = move_uploaded_file($temp_naam, $temp_map); $bestand = $_FILES['foto']; //het bestand list($width,$height,$c,$d) = getimagesize($bestand); //het formaat van dat bestand switch($c) { case 1: //als het een gif is $plaatje = imagecreatefromgif($bestand); //het plaatje openen in $plaatje break; case 2: //jpg $plaatje = imagecreatefromjpeg($bestand); break; case 3: //png $plaatje = imagecreatefrompng($bestand); break; } } ?> |
Een else helemaal onderaan, sorry ik ben echt nog newbie hoor. Meer trial and error, maar ik weet geen opties meer.quote:Op maandag 31 mei 2010 21:32 schreef Roönaän het volgende:
Wat dacht je van exit/return toevoegen in de eerste if?
Je weet zeker dat het <input type="file" name="foto" /> is?quote:Op maandag 31 mei 2010 21:36 schreef boem-dikkie het volgende:
[..]
Een else helemaal onderaan, sorry ik ben echt nog newbie hoor. Meer trial and error, maar ik weet geen opties meer.
En dat het <form action="#" method="post" enctype="multipart/form-data"> is?quote:Op maandag 31 mei 2010 22:36 schreef Trollface. het volgende:
[..]
Je weet zeker dat het <input type="file" name="foto" /> is?
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 | <table width="273" border="0"> <tr> <td width="80">Product:</td> <td width="183"><input name="product" type="text" disabled="disabled" id="product" value="<?php echo $row['name']; ?>" readonly="readonly" /></td> </tr> <tr> <td>Naam:</td> <td><input name="naam" type="text" id="naam" /></td> </tr> <tr> <td>E-mail:</td> <td><input name="email" type="text" id="email" /></td> </tr> <tr> <td>Adres:</td> <td><input name="adres" type="text" id="adres" /></td> </tr> <tr> <td>Postcode:</td> <td><input name="postcode" type="text" id="postcode" /></td> </tr> <tr> <td>Plaats:</td> <td><input name="plaats" type="text" id="plaats" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="Submit" value="Verzenden" /></td> </tr> </table> </form> |
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 | $recipient=("mirelmirelmirel@gmail.com"); $subject="QRC besteld"; . $content= $product = $_REQUEST["product"]; $naam = $_REQUEST["naam"]; $email = $_REQUEST["email"]; $adres = $_REQUEST["adres"]; $postcode = $_REQUEST["postcode"]; $plaats = $_REQUEST["plaats"]; $message; mail($recipient, $subject, $content); echo "Uw mail is met succes verstuurd!"; header( "Location: www.link.nl ); ?> |
1 2 3 4 5 6 | $to = "Email adres"; $subject = "Leuk mailtje"; $naam = $_POST['naam']; $adres = $_POST['adres']; ?> |
1 2 3 | mail($to, $subject, $body); |
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 | $to=("mirelmirelmirel@gmail.com"); $subject="QRC besteld"; $product = $_POST["product"]; $naam = $_POST["naam"]; $email = $_POST["email"]; $adres = $_POST["adres"]; $postcode = $_POST["postcode"]; $plaats = $_POST["plaats"]; $body = " Product: $product\n Naam: $naam\n E-mail: $email\n Adres: $adres\n Postcode: $postcode\n Plaats: $plaats\n "; mail($to, $subject, $body); echo "Uw mail is met succes verstuurd!"; <!-- header( "Location: http://www.mirelmasic.nl/info_contact.html" ); --> ?> |
1 2 | { |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $body = "Product:" . $product . "Naam:" . $naam . "E-mail:" . $email . "Adres:" . $adres . "Postcode:" . $postcode . "Plaats:" . $plaats . mail($to, $subject, $body); echo "Uw mail is met succes verstuurd!"; ?> |
Ja? Ik kríjg de email wel binnen verder, alleen hij laat de strings niet zien.quote:Op dinsdag 1 juni 2010 11:08 schreef boem-dikkie het volgende:
Zet dit eens boven aan je php code onder <?php
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 | $body = "Product: $product\n Naam: $naam\n E-mail: $email\n Adres: $adres\n Postcode: $postcode\n plaats: $plaats\n "; ?> |
Jawel, hij leest de string wel uit. En je moet method="post" toevoegen aan je form tag, als je dat niet doet gaat het via een get.quote:Op dinsdag 1 juni 2010 11:21 schreef Mirel het volgende:
Werkt niet. Als het tussen aanhalingstekens staat, dan leest ie de string toch niet uit?
1 2 3 4 5 6 7 8 9 10 | $body = " Product: {$product}\n Naam: {$naam}\n E-mail: {$email}\n Adres: {$adres}\n Postcode: {$postcode}\n Plaats: {$plaats}\n "; ?> |
KISS.quote:Op dinsdag 1 juni 2010 10:20 schreef Chandler het volgende:
Sinds nu niet iig... maar dat was de vraagstelling niet helemaal Roonaan, ik wil mijn ACL uitbreiden zodat ik ook forums etc er aan kan toevoegen
http://www.opta.nl/nl/act(...)/publicatie/?id=3166quote:Op dinsdag 1 juni 2010 20:25 schreef wobbel het volgende:
Met PHP zou ik graag een 06 nummer willen valideren...dat ie met 06 moet beginnen en met 8 cijfers moet eindigen lijkt me logisch, maar zijn er nog meer dingen waarmee ik rekening moet houden?
Ik weet dat 06-12341234 niet kan omdat het cijfers 3 tm 6 en 7 t/m 10 niet gelijk mogen zijn (smsen naar 1234 is hetzelfde als smsen naar 06-12341234) maar zijn er nog meer dingen om rekening mee te houden?
(Ik wil nummers eerst goed valideren voordat er een sms heen wordt gestuurd)
- gaat googlen -quote:Op dinsdag 1 juni 2010 20:29 schreef PiRANiA het volgende:
[..]
http://www.opta.nl/nl/act(...)/publicatie/?id=3166
• Mobiele nummers. In 2009 is het totaal aantal uitgegeven mobiele nummers opgelopen tot 49.3 miljoen. Dit is 82,2% van de beschikbare 06-nummers. In 2008 was dit nog 77,3%. Om de voorraad mobiele nummers uit te breiden, kan het ministerie van Economische Zaken de reeksen 06-0 en 06-9 vrijgeven voor uitgifte.
--hoe weet je dat trouwens van die shortcodes? Weet je dat 100% zeker? bron?--
Thnxquote:Op dinsdag 1 juni 2010 20:46 schreef hamkaastosti het volgende:
http://wiki.phpfreakz.nl/(...)rlands_mobiel_nummer
quote:Op dinsdag 1 juni 2010 12:13 schreef Roönaän het volgende:
[..]
KISS.
Either way, een ACL is een rechtenprofiel. Niets houdt je tegen om dezelfde ACL op meerdere fora's toe te passen.
Luie mods zijn lui.quote:Op woensdag 2 juni 2010 20:32 schreef TheDutchHero het volgende:
Moet deze topic niet centraal worden?
Die heb ik hier ook, maar ik vond 'm eigenlijk toch wat tegenvallen.quote:Op vrijdag 14 mei 2010 19:11 schreef Swetsenegger het volgende:
Ik vind dit wel een erg prettig beginners boek
http://www.bol.com/nl/p/n(...)001320470/index.html
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.(wel graag in het script aanpassen :@ )
Alvast bedankt ^O^KLIKKENNN http://dowdoon.mybrute.com
quote:Op donderdag 3 juni 2010 09:38 schreef Dowdoon het volgende:
Nog een vraagje.
Ik zit nu met het probleem dat als ik in een teksinvoerveld bv dit stukje tekst invul:
Test
om
te
kijken
of het werkt,
de enters niet goed meeneemt.
Dus alle tekst wordt achter elkaar gezet.
Weet iemand hier een makkelijke snelle oplossing voor?
scriptje waar het om gaatgoogle even op nl2brSPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.(wel graag in het script aanpassen)
Alvast bedankt![]()
quote:Op donderdag 3 juni 2010 09:38 schreef Dowdoon het volgende:
Nog een vraagje.
Ik zit nu met het probleem dat als ik in een teksinvoerveld bv dit stukje tekst invul:
Test
om
te
kijken
of het werkt,
de enters niet goed meeneemt.
Dus alle tekst wordt achter elkaar gezet.
Weet iemand hier een makkelijke snelle oplossing voor?
scriptje waar het om gaatWaarom gebruik je geen CSS om de stijl van je div's te definiëren?SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.(wel graag in het script aanpassen)
Alvast bedankt
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |