Het is nog vroegquote:Op maandag 22 mei 2006 08:47 schreef JeRa het volgende:
[..]
Mag ik vragen hoe je je dit voorstelt? Hoe kan een gebruiker zijn wachtwoord opgeven?
[..]
Meestal doe ik zoiets met een cronjob, maar in veel gevallen kan het simpeler. Als ik een tabel wijzig voer ik vaak ook nog een DELETE uit, like that:
[ code verwijderd ]
Afhankelijk van hoevaak dat uitgevoerd wordt kun je het nog randomizeren, etc
Dat is dus ook zoals ik het zou doenquote:Op maandag 22 mei 2006 08:50 schreef c0nd0r het volgende:
Terwijl ik dit type zit ik te bedenken dat ik dan die restrictie er gewoon af kan halen zodat ie wel een nieuw mailtje kan sturen, maar die link na 24 uur gewoon niet meer werkt en als iemand een wachtwoord wil resetten schoont ie de tabel op..
Bedankt voor het idee min of meerquote:Op maandag 22 mei 2006 08:53 schreef JeRa het volgende:
[..]
Dat is dus ook zoals ik het zou doenrestricties bouw ik in al mijn queries in zodat zelfs al staat het nog in de database, de gebruikers er niet bij kunnen.
Je zegt het wel heel erg simpel maar in praktijk blijkt het niet zo simpel te zijnquote:Op zondag 21 mei 2006 19:11 schreef Roönaän het volgende:
[..]
Standaard class maken en alle modulen die class laten extenden. Of als je php5 hebt gebruik maken van een interface.
-r-
1 2 3 4 5 | define("MODULEDIR", "./modules/"); ?> |
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 | include("config.include.php"); function includeModules($tpl) { // eregie {module->news} $regex = "!{module->(.*?)\}!ism"; preg_match_all($regex, $tpl, $output); foreach ($output[1] as $key => $module) { // check if module directory exists! $obOutput = ""; if (is_dir(CONSTANT("MODULEDIR") . $module)) { if (file_exists(CONSTANT("MODULEDIR") . $module . "/index.php")) { ob_start(); require_once(CONSTANT("MODULEDIR") . $module . "/index.php"); $obOutput = ob_get_contents(); ob_end_clean(); } } $tpl = str_replace($output[0][$key], $obOutput, $tpl); } return $tpl; } $tpl = "hello \"<strong>{module->news}</strong>\" hehllooo en dan hier maar een {module->poll}"; echo includeModules($tpl); ?> |
1 2 3 4 5 6 7 8 | require_once("mod_setup.php"); require_once("mod_info.php"); echo "Last 3 news items"; ?> |
1 2 3 4 5 6 | $items = 5; $template = "test"; ?> |
1 2 3 4 5 6 7 | $modname = "Edit news"; $modver = "0.1"; $modrights = "admin"; ?> |
Hoe beveiligen jullie het bestand dat aangeroepen word door de XMLhttpRequest?quote:
Wat bedoel je met beveiligen? Je controleert op user input, en meer hoef je toch niet te doen?quote:Op maandag 22 mei 2006 09:36 schreef Darkomen het volgende:
Hoe beveiligen jullie het bestand dat aangeroepen word door de XMLhttpRequest?
Eventueel kun je een header meesturenquote:Op maandag 22 mei 2006 09:54 schreef JeRa het volgende:
[..]
Wat bedoel je met beveiligen? Je controleert op user input, en meer hoef je toch niet te doen?
1 |
Zal je natuurlijk nooit helemaal lukken zonder de foute IP-adressen handmatig te blokkerenquote:Op maandag 22 mei 2006 09:58 schreef Darkomen het volgende:
BEveiligen tegen gebruik vanaf andere sites bijvoorbeeld
1 2 3 4 | XMLHttpRequestObject.setRequestHeader(\"X_USERAGENT\",\"MijnAjaxApplicatie\"); XMLHttpRequestObject.onreadystatechange = function() |
Je doet wel een send()? En ik weet niet of underscores toegestaan zijn in headernames, je kunt proberen die te veranderen in dashes (-).quote:Op maandag 22 mei 2006 10:10 schreef Darkomen het volgende:
100% uiteraard niet, maar de meeste users zijn wel tegen te houden.
Maar het lukt niet, ik doe dit:
[ code verwijderd ]
Maar ik krijg nog geen header binnen?
1 2 3 4 5 6 7 8 9 10 11 12 | switch ($row->Type){ $gettypes = "SELECT * FROM Optiemodules ORDER BY ID ASC"; $gettypes = mysql_query($gettypes); while ($types = mysql_fetch_object($gettypes)){ case $types->ID: require $types->File; break; } } ?> |
quote:Op maandag 22 mei 2006 09:36 schreef Darkomen het volgende:
[..]
http://muziek.borntobewild.nl
Hoe beveiligen jullie het bestand dat aangeroepen word door de XMLhttpRequest?
2 keer foutquote:Jouw Browser is:
Je machine draait op: Windows
Je hebt www.borntobewild.nl direct ingetypt.
Je bent hier: 0 keer geweest.
"Oudere" Opera's staan standaard geïndentified als IEquote:Op maandag 22 mei 2006 14:07 schreef the_disheaver het volgende:
[..]
[..]
2 keer foutbrowser is opera, en ik heb gewoon dat linkje gedrukt
![]()
Maar er staat juist niets. En bovendien, ik heb de nieuwste opera. Een Beta zelfs (9)quote:Op maandag 22 mei 2006 14:08 schreef c0nd0r het volgende:
[..]
"Oudere" Opera's staan standaard geïndentified als IE
In dat geval heb ik niets gezegdquote:Op maandag 22 mei 2006 14:10 schreef the_disheaver het volgende:
[..]
Maar er staat juist niets. En bovendien, ik heb de nieuwste opera. Een Beta zelfs (9)
net even naar gekeken , het enige wat hieruit komt is "1" , wat doe ik fout?quote:Op zondag 21 mei 2006 22:31 schreef Swetsenegger het volgende:
[..]
Dit heb ik kortgeleden (ook al met hulp van roonaan) in elkaar gezet:
[ code verwijderd ]
Och ja dat stukje van mn site is al te lang geslooptquote:Op maandag 22 mei 2006 14:07 schreef the_disheaver het volgende:
[..]
[..]
2 keer foutbrowser is opera, en ik heb gewoon dat linkje gedrukt
![]()
Misschien echo je een array ipv een string?quote:Op maandag 22 mei 2006 14:38 schreef broodmonkeh het volgende:
[..]
net even naar gekeken , het enige wat hieruit komt is "1" , wat doe ik fout?
Dan krijg je enkel toch 'array' terug geprint?quote:Op maandag 22 mei 2006 16:56 schreef CraZaay het volgende:
[..]
Misschien echo je een array ipv een string?
1 2 3 4 5 6 7 8 9 | $xml = !empty($_SERVER['HTTP_RAW_POST_DATA']) ? $_SERVER['HTTP_RAW_POST_DATA'] : file_get_contents('test.xml'); $vacatureid = $_GET['vacatureid']; $id = preg_match("/<ID>(.*?)<\/ID>/si", $xml,$vacatureid); echo $id; ?> |
quote:Op maandag 22 mei 2006 17:49 schreef broodmonkeh het volgende:
nee ook al voer ik een ID in dat niet bestaat dan geeft ie ook "1"
Het lijkt er dus op dat preg_match() doet wat het moet doen. Je pattern is gevonden (<ID>n</ID>), en dus geeft 'ie TRUE terug.quote:preg_match() returns the number of times pattern matches. preg_match() returns FALSE if an error occurred.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <id>2</id> <titel>Titeltest</titel> <doelstelling>Test test</doelstelling> <vraagt></vraagt> <locatie>Rotterdam</locatie> </bedrijf> <bedrijf> <id>3</id> <titel>Test Test</titel> <doelstelling>Testje</doelstelling> <vraagt>Ik vraag </vraagt> <locatie>Amsterdam</locatie> </bedrijf> |
1 2 3 4 5 6 7 8 | $matches = array(); $findID = 3; preg_match('#<bedrijf>.*<id>' . $findID . '</id>.*<titel>(.*)</titel>.* <doelstelling>(.*)</doelstelling>.*<vraagt>(.*)</vraagt>.* <locatie>(.*)</locatie>.*</bedrijf>#Uis', $data, $matches); print_r($matches); ?> |
Alle tekens matchen. Wordt hier vooral gebruikt voor newlines en spaties, bij XML bestanden staan volgende tags immers meestal op een nieuwe regel.quote:Op dinsdag 23 mei 2006 07:01 schreef fokME2 het volgende:
Die .* in die preg_match, zonder haakjes. Wat doet die precies?
Werkt, maar is niet handig. Als er iets wordt aangepast in de XML dan heb je een probleem. De manier van Roönaän is met een simpel if-statement uit te breiden voor een ID-check.quote:Op maandag 22 mei 2006 19:24 schreef JeRa het volgende:
@broodmonkeh
Zo even uit het blote hoofd met een regular expression:
[ code verwijderd ]
Wel alles op één regel zetten natuurlijk
In principe zou je beter een enkele file kunnen maken. mod.mod_name.phpquote:Op maandag 22 mei 2006 09:02 schreef Chandler het volgende:
[..]
Je zegt het wel heel erg simpel maar in praktijk blijkt het niet zo simpel te zijn
1 2 3 4 5 6 7 8 | function hasAdmin() {} function hasRuntime() {} function hasInfo() {} function getInfo() {} function getRuntime() {} function getAdmin() {} } |
1 2 3 4 5 6 7 8 9 10 11 | $requestedId = 4; $inhoud = explode('<bedrijf>', $inhoud); foreach($inhoud as $vacature) { $id = preg_match('#<id>(.*?)</id>#', $vacature, $m) ? $m[1] : 0; if($id == $requestedId) { $titel = preg_match('#<titel>(.*?)</titel>#', $vacature, $m) ? $m[1] : 0; echo '<a href="index.php?actie=bekijk&vacatureid='.intval($id).'">'.htmlspecialchars ($title).'</a><br/>'; break; } } |
Ik moet me echt gaan verdiepen in OOPquote:Op dinsdag 23 mei 2006 08:44 schreef Roönaän het volgende:
[..]
In principe zou je beter een enkele file kunnen maken. mod.mod_name.php
Die bevat een class met verschillende functies:
[ code verwijderd ]
Of getAdmin er vervolgens uitziet als function getAdmin() { include dirname(__FILE__).'/mod_name.admin.php';} maakt dan niet zo heel veel uit.
Het punt is wel dat je maar een single point of failure hebt ipv vier.
Heb je dat PHP5 Power Programming boek niet gelezen, waar je zelf mee kwam?quote:Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
[..]
Ik moet me echt gaan verdiepen in OOP
Áls je het zo wilt opstellen. Bovengenoemde is een van de methodes die ik ooit gebruikt heb.quote:Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
Ik moet me echt gaan verdiepen in OOP
Ik wist alles al, behalve OOP... en dat heb ik overgeslagenquote:Op dinsdag 23 mei 2006 08:53 schreef Tijn het volgende:
[..]
Heb je dat PHP5 Power Programming boek niet gelezen, waar je zelf mee kwam?
Zie je...., ik begrijp totaal niet wat je hier zegtquote:Op dinsdag 23 mei 2006 08:54 schreef Roönaän het volgende:
[..]
Áls je het zo wilt opstellen. Bovengenoemde is een van de methodes die ik ooit gebruikt heb.
Meer recent heb ik gewoon een series classes voor output modules en een serie classes voor managers ("admin tools"), en die staan aan elkaar gelinkt.
Dit om te voorkomen dat je dezelfde database management meuk voor iedere db-driven class opnieuw moet schrijven.
Grin. Je hebt een serie modules:quote:Op dinsdag 23 mei 2006 08:57 schreef Swetsenegger het volgende:
[..]
Ik wist alles al, behalve OOP... en dat heb ik overgeslagen
[..]
Zie je...., ik begrijp totaal niet wat je hier zegt
Ok, zo in tekst klinkt het logisch en wordt de toegevoegde waarde van OOP ook wel duidelijk.quote:Op dinsdag 23 mei 2006 09:07 schreef Roönaän het volgende:
[..]
Grin. Je hebt een serie modules:
basic_module.php
modules/module1.php
modules/module2.php
modules/module3.php
En een serie managers:
basic_manager.php
managers/dbmanager.php
managers/filemanager.php
managers/formmanager.php
Vervolgens stel je dat elke module een subclass is van een basic_module en elke manager een subclass van basic_manager.
Waar ik in het eerste voorbeeld de admin had als onderdeel van de module class, is het in dit voorbeeld zo dat elke module een functie heeft: getManager().
De manager heeft vervolgens een bepaalde set functies om te integreren met je content management systeem.
De modules zelf bevatten dan voornamelijk runtime info, en een relatief kleine set data om de manager aan te sturen. (Bijvoorbeeld: "welke db-tabel moet er gebruikt worden" of "welke 'aliassen' moeten er getoond worden ipv db-fields. 'user_id' => 'Gebruikersid', etc").
Altijd prettig, werkgevers die het licht zien als het om investering in de kennis van je medewerkers gaat.quote:Op dinsdag 23 mei 2006 09:18 schreef Swetsenegger het volgende:
Maar... met een beetje mazzel komt er een verschuiving in werkzaamheden en kan ik in de baas z'n tijd wat meer aan de studie
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruikenquote:Op dinsdag 23 mei 2006 07:14 schreef Light het volgende:
[..]
Werkt, maar is niet handig. Als er iets wordt aangepast in de XML dan heb je een probleem. De manier van Roönaän is met een simpel if-statement uit te breiden voor een ID-check.
Begin dan met PHP6 (zie de php-src module in CVS) of pak een taal die een wat completere set aan OOP-mogelijkheden biedt; met PHP is het elke keer weer nét nietquote:Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
[..]
Ik moet me echt gaan verdiepen in OOP
PHP5, SimpleXMLquote:Op dinsdag 23 mei 2006 11:26 schreef JeRa het volgende:
[..]
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
1 |
1 2 3 | $sql_query = "SELECT bericht FROM slowchat WHERE userid='{$MemCookID}' and bericht = '{$bericht}' and datumtijd >= '{$uurnu}' "; ?> |
PHP4 beschikt niet over een native XML-parser. En dan gaat mijn voorkeur uit naar een oplossing waarbij de volgorde van de elementen binnen een item (dus id en titel binnen bedrijf) niet relevant is boven een oplossing waarbij de volgorde vast is.quote:Op dinsdag 23 mei 2006 11:26 schreef JeRa het volgende:
[..]
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
Dát is natuurlijk helemaal waar. Ikzelf werk alleen in PHP5 en draai zo nu en dan PHP-cvs, dan denk je daar niet eens meer over naquote:Op dinsdag 23 mei 2006 18:37 schreef Light het volgende:
[..]
PHP4 beschikt niet over een native XML-parser.
quote:Op dinsdag 23 mei 2006 18:33 schreef c0nd0r het volgende:
Heb je ook de foutmelding?
En iets minder layout verneukende code
quote:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/jeroen/www/test/chat.php on line 154
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'emoticons/tongue.gif'> ', 2, '2006-05-23 18:16:03', '62.251.120.197')' at line 1
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |