...quote:Op zaterdag 5 december 2009 15:51 schreef NoShitSherlock het volgende:
Weet hier iemand hoe je PHP files opmaakt met css??
Ik heb namelijk een css file die nu niet werkt met de php file.
Althans niet met de tabel die in een PHP code staat. De pagina die buiten de PHp code staat wordt wel correct opgemaakt door de CSS file.
Weet iemand hoe je dit oplost???
zal ik dan maar normaal antwoordenquote:Op zaterdag 5 december 2009 16:04 schreef PiRANiA het volgende:
NoShitSherlock maak je excuses eens! Geen nieuw topic openen. Schavuit
controleer de html output, want dit ligt niet aan php.quote:Op zaterdag 5 december 2009 15:51 schreef NoShitSherlock het volgende:
Weet hier iemand hoe je PHP files opmaakt met css??
Ik heb namelijk een css file die nu niet werkt met de php file.
Althans niet met de tabel die in een PHP code staat. De pagina die buiten de PHp code staat wordt wel correct opgemaakt door de CSS file.
Weet iemand hoe je dit oplost???
Maar hoe kan ik dan zo'n klote tabelletje opmaken? Ik heb dus een php bestandje die de gegevens uit een database haalt en in een html tabel zet die als volgt opgebouwd is ( dit is maar een stukje van de totale code):quote:Op zaterdag 5 december 2009 15:53 schreef SpaceLlama het volgende:
[..]
...
Ja want dan is een HTML tabel opeens anders! toch?
1 2 3 4 5 6 7 8 9 10 11 12 | { echo "<tr>"; echo "<td>" . $row['module'] . "</td>"; echo "<td>" . $row['naam'] . "</td>"; echo "<td>" . $row['module'] . "</td>"; echo "<td>" . $row['vaknaam'] . "</td>"; echo "<td>" . $row['eind'] . "</td>"; echo "<td>" . $row['waarde'] . "</td>"; echo "</tr>"; } echo "</table>"; |
1 2 3 4 5 6 7 8 9 10 11 12 | { echo "<tr>"; echo "<td class="tabel1">" . $row['module'] . "</td>"; echo "<td class= "tabel1">" . $row['naam'] . "</td>"; echo "<td>" . $row['module'] . "</td>"; echo "<td>" . $row['vaknaam'] . "</td>"; echo "<td>" . $row['eind'] . "</td>"; echo "<td>" . $row['waarde'] . "</td>"; echo "</tr>"; } echo "</table>"; |
dat wil je nietquote:Op zaterdag 5 december 2009 16:19 schreef hamkaastosti het volgende:
hint: je kunt zovaak je wil <?php en ?> php gebruiken om te wisselen tussen php en html
och.. ik gebruik het in m'n views regelmatig hoor. je hele html echo'en en alles aan elkaar concatenaten vind ik ook niet echt een ideale situatiequote:
Kan je dat misschien zo toepassen op die tabel die ik hierboven beschreef zodat css de tabel kan opmaken??quote:Op zaterdag 5 december 2009 16:19 schreef hamkaastosti het volgende:
lollertvp
@noshitsherlock
hint: je kunt zovaak je wil <?php en ?> php gebruiken om te wisselen tussen php en html
ja tuurlijk, maar middenin een regel 3x wisselen is niet handig.quote:Op zaterdag 5 december 2009 16:23 schreef hamkaastosti het volgende:
[..]
och.. ik gebruik het in m'n views regelmatig hoor. je hele html echo'en en alles aan elkaar concatenaten vind ik ook niet echt een ideale situatie
Doordat je " gebruikt in zowel je html, en je php, denkt de php dat tabel1 php code is, wat een fatal error geeft, omdat het niet goed gebruikt is.quote:Op zaterdag 5 december 2009 16:12 schreef NoShitSherlock het volgende:
[..]
Maar hoe kan ik dan zo'n klote tabelletje opmaken? Ik heb dus een php bestandje die de gegevens uit een database haalt en in een html tabel zet die als volgt opgebouwd is ( dit is maar een stukje van de totale code):
[ code verwijderd ]
En nu dacht ik de tabel als volgt te kunnen opmaken ( zie onderstreepte tekst):
[ code verwijderd ]
Maar als ik dan de php file upload dan laad die helemaal niks meer. Hoe moet ik zo'n tabel opmaken dan?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | { ?> <tr> <td class="tabel1"><=$row['module']?></td> <td class="tabel1"><=$row['naam']?></td> <td><=$row['module']?></td> <td><=$row['vaknaam']?></td> <td><=$row['eind']?></td> <td><=$row['waarde']?></td> </tr> <? } ?> </table> |
1 2 3 | <td class="tabel1"> echo $row['module']; </td> ?> |
1 |
Thnx man! Ik heb de eerste methode gebruikt en dit werk perfect.quote:Op zondag 6 december 2009 09:35 schreef ssmm987 het volgende:
[..]
Doordat je " gebruikt in zowel je html, en je php, denkt de php dat tabel1 php code is, wat een fatal error geeft, omdat het niet goed gebruikt is.
Er zijn drie manieren om dit op te lossen:
1.Escape de " dingen in de html door er een \ voor te zetten
Vb:
"<td class=\"tabel1\">"
Deze manier valt niet aan te raden, omdat wanneer het niet nodig is, je echo altijd met een enkele ' opent en sluit.
2.Gebruik ' dingen
Vb:
echo '<td class="tabel1">'
Is beter dan de eerste mogelijkheid, maar nog steeds niet helemaal perfeect
3.Haal de html uit de php
[ code verwijderd ]
Het netst en het meest overzichtelijk, en het makkelijkst te maken
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $roosterQuery = mysql_query("SELECT `month`, `day`, `hour`, `availability` FROM `rooster` WHERE `month` = '12' AND `availability` = '1'"); while ($data = mysql_fetch_assoc($roosterQuery)) { $month = $data["month"]; $day = $data["day"]; $hour = $data["hour"]; $avail = $data["availability"]; $array = array("data" => array ($month, $day, $hour, $avail)); /* This is creating several arrays with the data in it. I want to have 1 array with all the data in it, how can I do that? */ } ?> |
Thanks!quote:Op zondag 6 december 2009 16:43 schreef GlowMouse het volgende:
$data[] = array ($month, $day, $hour, $avail).
1 2 3 | chown ( $fm1_UploadFolder . $FileNameCreated, "wobbel psacln" ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <rss version="2.0"> <channel> <item> <pubDate>Fri, 04 Dec 2009 09:15:00 +0100</pubDate> <title>titel 1</title> <link>http://www.link1.nl</link> <enclosure url="http://media.nu.nl/m/m1dzmuhapk8k_t.jpg" type="image/jpeg"/> </item> <item> <pubDate>Sun, 06 Dec 2009 21:09:01 +0100</pubDate> <title>titel 2</title> <link>http://www.link2.nl</link> <enclosure url="http://media.nu.nl/m/m1dzmuhapk8k_t.jpg" type="image/jpeg"/> </item> |
1 2 | $xml = simplexml_load_string($xmltext); |
http://www.webmasterworld.com/forum88/12595.htm ?quote:Op zondag 6 december 2009 18:40 schreef Etimm het volgende:
Ik ben bezig om een rss feed editor te maken. Ik ben tot nu toe overal uit gekomen behalve het sorteren.
deel uit het xml bestand:
[ code verwijderd ]
Ik maak gebruik van SimpleXML om feed in een array te plaatsen.
[ code verwijderd ]
Nu wil ik de items in de array $xml sorteren op pubDate
Iemand een idee?
Apache onder jouw username draaien of de map waarin de bestanden geplaatst worden anders chmodden. Chown lukt iig niet, want zoals de manual al zegt, kan dat alleen als je apache als root draait.quote:Op zondag 6 december 2009 18:23 schreef wobbel het volgende:
Zucht...mijn PHP upload script geeft het bestand wel 644 chmod rechten, maar de verkeerde user.
Normaal zijn alle bestanden op mijn server "wobbel psacln" (eigenaar/groep) maar als ik met PHP upload krijg ik "apache apache".
Met chown kan ik hier schijnbaar niks mee veranderen, of ik doe het niet goed...maar het zuigt iig want nu kan ik ze niet verwijderen met FTP (alleen met PHP zelf weer)
[ code verwijderd ]
Alleen WoBBeL werkt ook niet....
(ben van ellende eigen filemanager voor CKeditor aan het maken )
Ik vermoed dat het shared hosting is, dan is het niet zo makkelijk om apache met je eigen user te laten draaien. Andere optie is om de rechten op 666 te zetten (en 777 voor directories). Dan kun je de bestanden wel via ftp verwijderen.quote:Op zondag 6 december 2009 19:26 schreef GlowMouse het volgende:
[..]
Apache onder jouw username draaien of de map waarin de bestanden geplaatst worden anders chmodden. Chown lukt iig niet, want zoals de manual al zegt, kan dat alleen als je apache als root draait.
Site draait onder Plesk, dus de hoster kan er ook weinig aan veranderen.quote:Op zondag 6 december 2009 19:26 schreef GlowMouse het volgende:
[..]
Apache onder jouw username draaien of de map waarin de bestanden geplaatst worden anders chmodden. Chown lukt iig niet, want zoals de manual al zegt, kan dat alleen als je apache als root draait.
Dat laatste truukje ga ik eens proberenquote:Op zondag 6 december 2009 19:44 schreef Light het volgende:
[..]
Ik vermoed dat het shared hosting is, dan is het niet zo makkelijk om apache met je eigen user te laten draaien. Andere optie is om de rechten op 666 te zetten (en 777 voor directories). Dan kun je de bestanden wel via ftp verwijderen.
quote:Op zondag 6 december 2009 20:10 schreef GlowMouse het volgende:
het geldt alleen voor nieuwe bestanden omdat die de chmod overnemen van de map waarin ze komen
1 2 3 4 5 6 7 8 | if ( move_uploaded_file ( $_FILES['upload']['tmp_name'], $fm1_UploadFolder . "" . $FileNameCreated ) ) { chmod ( $fm1_UploadFolder . $FileNameCreated, 0666 ); } ?> |
Wie is de eigenaar van de directory waar de bestanden in staan, en wat zijn de rechten?quote:Op zondag 6 december 2009 19:59 schreef wobbel het volgende:
[..]
Site draait onder Plesk, dus de hoster kan er ook weinig aan veranderen.
[..]
Dat laatste truukje ga ik eens proberen
[edit]
Mmmm...chmodje staat netjs op 666 voor een jpg bestand maar helaas...
Commando: DELE 1260126668_CIMG1292.JPG
Antwoord: 550 1260126668_CIMG1292.JPG: Permission denied
bestand eigenaar is "apache apache", bestand heeft chmod 666quote:Op zondag 6 december 2009 20:21 schreef Light het volgende:
[..]
Wie is de eigenaar van de directory waar de bestanden in staan, en wat zijn de rechten?
Mja, toch niet...maargoed...het wordt straks toch beheerd met PHP dus wat maakt het uitquote:Op zondag 6 december 2009 20:46 schreef GlowMouse het volgende:
als de map van jou is, en de file heeft chmod 666, dan kun je hem verwijderen
Daar kom ik dus niet uit...quote:Op zondag 6 december 2009 18:48 schreef wobbel het volgende:
[..]
http://www.webmasterworld.com/forum88/12595.htm ?
Met usort moet je een heel eind kunnen komen.quote:Op maandag 7 december 2009 10:55 schreef Etimm het volgende:
[..]
Daar kom ik dus niet uit...
Iemand die me kan uitleggen hoe ik de array kan sorteren op pubDate?
1 |
1 2 3 4 5 | ---------------------------------------- ID BIGINT NEE UNSIGNED PARENT BIGINT JA UNSIGNED NAME VARCHAR(50) NEE |
Ik had nog een ninja edit geplaatst.quote:Op dinsdag 8 december 2009 19:57 schreef GlowMouse het volgende:
Unique werkt niet icm NULL (zie documentatie; http://dev.mysql.com/doc/refman/5.0/en/create-index.html ). Een alternatief is de waarde 0 gebruiken ipv NULL als er geen parent is.
Ik was er al bang voor en had zo'n vermoeden, maar ik wou toch even zeker weten. Ik vind het wel echt zuur. Ik heb zo ook bijvoorbeeld in het gros van mijn tabellen een 'delDate' kolom, die is NULL wanneer het betreffend record niet 'ge`delete' is, en bevat de timestamp van de verwijderdatum wanneer deze record wel 'ge`delete' is. Uiteraard is het de bedoeling dat wanneer een tabel een UNIQUE constraint op diverse kolommen heeft, deze de 'delDate' kolom ook meeneemt (anders krijg je immers constraint violations op records die in de applicatie 'verwijderd' zijn). Deze vlieger gaat helaas ook niet op. Nu moet ik daar inderdaad een beetje valsspelen door 0 te gebruiken in plaats van NULL. OF al deze checks op al deze tabellen op applicatieniveau gaan verleggen, maar dat is een onbegonnen en erg slordig karwei.quote:Op dinsdag 8 december 2009 21:07 schreef GlowMouse het volgende:
Dat kon ik zo ook wel zeggen dat je er niet anders omheen kunt werken
Dankje voor je reactie! Nu kom ik wat verder. Is het dan ook zo te maken dat het gekoppeld kan worden aan een user?quote:Op woensdag 9 december 2009 00:07 schreef GlowMouse het volgende:
Front-end gaat dit mbv xmlHTTP. Dit kun je vrij makkelijk met een toolkit als jQuery. Je moet wel met JavaScript en PHP kunnen werken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class user { public $db; private $salt = 'abc1234'; private $cookieName = 'abc12345667890'; private $domain = 'http://www.domain.com'; public function __construct($db) { $this->db = $db; } public function user($db) { $this->__construct($db); } public static function login($username = '', $password = '', $stayloggedin = false, $sha = false) { print($this->db); } } ?> |
$this is alleen van toepassing als je het hebt over geinstantiëerde classes / objecten. De static 'modifier' wil zeggen dat je de functie (eigenlijk is het een method / member als je zo'n functie in een class hebt) kunt aanroepen zonder de class / het object dat de class voorstelt te instantiëren.quote:Op vrijdag 11 december 2009 17:35 schreef Chandler het volgende:
Ik zit met een punt.
Ik laad een database class naar $db en laad daarna een nieuwe class (user) en wil deze als parameter de $db class meegeven
[ code verwijderd ]
nu krijg ik echter de volgende error
Fatal error: Using $this when not in object context in D:\****\system\classes\class.user.php on line 23
Wat doe ik nou weer fout?
eerst chdir?quote:Op zondag 13 december 2009 17:32 schreef ursel het volgende:
Weet iemand hoe ik er ook alweer voor kan zorgen dat ik de service php, pear en phpunit kan benaderen vanuit een andere folder dan de std folders?
ahh.. w8 ff ik mis wat essentiele info in mijn post..quote:
Op zich niet, tenzij je net zoals bij fok het aanpassen van accounts etc laat bevestigen dmv een wachtwoord (zelfde als inloggen) en natuurlijk kun je middels een tekst de gebruiker er van op de hoogte brengen dat het risico is dat men op de pc (indien deze gebruikt wordt door meerdere mensen) het niet aan te bevelen is om ingelogd te blijven! ):quote:Op maandag 14 december 2009 19:03 schreef xaban06 het volgende:
Ah dus ik doe niks fout Thanks.quote:Op maandag 14 december 2009 20:40 schreef Chandler het volgende:
[..]
Op zich niet, tenzij je net zoals bij fok het aanpassen van accounts etc laat bevestigen dmv een wachtwoord (zelfde als inloggen) en natuurlijk kun je middels een tekst de gebruiker er van op de hoogte brengen dat het risico is dat men op de pc (indien deze gebruikt wordt door meerdere mensen) het niet aan te bevelen is om ingelogd te blijven! ):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class secure{ public $data; public function __construct($data){ foreach($data as $key=>$val){ if($val !== ""){ $val = trim($val); $val = stripslashes($val); $val = htmlentities($val, ENT_QUOTES); $data = array($key=>$val); $this->data = $data; return $data; } } } } ?> |
Omdat je binnen je foreach returnedquote:Op dinsdag 15 december 2009 08:55 schreef Sitethief het volgende:
[ code verwijderd ]
De $data die ik mee geef aan de function komt uit een $_POST . De class geeft mij alleen de laatste value uit de array terug en negeert de rest. Weet iemand hoe dat komt?
Hmm, het maakt niet uit waar ik hem return in de function, ik krijg alleen de laatste waarde uit de array terug. Ik snap wel ongeveer wat er mis gaat, maar niet hoe ik het kan fixen....quote:Op dinsdag 15 december 2009 09:35 schreef ursel het volgende:
[..]
Omdat je binnen je foreach returned
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
Ja daar zitten ze wel in, maar hoe weet je welke de geselecteerde waarde is in de dropdown?quote:Op woensdag 23 december 2009 09:16 schreef hamkaastosti het volgende:
als het goed is zitten alle waarden van je form in de $_POST array
http://www.w3schools.com/php/php_forms.asp
thx voor je reactie weer. Mijn code is:quote:Op woensdag 23 december 2009 12:48 schreef hamkaastosti het volgende:
door alle waarden die je in de dropdown ziet ook in value="" te zetten
<option value="12-12-2009">12-12-2009</option>
1 2 3 4 5 6 7 8 9 10 11 12 | <?php { //connectie ophalen $query = "select distinct(Datum)from wedstrijd"; $result = mysql_query ($query); echo "<select name=datum value=''>Datum</option>"; while($nt=mysql_fetch_array($result)) echo "<option value=$nt[Datum]>$nt[Datum]</option>"; } <input type="submit" /> </form> |
1 2 3 4 5 6 7 8 | echo <select name="datum\">; while($query) { echo <option value=\"$nt['datum']\">$nt['datum']</option>; } echo </select>; ?> |
mijn html is drama ik hebwel een boek gelezen over mysql en php. Mijn website bevat wel wat data maar ik ben er al teringlang mee bezig en snap er nog steeds geen zak van. Zou je me kunnen uitleggen wat ik nu verkeerd doe? Ik wil in principe alleen de geselecteerde waarde van de dropdown doorgeven en vervolgens op basis van de doorgegeven waarde 2 tabellen opbouwen.quote:Op woensdag 23 december 2009 16:52 schreef hamkaastosti het volgende:
je bouwt je select niet goed op.
[ code verwijderd ]
wel erg basic html hoor
thx tosti het werkt! Ik ga nu proberen de includes aan de praat te krijgen.quote:Op woensdag 23 december 2009 17:08 schreef hamkaastosti het volgende:
een select list is in zijn simpelste vorm:
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
om de ingevulde waarde in php uit te lezen vul je de eerste regel aan met:
<select name="datum">
vervolgens kun je de ingevulde waarde met php uitlezen als $_POST['datum']
1 |
1 |
1 |
1 |
Niet.quote:Op donderdag 24 december 2009 22:47 schreef Tijn het volgende:
Hoe skip je een parameter? Ik bedoel dat je bijvoorbeeld wel de 4e parameter aan een functie meegeeft, maar niet de derde.
Als je de vierde parameter wilt meegeven, moet je ook de derde meegeven. Zo staat het ook in de documentatie.quote:Neem bijvoorbeeld de functie array_slice(). Die heeft twee optionele parameters: de 3e parameter geeft de lengte van de array aan en de 4e parameter geeft aan of je de keys wil behouden of niet.
1 |
Tenzij je resultset minder dan 10 rijen heeft.quote:Op vrijdag 25 december 2009 19:23 schreef xaban06 het volgende:
Wie kan mij een schop geven in de juiste richting.
Ik heb een SELECT query, met LIMIT 10 aan het einde. Dus ik heb altijd 10 'rows'.
Zoiets?quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | content1 = array(); content2 = array(); for($i = 1; $i <= count($datarows); $i++) { if($i % 2 != 0) // $i is oneven { $content1[] = $datarows[$i]; } else // $i is even { $content2[] = $datarows[$i]; } } ?> |
Ja okay, maar omdat in het voorbeeld van xaban06 zijn "data rows" bij 1 begonnen, dacht ik: dat hou ik dan ook maar even aan.quote:Op zaterdag 26 december 2009 01:49 schreef GlowMouse het volgende:
arrays beginnen in PHP met 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | if(isset($_POST['send'])) { echo "Accessing username using POST : " . $_POST['username'] . "<br>"; echo "Accessing username using REQUEST : " . $_REQUEST['username'] . "<br>"; $password = $_POST['password']; echo "Password is $password"; } else { echo "<form method='post' action='$_SERVER['PHP_SELF']'>"; echo "<input name='password' type='password'><br>"; echo "<input name='username' type='username'><br>"; echo "<input name='send' type='submit' value='Send!'>"; echo "</form>"; } ?> |
1 |
al opgelost.Ik weet niet precies wat foutzat. Ik denk dat er een quotje fout stond of zo.quote:Op zaterdag 26 december 2009 14:21 schreef jakees het volgende:
hallo,
ik probeer te werken met PHP_SELF maar het lukt niet erg. Ik heb de volgende code:
[ code verwijderd ]
Als ik de action laat staan krijg ik een lege pagina. Wanneer ik de code
[ code verwijderd ]
weghaal werkt het wel. Weet iemand wat ik verkeerd doe?
thx alvast.
Je hoort zo'n unique constraint in dit geval dan ook te leggen op de combinatie Parent ID + Naam i.p.v. alleen Naam. Je wilt immers toch de unieke namen per parent.quote:Op zondag 27 december 2009 19:18 schreef wobbel het volgende:
Oke, deze is voor mij lastig en ik kom er ook niet uit
Ik ben een CMS systeem aan het bouwen die met nette pagina url's overweg kan (bijv. http://www.example.com/grafisch/folders/verspreiding)
Dit krijg ik voor elkaar dmv een hierarchische tabel (als ik het zo goed spel ) Hiervoor heb ik gebruik gemaakt van de volgende tutorial op mysql.com => http://dev.mysql.com/tech(...)erarchical-data.html
Alleen loop ik nu tegen een probleem aan, er kunnen geen dubbele namen aanwezig zijn (in de tutorial is het de veld "name").
Hoe los ik dat op?
http://www.example.com/grafisch/folders/verspreiding kan dus wel, maar http://www.example.com/overig/verspreiding kan niet omdat verspreiding al gebruikt is als "name" en dubbele names dan loopt de boel zeg maar vast
Maar hoe ga ik dat doen met SQL dan?quote:Op zondag 27 december 2009 19:21 schreef Tuvai.net het volgende:
[..]
Je hoort zo'n unique constraint in dit geval dan ook te leggen op de combinatie Parent ID + Naam i.p.v. alleen Naam. Je wilt immers toch de unieke namen per parent.
1 2 3 4 5 6 | FROM C_pages AS node, C_pages AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.name = 'verspreiding' ORDER BY parent.lft; |
Eerst met een regex de datum er uit halen, dis via strtotime omzetten in een unix time string, daar het aantal seconden af halen, en dan weer via date omzetten naar je formaat?quote:Op maandag 28 december 2009 01:00 schreef xaban06 het volgende:
Voor mijn 'lastonline' field gebruik het volgende formaat:
JaarMaandDagUurMinuut
Een voorbeeld zou zijn:
200929120105 (29 december 2009, 01:05).
Hoe is het mogelijk om na te gaan hoe die field 10 minuten terug er uit zou zien?
Ik weet het, ik heb voor een foute formaat gekozen
Ik heb het gevonden, het kan makkelijker!quote:Op maandag 28 december 2009 01:02 schreef PiRANiA het volgende:
[..]
Eerst met een regex de datum er uit halen, dis via strtotime omzetten in een unix time string, daar het aantal seconden af halen, en dan weer via date omzetten naar je formaat?
Maar dat is op basis van de huidige tijd, niet op basis van de tijdstring die je al hebt.quote:Op maandag 28 december 2009 01:20 schreef xaban06 het volgende:
[..]
Ik heb het gevonden, het kan makkelijker!
date('YmdHi', strtotime('-10 minutes'));
Mja, mijn fout Verkeerd uitgelegt.quote:Op maandag 28 december 2009 01:21 schreef Tijn het volgende:
[..]
Maar dat is op basis van de huidige tijd, niet op basis van de tijdstring die je al hebt.
quote:Op maandag 28 december 2009 01:24 schreef xaban06 het volgende:
[..]
Mja, mijn fout Verkeerd uitgelegt.
Da's niet hetzelfde formaat als in je voorbeeldstring 200929120105, dat was YdmHi.quote:Op maandag 28 december 2009 01:20 schreef xaban06 het volgende:
[..]
Ik heb het gevonden, het kan makkelijker!
date('YmdHi', strtotime('-10 minutes'));
1 2 3 4 5 6 | {s:6:"inhoud";s:0:"";s:5:"error";s:25:"Uw email adres is onjuist";}}}status|s:0:""; userID|s:1:"1";auth|a:4:{s:2:"id";s:1:"1";s:8:"username";s:13:"administrator";s:2:"ip";s:10:"127.0.0.48"; s:7:"browser";s:173:"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)";} |
Spelfoutjequote:Op maandag 28 december 2009 07:17 schreef Light het volgende:
[..]
Da's niet hetzelfde formaat als in je voorbeeldstring 200929120105, dat was YdmHi.
Ik geef aan iedere record altijd een unieke ID mee, of het nou wel of niet noodzakelijk is. Stiekem denk ik daar eigelijk niet over na.quote:Op dinsdag 29 december 2009 20:59 schreef hamkaastosti het volgende:
de indeling van je tabellen daargelaten vind ik je naamgeving raar. Bij een poll geef je geen points en een answer maar kies je een option dmv een vote oid
en ook de id bij je poll_log lijkt me niet echt nodig.. je selecteer rijen in die tabel op poll_id of op ip en als je een poll verwijderd kun je dat log ook leeggooien door alle rijen met het poll_id of 1 rij dmv van het ip
Leuke website! Nicequote:Op dinsdag 29 december 2009 20:31 schreef Chandler het volgende:
lijkt me erg goed; gebruik zo'n opzet voor www.gfxpoll.nl en natuurlijk www.gfxpoll.com al zou ik je wel aanraden als je echt de database wilt optimaliseren het best handig is om een apparte tabel te gebruiken voor het ip adres en deze in je poll_log tabel te verbinden middels een ID, scheelt ietsje pietsje data.
1 |
1 2 | Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query. |
Controlleer je veld types eens, ziet er naar uit dat je daart een verschil in hebtquote:Op woensdag 30 december 2009 08:46 schreef DaFan het volgende:
SQL:
Ik heb een 20-tal databases, en deze bevatten allen exact dezelfde tabellen (met andere informatie). Er is een tabel die ik heb gemaakt in DB 005, en die wil ik kopiëren naar alle andere databases.
Ik heb er 10 gedaan met de volgende statement:
[ code verwijderd ]
Gaat allemaal goed, tot de laatste 10, daar krijg ik foutmelding:
[ code verwijderd ]
Enig idee?
Yup, met de select * geef je die volgorde direct door aan je insert into.quote:Op woensdag 30 december 2009 08:52 schreef DaFan het volgende:
Hm kan het ermee te maken hebben dat de kolommen in de laatste 10 tabellen 'verkeerd' staan?
Zeg maar in DB 005 is het A B C D
en in (bv) DB 022 en verder is het A B D C
Fantastisch, het werktquote:Op woensdag 30 december 2009 09:02 schreef ursel het volgende:
Je kan natuurlijk ook ipv select * de kolom volgorde in je select zetten
Sorry, moest effe mijn nieuwste botje testen.quote:Op woensdag 30 december 2009 18:52 schreef PiRANiA het volgende:
[ afbeelding ]
Servertje heeft het zwaar
Test geslaagdquote:Op woensdag 30 december 2009 19:02 schreef Tuvai.net het volgende:
[..]
Sorry, moest effe mijn nieuwste botje testen.
waaruit blijkt dat?quote:Op woensdag 30 december 2009 18:52 schreef PiRANiA het volgende:
[ afbeelding ]
Servertje heeft het zwaar
Jij zal het niet veel vinden (als je de FOK! stats hebt gezien), maar ik vind 60 queries per seconde vrij veelquote:
Ik was eigenlijk meer aan het kijken naar je 'Failed attempts". 60 queries per seconden vind ik niet zo heel gek veel, meer dan 1000 failed connection attempts in een uur tijd echter wel.quote:Op woensdag 30 december 2009 19:28 schreef PiRANiA het volgende:
[..]
Jij zal het niet veel vinden (als je de FOK! stats hebt gezien), maar ik vind 60 queries per seconde vrij veel
Hoe kom ik er achter waar het fout gaat?quote:Op woensdag 30 december 2009 19:29 schreef Tuvai.net het volgende:
[..]
Ik was eigenlijk meer aan het kijken naar je 'Failed attempts". 60 queries per seconden vind ik niet zo heel gek veel, meer dan 1000 failed connection attempts in een uur tijd echter wel.
Voor je bezoekersteller mag je wel trots zijn (mits redelijk aantal queries per pagina), maar je had het erover dat hij het druk had. En dat is niet zo, een moderne thuis-pc kan rustig 50-100k queries/seconde uitvoeren primary key look-ups wel.quote:Op woensdag 30 december 2009 19:28 schreef PiRANiA het volgende:
[..]
Jij zal het niet veel vinden (als je de FOK! stats hebt gezien), maar ik vind 60 queries per seconde vrij veel
tcpdumpquote:Op woensdag 30 december 2009 19:37 schreef PiRANiA het volgende:
[..]
Hoe kom ik er achter waar het fout gaat?
Het zijn allemaal lokale scripts met data uit metingen. Tcpdump werkt dan niet denk ik?quote:Op woensdag 30 december 2009 19:41 schreef GlowMouse het volgende:
[..]
Voor je bezoekersteller mag je wel trots zijn (mits redelijk aantal queries per pagina), maar je had het erover dat hij het druk had. En dat is niet zo, een moderne thuis-pc kan rustig 50-100k queries/seconde uitvoeren primary key look-ups wel.
[..]
tcpdump
Jup, chille x2200 server. Ik moet hem alleen nog ergens weghangen eigenlijk, maar colocatie is vrij duurquote:
Relatief veel data (~200MB database) op standaard configuratie...quote:Op woensdag 30 december 2009 22:54 schreef GlowMouse het volgende:
ic; heb je zo'n enorm kleine dataset of heb je MySQL nog met de default config draaien?
Ben ik wel benieuwd met welke settings je dat beter kan optimaliseren als je veel data hebt.quote:Op woensdag 30 december 2009 22:59 schreef GlowMouse het volgende:
zonde!
1 2 3 4 | $QuotaAmount = sprintf('%0.2f', $QuotaAmount); $QuotaAmount = (float)str_replace(',', '.', $QuotaAmount); ?> |
1 2 3 4 | $sReCheckQuotaAmount = sprintf('%0.2f', $sReCheckQuotaAmount); $sReCheckQuotaAmount = (float)str_replace(',', '.', $sReCheckQuotaAmount); ?> |
Omdat je daar er ook al een float van maakt. Floats zijn niet altijd precies het getal die je bedoelt.quote:Op donderdag 31 december 2009 10:28 schreef ursel het volgende:
Mja, maar de afronding gaat al verkeerd in de sprintf
aah, wacht, die sprintf maakt er ook float van.quote:Op donderdag 31 december 2009 10:32 schreef Tijn het volgende:
[..]
Omdat je daar er ook al een float van maakt. Floats zijn niet altijd precies het getal die je bedoelt.
Het handige van een float is dat je zowel extreem grote als extreem kleine getallen erin kunt opslaan. Andere types hebben harde limieten, zoals bv een int die van -2147483648 t/m 2147483647 werkt. Een float heeft dat soort grenzen niet echt, daar kun je honderd cijfers voor of achter de komma bij zetten en je krijgt nog een waarde eruit die (min of meer) lijkt op wat je bedoelde.quote:Op donderdag 31 december 2009 10:57 schreef ursel het volgende:
[..]
Gewoon even nieuwsgierig, maar wat is eigenlijk het nut van een float als je die niet precies het getal is dat je bedoeld?
Sowieso overstappen op InnoDB, beetje recente versie pakken (5.4/5.5), en dan spelen met de buffer pool, en logbuffer.quote:Op donderdag 31 december 2009 09:07 schreef ursel het volgende:
[..]
Ben ik wel benieuwd met welke settings je dat beter kan optimaliseren als je veel data hebt.
Heb je daar een mooie guide voor? Of een leidraad waar ik kan beginnen?quote:Op donderdag 31 december 2009 11:53 schreef GlowMouse het volgende:
[..]
Sowieso overstappen op InnoDB, beetje recente versie pakken (5.4/5.5), en dan spelen met de buffer pool, en logbuffer.
Oeh leuk materiaal om naar te kijken. Ik ben nu mijn grootste tabel aan het omzetten naar InnoDB:quote:
Ahja, dat werkt.quote:Op donderdag 31 december 2009 14:32 schreef GlowMouse het volgende:
Gewoon toevoegen (/etc/mysql/my.cnf) en mysql herstarten
innodb_buffer_pool_size= 1000M
Die rowcount is innodb-eigen, zie manual.
je moet een count door php laten uitvoeren dan?quote:Op donderdag 31 december 2009 15:00 schreef GlowMouse het volgende:
Bij FOK! scheelt dat wel een miljoen keer (of 10 miljoen miljard keer); de kunst is dan ook om nooit/niet vaak een count op een hele tabel te doen.
wanneer wil je nou ooit weten hoeveel rijen een tabel heeft?quote:Op donderdag 31 december 2009 15:06 schreef ursel het volgende:
[..]
je moet een count door php laten uitvoeren dan?
Best vaak hoor. Al dan niet met een GROUP BY.quote:Op donderdag 31 december 2009 15:07 schreef GlowMouse het volgende:
[..]
wanneer wil je nou ooit weten hoeveel rijen een tabel heeft?
Ik wil weten hoe de opbouw van sommige data verloopt, dan vind ik het wel intereressant om te weten hoe veel gegevens ik al hebquote:Op donderdag 31 december 2009 15:07 schreef GlowMouse het volgende:
[..]
wanneer wil je nou ooit weten hoeveel rijen een tabel heeft?
We hadden het over een SELECT count(*) FROM tbl, niet over een andere query.quote:Op donderdag 31 december 2009 15:09 schreef Tuvai.net het volgende:
[..]
Best vaak hoor. Al dan niet met een GROUP BY.
dat is een query'tje per maand ofzo, /care.quote:Op donderdag 31 december 2009 15:09 schreef PiRANiA het volgende:
[..]
Ik wil weten hoe de opbouw van sommige data verloopt, dan vind ik het wel intereressant om te weten hoe veel gegevens ik al heb
Een hoop van onze tabellen staan gelijk aan het aantal producten en of objecten.quote:Op donderdag 31 december 2009 15:07 schreef GlowMouse het volgende:
[..]
wanneer wil je nou ooit weten hoeveel rijen een tabel heeft?
En dan staat er nooit in WHERE bij? En dit zijn ook typisch dingen die je denormaliseert.quote:Op donderdag 31 december 2009 15:13 schreef ursel het volgende:
[..]
Een hoop van onze tabellen staan gelijk aan het aantal producten en of objecten.
http://www.mysqlperforman(...)-paginated-displays/quote:Daarnaast voor het aangeven van hoeveel pagina's er zijn in de lijst navigatie.
Dus redelijk vaak eigenlijk nog wel.
Ja, doh. Toen vroeg jij hoe vaak je dat wel niet doet, waarom ik (en zo te zien andere ook) reageer dat ik dat dus wel eens nodig heb.quote:Op donderdag 31 december 2009 15:11 schreef GlowMouse het volgende:
We hadden het over een SELECT count(*) FROM tbl, niet over een andere query.
ik zeg verder niet dat onze code perfect isquote:Op donderdag 31 december 2009 15:14 schreef GlowMouse het volgende:
[..]
En dan staat er nooit in WHERE bij? En dit zijn ook typisch dingen die je denormaliseert.
[..]
http://www.mysqlperforman(...)-paginated-displays/
quote:Op donderdag 31 december 2009 15:17 schreef Tuvai.net het volgende:
[..]
@PiRANiA: COUNT(*) op tabellen zonder een WHERE clausule is in InnoDB nou eenmaal erg traagMyISAM snel omdat door het ontbreken van MVCC er gewoon een countertje in een tabel zit waar je in 1x het aantal rijen in een tabel kan aflezen. Zodra je iets met WHERE erbij doet, is MyISAM weer even traag als de rest.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\sync.php on line 68 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of xml_parse_into_struct(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\xml.php on line 160 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of xml_parse_into_struct(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\xml.php on line 160 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of datastore_search(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\syncml.php on line 210 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\syncml.php on line 220 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\syncml.php on line 221 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\syncml.php on line 222 Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of datastore_search(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in C:\domains\svenahrens.nl\wwwroot\syncml\syncml\syncml.php on line 346 |
Huh?quote:
Ga ik eens kijken of die weg te halen zijn en of het dan wel werkt..quote:Op zondag 3 januari 2010 00:06 schreef GlowMouse het volgende:
xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )
dat gaat al goed, bij de functieaanroep zijn geen ampersands nodig
In de code staan de ampersands er ook niet..quote:Op zondag 3 januari 2010 00:06 schreef GlowMouse het volgende:
xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )
dat gaat al goed, bij de functieaanroep zijn geen ampersands nodig
1 2 3 4 5 6 7 | if (!xml_parse_into_struct ($xml_parser, $xml_text, &$values, &$index)) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } ?> |
bugger..quote:
1 2 3 4 5 6 7 8 9 10 | public function validateTel(&$inputValidateTel){ $this->stripSingle($inputValidateTel); if (preg_match("/[0-9]/",$inputValidateTel)){ return true; } return false; } ?> |
1 2 3 | (preg_match("/^[0-9]/",$inputValidateTel)) ?> |
Of eventueel ctype_digit?quote:Op maandag 4 januari 2010 08:51 schreef Tijn het volgende:
Waarom gebruik je niet gewoon is_numeric()?
1 2 3 4 5 6 7 | public function validateTel(&$inputValidateTel){ $this->stripSingle($inputValidateTel); ctype_digit($inputValidateTel); return; } ?> |
quote:
1 2 3 4 5 6 7 8 9 10 | public function stripSingle(&$inputStripSingle){ if($inputStripSingle !== ""){ $inputStripSingle = trim($inputStripSingle); $inputStripSingle = stripslashes($inputStripSingle); $inputStripSingle = htmlentities($inputStripSingle, ENT_QUOTES); } return; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* * Telephone number validate function * @param string with text * @return bool * @return string with validated & stripped digits */ public function validateTel(&$inputValidateTel) { //Strip $this->stripSingle($inputValidateTel); //Strip everything but digits preg_replace('/[^0-9]/', '',$inputValidateTel); //Check if string contains only digits, if not return false if(ctype_digit($inputValidateTel)) { return true; } return false; } ?> |
quote:Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
Alleen cijfers voor een telefoonnummer is niet handig. Het kan ook gebeuren dat iemand een internationaal telefoonnummer wil invoeren, dan heb je in ieder geval een + nodig als eerste teken. Dan maak je het met 2 velden (netnummer en abonneenummer) niet handiger.quote:Op maandag 4 januari 2010 12:40 schreef hamkaastosti het volgende:
dwing je gebruikers gewoon een correct telefoonnummer in te voeren door bijvoorbeeld een kengetal en abonneeveld te gebruiken die je zelf aan elkaar plakt of geef bij je form een voorbeeld hoe het ingevuld moet worden met evt clientside javascript validatie. je kunt met php dan simpelweg ctype_digit gebruiken voor de check.
[..]
Dit moet een validation class worden die voor meerdere omgevingen te gebruiken is. Dwz dat telefoon nummers erg kunnen verschillen omdat de programmatuur voor diverse landen gebruikt kan worden.quote:Op maandag 4 januari 2010 12:40 schreef hamkaastosti het volgende:
dwing je gebruikers gewoon een correct telefoonnummer in te voeren door bijvoorbeeld een kengetal en abonneeveld te gebruiken die je zelf aan elkaar plakt of geef bij je form een voorbeeld hoe het ingevuld moet worden met evt clientside javascript validatie. je kunt met php dan simpelweg ctype_digit gebruiken voor de check.
[..]
Waarom heb je dan een plus nodig?quote:Op maandag 4 januari 2010 13:04 schreef Light het volgende:
[..]
Alleen cijfers voor een telefoonnummer is niet handig. Het kan ook gebeuren dat iemand een internationaal telefoonnummer wil invoeren, dan heb je in ieder geval een + nodig als eerste teken. Dan maak je het met 2 velden (netnummer en abonneenummer) niet handiger.
Jij misschien, maar je gebruikers zullen het op alle mogelijke manieren proberen...quote:Op maandag 4 januari 2010 13:11 schreef Sitethief het volgende:
[..]
Dit moet een validation class worden die voor meerdere omgevingen te gebruiken is. Dwz dat telefoon nummers erg kunnen verschillen omdat de programmatuur voor diverse landen gebruikt kan worden.
[..]
Waarom heb je dan een plus nodig?
Je schrijft toch gewoon 0031384202277 en niet +31384202277
Ik denk dat meer mensen +31 invoeren dan 0031.quote:Op maandag 4 januari 2010 13:11 schreef Sitethief het volgende:
[..]
Waarom heb je dan een plus nodig?
Je schrijft toch gewoon 0031384202277 en niet +31384202277
Maar je weet niet waar iemand vandaan gaat bellen, en 00 is niet overal de code voor internationaal bellen. De + bij een telefoonnummer wordt wel algemeen herkend als "bel internationaal", waarbij de beller dan zelf kan uitzoeken wat de goede code is voor het land waar hij zich bevindt. Of dat 00, 011, 09, 9, 990 of nog iets anders is, is niet jouw probleem.quote:Op maandag 4 januari 2010 13:11 schreef Sitethief het volgende:
Waarom heb je dan een plus nodig?
Je schrijft toch gewoon 0031384202277 en niet +31384202277
Ik heb het nooit gebruikt . Maar ja, wie ben ik?quote:Op maandag 4 januari 2010 13:24 schreef Tijn het volgende:
[..]
Ik denk dat meer mensen +31 invoeren dan 0031.
Ik kan dus net zo goed die + in mijn database zetten.quote:Op maandag 4 januari 2010 13:27 schreef Light het volgende:
[..]
Maar je weet niet waar iemand vandaan gaat bellen, en 00 is niet overal de code voor internationaal bellen. De + bij een telefoonnummer wordt wel algemeen herkend als "bel internationaal", waarbij de beller dan zelf kan uitzoeken wat de goede code is voor het land waar hij zich bevindt. Of dat 00, 011, 09, 9, 990 of nog iets anders is, is niet jouw probleem.
1 |
1 |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /* * Telephone number validate function * @param string with text * @return bool * @return string with validated & stripped digits */ public function validateTel(&$inputValidateTel) { //Strip $this->stripSingle($inputValidateTel); //Strip everything but digits, + and - $inputValidateTel = preg_replace('/[^0-9\+\-]/', '',$inputValidateTel); //Check if string contains only digits, + and -, if not return false return true; } ?> |
Kloptquote:Op maandag 4 januari 2010 15:15 schreef Tijn het volgende:
Ik zou de naam van de functie veranderen in "sanitize" in plaats van "validate". Als je alleen zou valideren, zou je alleen een true / false antwoord verwachten, maar in dit geval pas je de string ook echt aan.
quote:Op maandag 4 januari 2010 17:27 schreef Tegan het volgende:
Newb-vraag. Ik heb een array en een variabele, hoe kan ik checken of die variabele in de array voorkomt?
Bv.
$array = array(1, 3, 7);
$var = 1;
1 2 3 4 5 | if(in_array($var, $array)) { /* doe iets... */ } ?> |
Ik struikel er alleen vaak over dat op die website de voorbeelden altijd erg complex zijn en je dus moeilijk kunt achterhalen hoe je een function simpel kunt gebruiken. Zeker als je net begonnen bent met php. Verder worden veel dingen nogal summier uitgelegd.quote:Op maandag 4 januari 2010 17:35 schreef GlowMouse het volgende:
Die manual is trouwens wel handig, want links staan alle arrayfuncties. Om de zoveel tijd moet je die allemaal doorlopen om te kijken wat er allemaal mogelijk is.
Als je wat ervaring hebt, kun je de voorbeelden wel waarderen.quote:Op maandag 4 januari 2010 17:38 schreef Sitethief het volgende:
[..]
Ik struikel er alleen vaak over dat op die website de voorbeelden altijd erg complex zijn en je dus moeilijk kunt achterhalen hoe je een function simpel kunt gebruiken. Zeker als je net begonnen bent met php. Verder worden veel dingen nogal summier uitgelegd.
Agreed, die voorbeelden kunnen soms erg fijn zijn.quote:Op maandag 4 januari 2010 17:44 schreef GlowMouse het volgende:
[..]
Als je wat ervaring hebt, kun je de voorbeelden wel waarderen.
quote:Op dinsdag 5 januari 2010 11:22 schreef Sitethief het volgende:
Hoe kun je simpel in multidimensionale arrays zoeken?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function array_twodimensional_search($needle, $haystack) { if(!is_array($haystack)) { return null; } foreach($haystack as $key => $array) { if(!is_array($array)) { continue; } $arrkey = array_search($needle, $array); if($arrkey !== false) { return array($key, $arrkey); } } return null; } ?> |
1 2 3 4 | $multi_array = array('test' => array(5, 3, 1), 'test2' => array(6, 4, 2), 'bla' => 5); print_r(array_twodimensional_search(5, $multi_array)); ?> |
1 2 3 4 5 | ( [0] => test [1] => 0 ) |
Ik zou zorgen dat je queries zoveel mogelijk outputten wat je hebben wil. Als je wil controleren of een password met een username matcht, kan dat prima met een SELECT en een WHERE. Dan hoef je niet later door je resultaten te gaan zitten graven, maar heb je gelijk wat je hebben wil.quote:Op dinsdag 5 januari 2010 14:32 schreef Sitethief het volgende:
Wat vinden jullie beter. Het checken van een wachtwoord bij het inloggen dmv WHERE statement in een query, of door een SELECT query te doen en dan het wachtwoord de controleren in die array.
De query methode is sneller en korter, maar levert gevaar op omdat je een query runt. De array methode is veiliger, maar langzamer en langer. Ook is het minder veilig om wachtwoorden heen en weer te sturen tussen classes waarin je de array afcheckt.
Ik zou de databaseconfig in een apart bestand zetten.quote:Op woensdag 6 januari 2010 10:48 schreef Sitethief het volgende:
http://pastebin.com/f212e15f4
Deze code werkt, maar zou het nog beter/anders kunnen en waarom? Ik ben net begonnen met leren over cookies en sessions.
Edit: de Secure class: http://pastebin.com/f327ce69e
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 | require('cfg/main.php'); require('cfg/database.php'); connect_naar_database(DB_HOST, DB_USER, DB_PASS, DB_NAME); $bla = get_iets(); $bla2 = get_iets_anders(); //---------------SCHEIDING-----------------------------------// ?> <html> <head> <title>Bla</title> </head> <body> <?php foreach($bla as $singlebla): ?> <?=$singlebla->naam?> <?php endforeach; ?> <br /> <hr /> <br /> <?php foreach($bla2 as $anotherbla): ?> <?=$anotherbla->description?> <?php endforeach; ?> </body> </html> |
Ja, heb volledige shell toegang als root dus dat is niet het probleemquote:Op donderdag 7 januari 2010 23:15 schreef Tuvai.net het volgende:
Voor herhalende / automatische handelingen, zou ik om te beginnen eens kijken naar cronjobs. En of je daar überhaupt de mogelijkheid voor hebt natuurlijk.
Ik heb ook zoiets gemaakt, daarbij zet ik de instellingen op de default waarde en geef ik een preview van het bestand na het inlezen. Als het niet goed is kan je de defaultinstellingen wijzigen en het nog een keer proberen...quote:Op donderdag 7 januari 2010 16:40 schreef Intrepidity het volgende:
Ik ben bezig met het schrijven van een kleine wrapperklasse om fgetcsv heen om makkelijk met csv bestanden om te gaan. Nou moet de fgetcsv functie o.a. weten wat het veldscheidingsteken is, of er aanhalingstekens e.d. om de waarden heenzitten en met welk karakter er ge-escaped wordt.
Is er ook een manier om dat handig zelf te analyseren? Het wordt gebruikt in een open webapplicatie waarbij helemaal niet zeker is in welke CSV-indeling mensen dingen gaan uploaden.
Inderdaad niet meer van een kwestie van je code in een cronjob zetten die om de zoveel tijd draait. Vrijwel hetzelfde als wat je in Windows doet met executables en geplande taken / scheduled tasks.quote:Op vrijdag 8 januari 2010 08:37 schreef Xcalibur het volgende:
Een cronjob maken die 1x per week of 1x per maand draait
En die dus de facturen maakt...
Met date('w') kun je achterhalen op welke dag van de week een datum valt. En met mktime() kun je een timestamp maken. Handig om te weten is dat de nulde dag van de maand eigenlijk de laatste dag van de voorgaande maand is. Met een beetje puzzelen zou het dan wel moeten lukken. Veel meer dan 10 regels code hoeft het niet te worden.quote:Op zaterdag 9 januari 2010 23:08 schreef Chandler het volgende:
Weet iemand hoe ik de laatste zaterdag van iedere maand kan achterhalen? zonder al te veel scripting te schijven?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function lastSaturday($month, $year) { // number of days in each month $days_in_month = array(1=>31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // fix for leap year if(date('L', mktime(0,0,0,$month,1,$year)) > 0) $days_in_month[2] = 29; // go through days of the month, starting at the end for($day = $days_in_month[$month]; $day > 1; $day--) { // check if day is saturday if(date('l', mktime(0,0,0,$month,$day,$year)) == 'Saturday') { // yay *O* return $day; } } // boo ;( return false; } ?> |
Ik denk dat je date('t') bedoelt. Dat is inderdaad wel handig en maakt het stukje in mijn code waarin ik dat opzoek overbodigquote:Op zaterdag 9 januari 2010 23:50 schreef Intrepidity het volgende:
Dat truucje van de 0e dag kun je inderdaad toepassen, maar met date('n') kun je ook achterhalen hoeveel dagen er in de huidige maand zitten (=laatste dag van de maand)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function lastSaturday($month, $year) { $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year)); // go through days of the month, starting at the end for($day = $days_in_month; $day > 1; $day--) { // check if day is saturday if(date('l', mktime(0,0,0,$month,$day,$year)) == 'Saturday') { // yay return $day; } } // boo return false; } ?> |
Hoe zou date('w') het korter maken dan wat hierboven staat?quote:Op zaterdag 9 januari 2010 23:58 schreef GlowMouse het volgende:
op basis van date('t') en date('w') moet het in veel minder regels kunnen
Omdat je op basis van het dagnummer van de laatste dag in een keer het juiste aantal dagen er vanaf kunt trekken Dan heb je ook geen for-lus meer nodig.quote:Op zondag 10 januari 2010 00:01 schreef Tijn het volgende:
[..]
Hoe zou date('w') het korter maken dan wat hierboven staat?
Oh zo. Ja, dan zou je het met een simpel sommetje kunnen oplossen.quote:Op zondag 10 januari 2010 00:02 schreef Intrepidity het volgende:
[..]
Omdat je op basis van het dagnummer van de laatste dag in een keer het juiste aantal dagen er vanaf kunt trekken Dan heb je ook geen for-lus meer nodig.
1 2 3 4 5 6 7 | function lastSaturday($month, $year) { $daysInMonth = date('t', mktime(0,0,0,$month,1,$year)); $lastday = date('w', mktime(0,0,0,$month,$daysInMonth,$year)); return $daysInMonth - (($lastday+1)%7); } ?> |
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 | /** * @param <int> $weekday Dag van de week (0 .. 6 - Zondag .. Zaterdag) * @param <int> $month * @param <int> $year * @return <int> timestamp van de laatste ...dag van de maand */ function lastDayOfMonth($weekday, $month = null, $year = null) { if(is_null($year)) { $year = date('Y'); } if(is_null($month)) { $month = date('m') + 1; } else { $month++; } $dayOfMonth = 0; $dayOfWeek = date('w', mktime(0, 0, 0, $month, $dayOfMonth, $year)); $dayOfMonth = $weekday - $dayOfWeek; if($dayOfMonth > 0) { //Verkeerde maand $dayOfMonth -= 7; } return mktime(0, 0, 0, $month, $dayOfMonth, $year); } ?> |
Hier komt alleen niet het goede antwoord uitquote:Op zondag 10 januari 2010 00:07 schreef GlowMouse het volgende:
je krijgt dan zoiets
[ code verwijderd ]
Mooi, en netjes met params.quote:Op zondag 10 januari 2010 00:11 schreef Light het volgende:
Ik ben nog even verder gaan puzzelen en heb nu een oplossing die Chandler-proof is
[ code verwijderd ]
Werkt voor alle dagen van de week, gewoon met een parameter.
nu welquote:Op zondag 10 januari 2010 00:14 schreef Tijn het volgende:
[..]
Hier komt alleen niet het goede antwoord uit
Ieder z'n ding idd. Ik vind het zo'n verspilling van ruimte om voor iedere curly brace open weer een nieuwe regel te beginnen. De sluit-brace staat wel op z'n eigen regel (behalve bij een if als er een else volgt).quote:Op zondag 10 januari 2010 00:19 schreef Intrepidity het volgende:
Achja, ieder z'n eigen ding he Ik kan er bijvoorbeeld niet tegen om de curly braces naast een klasse/functienaam te zetten Braces staan bij mij altijd op een volgende regel
True, leesbaarheid is ook belangrijk. Maar 'k denk niet dat PHP je code zo verandert dat de berekening wordt geoptimaliseerd, dus een efficient algoritme verzinnen moet je wel zelf doen.quote:En inderdaad, alles zo compact mogelijk maken heeft nauwelijks zin meer. PHP compileert en optimaliseert zijn code netjes tegenwoordig.
Thanksquote:Op zondag 10 januari 2010 00:17 schreef Tuvai.net het volgende:
[..]
Mooi, en netjes met params. [ afbeelding ]
Eens Hoewel ik wel vaak probeer om code ook compact te houden, maar dat is vooral om dubbele dingen te voorkomen. Op hoe meer plekken je iets moet aanpassen, hoe groter de kans dat je een aanpassing vergeet.quote:Ik prefereer leesbare, geďndente code over code die zo klein en compact mogelijk moet (tenzij het van belang is voor een merkbare performancewinst natuurlijk) zijn. Dat akelige Perl tijdperk waarin we zo absurd gelimiteerd waren zijn we inmiddels wel voorbij.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { if( $expr2 ) { if( $expr3 ) { Klasje->Methode(); if( $expr4 ) { Klasje->EenMethode(); } else { Klasje->Meer(); Klasje->Code(); } } else { Klasje->Vaudje('omg'); } } else { Klasje->Vaudje('wtf'); } } else { Klasje->Vaudje('lol'); } |
quote:Op zaterdag 9 januari 2010 23:54 schreef Tuvai.net het volgende:
Wat gebruiken jullie eigenlijk om PDFs on the fly te genereren? Ik gebruik nu al heel lange tijd FPDF ( http://www.fpdf.org ) maar ik ben er elke keer érg lang mee bezig om dynamische documenten te maken, die gedeeltelijk uit variabele content en gedeeltelijk uit vaste content bestaan. Nou is PDF scripts maken sowieso al niet mijn meest favoriete bezigheid, maar in .NET gaat het me een stuk sneller af met de iText / iSharp of dbAutoTrack libraries.
Welke raden jullie aan?
Maar stel ik maak een factuur voor de klant aan, voeg ik dan 2 extra regels toe?quote:Op vrijdag 8 januari 2010 12:25 schreef Tuvai.net het volgende:
[..]
Inderdaad niet meer van een kwestie van je code in een cronjob zetten die om de zoveel tijd draait. Vrijwel hetzelfde als wat je in Windows doet met executables en geplande taken / scheduled tasks.
Ik zou zorgen dat je bij het aanmaken van een factuur de datum kunt opgeven waarop 'ie verzonden moet worden en dat geheel dan kunt opslaan in je database.quote:Op zondag 10 januari 2010 20:51 schreef wobbel het volgende:
[..]
Maar stel ik maak een factuur voor de klant aan, voeg ik dan 2 extra regels toe?
Veld "Periode" dus 14, 31, 365
Veld "Aantal" -1 is ongelimiteerd doorgaan, of 12 voor 12 maanden (als je voor 31 dagen hebt gekozen)
Of periode + aantal opgeven, en dan dmv een cronjob elke dag controleren of er een factuur gegenereerd moet worden. En dan als je maandelijks kiest dat hij het altijd op de 15e doet bijv.?
Tja, dat is natuurlijk een kwestie van je fantasie gebruiken, en volledig afhankelijk van je script en hetgeen je wilt doen. Ik heb een paar weken geleden nog een applicatie gemaakt waarbij op vaste tijdstippen diverse mailtjes naar leden verzonden moesten worden, volledig automatisch. Denk daarbij aan vaste tijdstippen als:quote:Op zondag 10 januari 2010 20:51 schreef wobbel het volgende:
[..]
Maar stel ik maak een factuur voor de klant aan, voeg ik dan 2 extra regels toe?
Veld "Periode" dus 14, 31, 365
Veld "Aantal" -1 is ongelimiteerd doorgaan, of 12 voor 12 maanden (als je voor 31 dagen hebt gekozen)
Of periode + aantal opgeven, en dan dmv een cronjob elke dag controleren of er een factuur gegenereerd moet worden. En dan als je maandelijks kiest dat hij het altijd op de 15e doet bijv.?
Jewel, met FPDF vanwege gebrek aan beter, dus ik kan je niet verder helpen Je kunt naar de PDF module van PHP zelf kijken (http://php.net/manual/en/book.pdf.php), maar ik zie niet 1,2,3 in hoe dat beter is als FPDFquote:Op zondag 10 januari 2010 22:01 schreef Tuvai.net het volgende:
Maare, niemand maakt hier dus dynamische PDFs in PHP?
Ook al FPDF dus. De standaard PDF functies van PHP staan naar mijn ervaring erg vaak uitgeschakeld en die kun je in geval van een third party host ook niet even aanzetten.quote:Op zondag 10 januari 2010 22:16 schreef Intrepidity het volgende:
[..]
Jewel, met FPDF vanwege gebrek aan beter, dus ik kan je niet verder helpen Je kunt naar de PDF module van PHP zelf kijken (http://php.net/manual/en/book.pdf.php), maar ik zie niet 1,2,3 in hoe dat beter is als FPDF
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 | function confirm_order($ID) { $d=connectDB(); $r=runquery("SELECT * FROM orders WHERE order_id=".quote_smart($ID,$d),$d); if(mysql_num_rows($r)=='1'){ $row=mysql_fetch_array($r); if($row["order_status"]=='2'){ $echo= '<p>Je bestelling is al bevestigd, maar je krijgt nu het mailtje met de gegevens en verdere instructies nogmaals.</p>'; } else{ $r=runquery("UPDATE orders SET order_status='2' WHERE order_id=".quote_smart($ID,$d),$d); $echo= '<p>Je bestelling is bevestigd. Je krijgt nu een mailtje met de betaalgegevens en verdere instructies.</p>'; } $mail_to=$row["email_order"]; $mail_from='FROM: niet@relevant.nl'; $mail_subject='subject'; if($row["delivery_option"]=='sendoff'){ $mail_body='Beste '.$row["name_order"].', Bedankt voor het bevestigen van je bestelling. *nog wat tekst*'; } else{ $mail_body='Beste '.$row["name_order"].', Bedankt voor het bevestigen van je bestelling. *wat andere tekst dan die ander*'; } mail($mail_to,$mail_subject,$mail_body,$mail_from); return $echo; } else{ return '<p>Oeps! Je probeerde een bestelling te bevestigen die niet bestaat! Stuur even een mailtje, dan kunnen we zien wat er fout is gegaan.</p>'; } } ?> |
Als je met zoiets aan de slag gaat, kun je je dan niet beter storten op bv Zend Framework?quote:Op maandag 11 januari 2010 11:59 schreef Sitethief het volgende:
Iemand ervaring met MODx? Ik ben er nu een beetje mee aan het stoeien, maar het ziet er allemaal heel tof uit.
Opdracht van de baas .quote:Op maandag 11 januari 2010 12:06 schreef Tijn het volgende:
[..]
Als je met zoiets aan de slag gaat, kun je je dan niet beter storten op bv Zend Framework?
1 2 3 4 5 6 | var_dump($aResult); if($aResult["numberOfTries"]<=3) return true; else return false; |
Iemand enig iedee hoe dat kan? :)quote:array(1) {
[0]=>
array(7) {
["id"]=>
NULL
["time"]=>
NULL
["ip"]=>
NULL
["email"]=>
NULL
["password"]=>
NULL
["success"]=>
NULL
["numberOfTries"]=>
string(1) "0"
}
}
Warning (8): LogLogintriesTable.php at 31 Undefined index: numberOfTries
1 2 3 4 5 | echo '<pre>'; var_dump($aResult); echo '</pre>'; ?> |
Kan ookquote:Op maandag 11 januari 2010 13:55 schreef Sitethief het volgende:
Wat is er mis met
[ code verwijderd ]
Dat ziet er wat leesbaarder uit vind ik altijd.
Helemaal als je ook iets van xdebug geinstalleerd hebt (op de server).quote:Op maandag 11 januari 2010 14:20 schreef hamkaastosti het volgende:
ik gebruik altijd var_dump want die geeft meer bruikbare informatie
Hier ook, verwerkt in een kleine functie dump, zodat ik niet elke keer dat moet tikken..quote:Op maandag 11 januari 2010 13:55 schreef Sitethief het volgende:
Wat is er mis met
[ code verwijderd ]
Dat ziet er wat leesbaarder uit vind ik altijd.
Nee, want als ik na of voor de mail() functie een echo doe om dat te testen, wordt dat maar een keer afgedrukt. En dan zou het altijd twee mailtjes moeten zijn, niet alleen de eerste keer dat je op de link in het mailtje klikt.quote:Op maandag 11 januari 2010 07:12 schreef Intrepidity het volgende:
Zo op het eerste gezicht lijkt die functie in orde. Ik vermoed dan ook dat die functie ergens 2 keer aangeroepen wordt..
Uhm, als de Functie 2x word aangeroepen, dan betekent dat niet dat de echo voor of na de functie 2x word aangeroepn, dus dat is geen handige manier om het te testen. Je zou dan de echo IN de functie moeten zetten.quote:Op maandag 11 januari 2010 18:42 schreef wonderer het volgende:
[..]
Nee, want als ik na of voor de mail() functie een echo doe om dat te testen, wordt dat maar een keer afgedrukt. En dan zou het altijd twee mailtjes moeten zijn, niet alleen de eerste keer dat je op de link in het mailtje klikt.
Heb je het nou over de hele functie (confirm_order()), of mail()? Waarom zou mail() binnen de functie in vredesnaam twee keer worden aangeroepen als het er maar een keer staat?quote:Op maandag 11 januari 2010 19:28 schreef ParvusM het volgende:
[..]
Uhm, als de Functie 2x word aangeroepen, dan betekent dat niet dat de echo voor of na de functie 2x word aangeroepn, dus dat is geen handige manier om het te testen. Je zou dan de echo IN de functie moeten zetten.
Met XDebug heb je ook geen <pre> nodig.quote:Op maandag 11 januari 2010 14:34 schreef Sitethief het volgende:
Ik bedoelde natuurlijk <pre>, niet print_r, wat je verder voor function of wat dan ook gebruikt was niet mijn punt .
1 2 3 4 | // 2e parameter is preserve_keys, oftewel, de keys worden hernummerd en alleen de waarden worden omgedraaid $array = array_reverse($array, false); ?> |
array_flip doet iets anders. Die zorgt dat keys en waarden omgedraaid worden, dus array(0 => 'a', 1 => 'b') wordt array('a' => 0, 'b' => 1)quote:Op dinsdag 12 januari 2010 22:46 schreef GlowMouse het volgende:
array_flip oh zonder key preserve; dan array_reverse.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |