Dat ook, enquote:
1 |
1 |
Om er zeker van te zijn dat het al niet ergens anders gebruikt word?quote:Op donderdag 7 september 2006 00:05 schreef Tuvai.net het volgende:
Overigens, zoals een paar posts terug al werd gezegd, gebruik niet 'date' en 'name', dus namen die hoogst mogelijk al gereserveerd zijn. Maak er dan gewoon date_x van of zo, als 't maar niet zo'n voor de hand liggende naam is.
woei!quote:Op donderdag 7 september 2006 00:05 schreef Tuvai.net het volgende:
[..]
Dat ook, en
[ code verwijderd ]
moet
[ code verwijderd ]
zijn.
Overigens, zoals een paar posts terug al werd gezegd, gebruik niet 'date' en 'name', dus namen die hoogst mogelijk al gereserveerd zijn. Maak er dan gewoon date_x van of zo, als 't maar niet zo'n voor de hand liggende naam is.
Woorden als 'name' en 'type' hebben in bijvoorbeeld MySQL queries een functie, en die kun je dus niet gaan gebruiken als benaming van een veld of iets dergelijks.quote:Op donderdag 7 september 2006 00:13 schreef super-muffin het volgende:
bedankt, stom dat ik het niet zag
[..]
Om er zeker van te zijn dat het al niet ergens anders gebruikt word?
Kan gerust hoor, alleen moet je er dan wel ` en ` omheen zettenquote:Op donderdag 7 september 2006 00:23 schreef Tuvai.net het volgende:
[..]
Woorden als 'name' en 'type' hebben in bijvoorbeeld MySQL queries een functie, en die kun je dus niet gaan gebruiken als benaming van een veld of iets dergelijks.
Een goed alternatief is het quoten van elke database-, tabel- en kolomnaam door gebruik te maken van backticks (links van je '1' op je toetsenbord):quote:Op donderdag 7 september 2006 00:05 schreef Tuvai.net het volgende:
Overigens, zoals een paar posts terug al werd gezegd, gebruik niet 'date' en 'name', dus namen die hoogst mogelijk al gereserveerd zijn. Maak er dan gewoon date_x van of zo, als 't maar niet zo'n voor de hand liggende naam is.
1 |
Kijk eens in de access en error logs van Apache wat hij erover denktquote:Op donderdag 7 september 2006 10:50 schreef Nevermind het volgende:
Ik wil mod_rewrite url's gebruiken op mijn thuiscomputer, maar dat lijkt niet te werken.
Op mijn Mac werkte het ook niet.quote:Op donderdag 7 september 2006 10:50 schreef Nevermind het volgende:
Ik wil mod_rewrite url's gebruiken op mijn thuiscomputer, maar dat lijkt niet te werken. Werkt dat niet onder windows ofzo?
quote:Op donderdag 7 september 2006 17:33 schreef JeRa het volgende:
[..]
Kijk eens in de access en error logs van Apache wat hij erover denktaan 'het lijkt niet te werken' kun je weinig afleiden
1 2 3 4 5 6 7 | RewriteEngine On RewriteBase /cms RewriteRule ^([A-Za-z-]+)/([0-9]+)$ /index.php?sub=$1&snid=$2 RewriteRule ^([A-Za-z-]+)$ index.php?sub=$1 RewriteRule ^([0-9]+)$ index.php?nid=$1 |
1 |
Dat komt door de manier waarop strings gedefiniëerd zijn in MySQL, door middel van apostrofes of aanhalingstekens dusquote:Op donderdag 7 september 2006 20:36 schreef De_Hertog het volgende:
Simpel vraagje: hoe voeg je een stukje tekst met haakjes toe aan een mysql database? MySQL geeft een error waar de haakjes in staan, accepteert het geen haakjes?
Bedankt voor je tip, maar het was stiekem iets anders. Ik dacht, aangezien hij dat stuk als foutmelding gaf, dat het om de haakjes ging. Maar ik was vergeten de aanhalingstekens rond de variabelen te zetten:quote:Op donderdag 7 september 2006 20:41 schreef JeRa het volgende:
Dit is trouwens één manier om SQL injection uit te voeren, dus let goed op hoe je je queries samenstelt.
1 2 3 4 5 6 7 8 9 10 | if (isset($var)) { $var = trim($var); if (empty($var)) { return false; } return true; } return false; ?> |
1 2 3 4 5 6 7 | empty($var); // geeft true isset($var); // geeft true $var = 'bla'; empty($var); // geeft false isset($var); // geeft true |
Dit kan sowieso een stuk korter lijkt me:quote:Op vrijdag 8 september 2006 16:37 schreef SkaterSam het volgende:
Zoiets dus. Dat lijkt mij dubbel controleren op hetzelfde, of zie ik dat verkeerd ? Dan kan je beter gewoon trimmen, en dan controleren of die empty() is of niet.
1 2 3 4 5 | return true; } else { return false; } |
Maar dat zou alleen zo kunnen zijn, als iemand niet de form heeft gebruikt om de pagina te bereiken ? (uitgaande van 2 pagina's: form en verwerking). Iemand die direct de verwerkingspagina aanspreekt dus. Of zou je zelfs vanuit de form pagina kunnen hebben dat er geen $_POST vars worden meegestuurd ?quote:Op vrijdag 8 september 2006 16:45 schreef the_disheaver het volgende:
Nee, want mocht $var niet bestaan, en je wilt hem trimmen krig je een foutmelding. (warning).
Ik ga opera gebruiken, bekijk de broncode, en verwijder een voor mij stom input veld. Herlaad de form uit de cache (met de aangepaste broncode), en verstuur hem op.quote:Op vrijdag 8 september 2006 16:50 schreef SkaterSam het volgende:
[..]
Maar dat zou alleen zo kunnen zijn, als iemand niet de form heeft gebruikt om de pagina te bereiken ? (uitgaande van 2 pagina's: form en verwerking). Iemand die direct de verwerkingspagina aanspreekt dus. Of zou je zelfs vanuit de form pagina kunnen hebben dat er geen $_POST vars worden meegestuurd ?
Nee, want mocht $var niet bestaan krijg je een warning bij de laatste statement in de eerste if-functiequote:Op vrijdag 8 september 2006 16:48 schreef CraZaay het volgende:
Dit kan sowieso een stuk korter lijkt me:
[ code verwijderd ]
Hmm ok, er zit nog een andere check voor, maar "better be safe than sorry" he, dank voor de infoquote:Op vrijdag 8 september 2006 16:53 schreef the_disheaver het volgende:
Ik ga opera gebruiken, bekijk de broncode, en verwijder een voor mij stom input veld. Herlaad de form uit de cache (met de aangepaste broncode), en verstuur hem op.
Het zal niet snel gebeuren, maar het kan.
Je hebt gelijk, ik dacht inderdaad aan het verkeerdequote:Op donderdag 7 september 2006 20:46 schreef De_Hertog het volgende:
[..]
Bedankt voor je tip, maar het was stiekem iets anders. Ik dacht, aangezien hij dat stuk als foutmelding gaf, dat het om de haakjes ging. Maar ik was vergeten de aanhalingstekens rond de variabelen te zetten:
$query = "INSERT INTO tabel (Naam, Land) VALUES ($een, $twee)";
Waarbij dus in $een een zin met haakjes stond. Ik bedoelde ook echt ( ) trouwens, geen aanhalingstekens. Maar toch bedankt
ehhh, fok?quote:Op vrijdag 8 september 2006 16:55 schreef SkaterSam het volgende:
[..]
edit: weet iemand hoe die site heet, waar iedereen gewoon code kon invoeren en anderen er naar konden kijken, een soort kladblok als het ware...
Nog niet, maar het is nu ook weer niet zo'n risicovol systeem (lees: het is een vervanging van een kladblokje-bestandje waarin ik eerst een verzameling bij hield.) Maar ik ga nog wel naar de security kijken hoor, puur als leerervaring. Alleen ik wilde het eerst werkend krijgen. En alle 680 bierdopjes die aan de muur bij mij hangen staan er inmiddels inquote:Op vrijdag 8 september 2006 17:02 schreef JeRa het volgende:
[..]
Je hebt gelijk, ik dacht inderdaad aan het verkeerdemaar let op met de aanhalingstekens, weet je zeker dat in $een en $twee de aanhalingstekens geëscapet worden?
http://codedump.mastercode.nl/quote:Op vrijdag 8 september 2006 16:55 schreef SkaterSam het volgende:
[..]
Hmm ok, er zit nog een andere check voor, maar "better be safe than sorry" he, dank voor de info![]()
edit: weet iemand hoe die site heet, waar iedereen gewoon code kon invoeren en anderen er naar konden kijken, een soort kladblok als het ware...
Nee, die was het ook niet, ik kan me herinneren dat het een site was waarin de code in een groenomrande, vaalgeele box werd getoond. Het zou http://www.bigbold.com/snippets/ kunnen zijn, maar die ziet er anders uit...quote:
1 |
Nee, na de eerste stopt 'ie, en dit is absoluut een geaccepteerde en in iedere programmeer- en scripttaal waarin deze constructie mogelijk is een zeer gangbare en nette manier om dit op te lossenquote:Op vrijdag 8 september 2006 16:55 schreef the_disheaver het volgende:
[..]
Nee, want mocht $var niet bestaan krijg je een warning bij de laatste statement in de eerste if-functie
edit: tenminste, denk ik. Misschien stopt php ook wel als hij aan de eerste statement niet voldoet. maar lijkt me niet. in elk geval is het imo niet erg netjes
Je wilt checken of deze string voorkomt in de ingevoerde string? Waarom dan niet gewoon strstr()? Da's sneller en afdoende als je alleen die string wilt matchen.quote:Op vrijdag 8 september 2006 19:33 schreef SkaterSam het volgende:
[ code verwijderd ]
Is dit genoeg om email injection te voorkomen? Aangezien dingen als BCC: en CC: op nieuwe lijnen moeten. De code moet je natuurlijk in een if() statement denken.
Als ik kan controleren op carriage returns en newlines met strstr() zal ik dat wel doen, ik wilde alleen weten of wat ik neer had gezet email injection voorkomt.quote:Op vrijdag 8 september 2006 22:29 schreef CraZaay het volgende:
Je wilt checken of deze string voorkomt in de ingevoerde string? Waarom dan niet gewoon strstr()? Da's sneller en afdoende als je alleen die string wilt matchen.
zover ik weet wel (doe het zelf ook zoquote:Op vrijdag 8 september 2006 23:13 schreef SkaterSam het volgende:
[..]
Als ik kan controleren op carriage returns en newlines met strstr() zal ik dat wel doen, ik wilde alleen weten of wat ik neer had gezet email injection voorkomt.
http://rafb.net/paste/quote:Op vrijdag 8 september 2006 16:55 schreef SkaterSam het volgende:
[..]
Hmm ok, er zit nog een andere check voor, maar "better be safe than sorry" he, dank voor de info![]()
edit: weet iemand hoe die site heet, waar iedereen gewoon code kon invoeren en anderen er naar konden kijken, een soort kladblok als het ware...
Nope, ik heb in ieder geval genoeg alternatieven gezien om die te gebruiken. Maar ik dacht dat het wel handig zou zijn om bijvoorbeeld lange stukjes code te posten, zonder de layout te verneuken...quote:
[BUG] Fouten na de update? Deel 2quote:Op zondag 10 september 2006 15:53 schreef ikke_ook het volgende:
Ik heb een niet-php vraag maar ik heb geen zin om er een nieuw topic voor te openen
Ik heb net de devbar voor FF opnieuw geinstalleerd en nu krijg ik steeds een foutmelding tijdens het fokken dat de uitvoering van een script te lang duurt. Hoe krijg ik die melding uit?
Ik zag het net jaquote:Op zondag 10 september 2006 16:57 schreef Nevermind het volgende:
[..]
[BUG] Fouten na de update? Deel 2
Variabelen in functies komen alleen in die functie voor.quote:Op maandag 11 september 2006 10:22 schreef Desdinova het volgende:
ik heb een vraagje over een te maken functie. in mijn ervaring doen functies altijd een beetje raar met variabelen enzodus voor ik mijn hersenpan breek wil ik even wat hints.
Het idee is dat in een functie een variabele gecreeerd wordt, bijv. $text. Elke keer als ik de functie aanroep stuur ik iets mee;
creeervar('hoi<br>');
creeervar('hoestnou?');
nou is het de bedoeling dat in de functie creeervar de variabele $text elke keer aangevuld wordt, dus aan het einde van de parsing zou ik dan een variabele $text in de functie moeten hebben, met het hele verhaaltje erin. Vervolgens wil ik die uitlezen, en echoeen.
Nee, dan is hij beschikbaar in 'the global scope' dus in het volledige scriptquote:Op maandag 11 september 2006 11:20 schreef Desdinova het volgende:
aaah dus dat zijn globals.
en als het een global is hoef ik hem zeker niet te returnen? topthanks.
1 2 3 4 | $frikandel=1234*5678; return $frikandel; } |
1 2 3 4 5 6 | { $text =& $GLOBALS['text']; $text .= $bla; // of: $GLOBALS['text'] .= $bla; } |
1 2 3 | $txtwenskaart = "SELECT Bericht FROM kaart WHERE Naam = $bnaam"; echo ($txtwenskaart); |
1 2 3 | $txtwenskaart = mysql_query ("SELECT Bericht FROM kaart WHERE Naam = $bnaam"); echo ($txtwenskaart); |
quote:Op maandag 11 september 2006 16:04 schreef the_disheaver het volgende:
mysql_query(). Kijk op dezelfde pagina hoe je de resultaten kunt echo'en.
1 2 3 4 5 6 7 8 | $bnaam = "Piet"; $query = "SELECT Bericht FROM kaart WHERE naam = ". $bnaam; $result= mysql_query($query); while($row = mysql_fetch_assoc($result)){ echo $row['bericht']; } ?> |
quote:
1 2 3 4 5 6 7 8 | $bnaam = "Piet"; $query = "SELECT Bericht FROM kaart WHERE naam = '". $bnaam."' LIMIT 0,1"; $result= mysql_query($query); $row = mysql_fetch_assoc($result); echo $row['bericht']; ?> |
Totdat hij meer dan 1 record heeft en weer komt vragen hoe dat dan moet.quote:Op maandag 11 september 2006 17:19 schreef Desdinova het volgende:
[..]
[ code verwijderd ]
naar mijn idee logischerwijs gezien minder intensief
1 |
1 2 | $object->verwijder(); |
in php5 heb je destructors, waarbij je gewoon unset($object) kunt doen, hierbij wordt de standaard destructor member, bijv CClass->__destruct() aangeroepen.quote:Op maandag 11 september 2006 17:48 schreef nonzz het volgende:
Wat is netter/beter?:
[ code verwijderd ]
of
[ code verwijderd ]
Inderdaad! Het gaat over het verwijderen van één attribuut van een objectquote:Op maandag 11 september 2006 20:28 schreef SuperRembo het volgende:
Volgens mij gaat dit over het verwijderen van een regel it een database en niet over het verwijderen van het object zelf.
ow, ok. in dat geval zou ik voor numero 1 gaanquote:Op maandag 11 september 2006 20:38 schreef nonzz het volgende:
[..]
Inderdaad! Het gaat over het verwijderen van één attribuut van een object
Maar dan wel $object->remove($id) of object->delete($id).quote:Op maandag 11 september 2006 21:00 schreef ralfie het volgende:
[..]
ow, ok. in dat geval zou ik voor numero 1 gaan![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $output = ""; $output .= "<div id="private_menu_top">n"; $output .= "<table width="100%">n<tr>n<td width="200">n"; $output .= "<a href="../logout.php">Logout</a>n"; $output .= "</td>n<td>n"; $output .= "<P ALIGN="CENTER">Backoffice Webpagina</P>n"; $output .= "</td>n<td width="200" align="right">n"; $output .= "Ingelogd als: " . $login_name . "n"; $output .= "</td>n</tr>n</table>n"; $output .= "</div>n"; print $output; ?> |
Dit zal je probleem niet zijn, maar moeten die n-en geen n-en zijn?quote:Op maandag 11 september 2006 22:58 schreef beerten het volgende:
De code is als volgt
[ code verwijderd ]
Ah, de nieuwe forumsoftware ondersteund geen slash. Quote dit bericht maar eens, en je ziet dat hij er wel staatquote:Op maandag 11 september 2006 23:04 schreef De_Hertog het volgende:
[..]
Dit zal je probleem niet zijn, maar moeten die n-en geen n-en zijn?
dubbel slash dan maarquote:Op maandag 11 september 2006 23:05 schreef De_Hertog het volgende:
[..]
Ah, de nieuwe forumsoftware ondersteund geen slash.
Klopt. De backslash wordt niet correct weergegeven. als ik \n invoer, dus een dubbele backsalsh dan werkt het weer wel. Wijzig ik het bericht dan is de dubbele backslash weer verdwenen in het tekst-edit-venstertje... Heb bug al gepost. Zo te zien dus niet onbekend.quote:Op maandag 11 september 2006 23:05 schreef De_Hertog het volgende:
[..]
Ah, de nieuwe forumsoftware ondersteund geen slash. Quote dit bericht maar eens, en je ziet dat hij er wel staat
Dat kende ik al, van die nummertjesquote:Op maandag 11 september 2006 23:09 schreef beerten het volgende:
[..]
Klopt. De backslash wordt niet correct weergegeven. als ik \n invoer, dus een dubbele backsalsh dan werkt het weer wel. Wijzig ik het bericht dan is de dubbele backslash weer verdwenen in het tekst-edit-venstertje... Heb bug al gepost. Zo te zien dus niet onbekend.
Overigens, de nummertjes: dat zijn de regelnummertjes welke automatisch gegenereerd worden door de forumsoftware. is niet van invloed op de code zelf. Is erg handig om een regel aan te duiden!
Damn het werkt stiekem niet...quote:Op maandag 11 september 2006 23:15 schreef De_Hertog het volgende:
[..]
Dat kende ik al, van die nummertjesOverigens, jouw probleem heeft in feite weinig met PHP of MySQL te maken. Het gaat om de HTML, die toevallig door PHP wordt geschreven, maar dat doet er niet toe. Als ik jou was zou ik dus in het HTML topic (als dat bestaat
) deze vraag stellen. Voor de zekerheid kun je nog even testen wat er gebeurd als je de PHP weg haalt, en dus gewoon een HTML pagina aanbied.
bedankt deze werktquote:Op maandag 11 september 2006 17:19 schreef Desdinova het volgende:
[..]
[ code verwijderd ]
naar mijn idee logischerwijs gezien minder intensief
is produkt niet met een C?quote:Op dinsdag 12 september 2006 09:22 schreef beerten het volgende:
Ik wil in een query alles selecteren dat niet aan mijn slectie criteria voldoet.
SELECT * FROM table WHERE NOT ID=$id AND NOT produktid=$produktid
Wat is de juiste SQL syntax hiervoor?
1 2 3 | [*]twee [*]drie[/list] |
1 |
1 2 3 4 5 6 7 | { $list = '<ul>'; $content = preg_replace( "'\[\*\](.*?)((\[\*\])|\n)'", "<li>\\1</li>", $content ); $list .= $content . '</ul>'; return $list; } |
Roonaan heeft mij hier eens mee geholpen en ik heb die ergens gebruikt.quote:Op dinsdag 12 september 2006 14:37 schreef Nevermind het volgende:
Ik ben bezig met een bbtagparser, en ik wil dit:
[ code verwijderd ]
omzetten in dit:een twee drie
Nu wil ik in tegenstelling tot Fok! wel de [list]-tag gebruiken, om meerdere lijsten in elkaar te kunnen krijgen. Met deze regexp vang ik de [list]-tag af:
[ code verwijderd ]
En wordt deze functie aangeroepen:
[ code verwijderd ]
Ik wil geen sluittag voor de [ *] hoeven in te voeren en dus matchen op newline of een andere [ *]. Dit werkt wel enigzins, maar bij exact het eerste voorbeeld wordt het laatste punt niet geparsed, omdat er geen newline of sluittag zit. Hoe doe ik dit?
leuk met al die parsefoutjes in de nieuwe forumsoftware btw, ik hoop dat ik alles goed heb ge-escaped in het voorbeeld
-edit-
Leuk, paar minuten uittrekken om de vraag op Fok! te posten en dan na een paar seconde er achter komen dat ik gewoon een newline aan $content kan toevoegen
1 |
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 | // Hier moet het emailadres ingevuld worden van de ontvanger van het mail $to = "ABC@DEF.com"; $onderwerp ="contactformulier"; //rest van het bericht opstellen zo komt het in de mail terecht $inhoud_mail = "*********************************************************n"; $inhoud_mail .= "Ingevulde contact formuliern"; $inhoud_mail .= "******************************************************nn"; $inhoud_mail .= "Naam: " . $_POST['naam'] . "n"; $inhoud_mail .= "leeftijd: " . $_POST['leeftijd'] . "n"; $inhoud_mail .= "Woonplaats: " . $_POST['woonplaats'] . "n"; $inhoud_mail .= "textvlak: " . $_POST['text'] . "n"; $inhoud_mail .= "favoriete coureur: " . $_POST['favorietecoureur'] . "n"; $inhoud_mail .= "voetbalclub: " .$_POST['voetbalclub'] ."nn"; $inhoud_mail .= "===================================================nn"; // document die getoond wordt na het versturen van het bericht $urlbedankt = "bedankt.html"; ?> |
1 |
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 | <table width="557" border="0" cellspacing="2" cellpadding="0"> <tr> <td width="46%">Naam</td> <td width="100%"><input type="text" name="naam" size="24" /></td> </tr> <tr> <td width="46%">Leeftijd</td> <td width="100%"><input type="text" name="leeftijd" size="24" /></td> </tr> <tr> <td width="46%">Woonplaats</td> <td width="100%"><input type="text" name="woonplaats" size="24" /></td> </tr> <tr> <td width="46%">textvlak</td> <td width="100%"><textarea name="text" rows="4" cols="40"></textarea></td> </tr> <tr> <td width="46%">favoriete coureur?</td> <td width="100%"><input type="radio" name="favorietecoureur" value="Albers"> Albers</td> </tr> <tr> <td width="46%"></td> <td width="100%"><input type="radio" name="favorietecoureur" value="Doornbos"> Doornbos</td> </tr> <tr> <td width="46%"></td> <td width="100%"><input type="radio" name="favorietecoureur" value="anders" /> Iemand Anders</td> </tr> <tr> <td width="46%"></td> <td width="100%"></td> </tr> <tr> <td width="46%">favoriete voetbalclub?</td> <td width="100%"><select name="voetbalclub" size="1"> <option value="ajax">Ajax</option> <option value="feyennoord">Feyennoord</option> <option value="PSV">PSV</option> <option value="AZ">AZ</option> <option value="RKC">RKC</option> <option value="FCzwolle">FC Zwolle</option> <option value="DESZ4">DESZ4</option> </select></td> </tr> <tr> <td width="46%"></td> <td width="100%"></td> </tr> </table> <input type="submit" name="submit" value="Versturen"><input type="reset" value="leegmaken"> </form> |
Dan zou je OF door middel van een onclick een venster of pagina aan kunnen roepen/aan doorverwijzen, OF je met het door middel van AJAX doen.quote:Op dinsdag 12 september 2006 16:15 schreef IceHeat het volgende:
Ey beginnersvraagje.
Ik heb een een lijst(<table>) met gegevens dat hij uit de MySQL database haalt. Nu heb ik een vinkje(checkbox) "betaald" gemaakt, dat aan gaat als de waarde van betaald op 1 staat.
Nu wil ik als ik klik op het vinkje DIRECT dat hij in MySQL het betaald veld op 1 of 0 zet. Dus zonder het gebruik van een submit button? Iets met JavaScript Onclick="" ??
Ik heb me rot gezocht op google, niks kunnen vinden.
Een onclick zou gewoon een submit zijn. Alleen wordt de button door een onclick vervangen. De page wordt hoe dan ook refreshed.quote:Op dinsdag 12 september 2006 16:28 schreef Tuvai.net het volgende:
[..]
Dan zou je OF door middel van een onclick een venster of pagina aan kunnen roepen/aan doorverwijzen, OF je met het door middel van AJAX doen.
1 2 3 4 5 6 7 8 9 | $handle=opendir('.'); while (false!==($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "<a href=http://www.domeinnaam.nl/$file>$file</a><br>"; } } closedir($handle); ?> |
Je kunt met Ajax gewoon paginas maken in de trand van http://mysite.com/putsomethingindatabase?field=bla&table=mine&value=yournamequote:Op dinsdag 12 september 2006 16:44 schreef Swetsenegger het volgende:
Volgens mij gaat dit ook niet met ajax. Met ajax kan ik wel realtime data uit de database halen, maar kan ik ook schrijven??
Hmz ja dat is waar natuurlijk. Ik kan ook gewoon wat naar een verwerkingspagina sturen via een xmlhttprequest.quote:Op dinsdag 12 september 2006 16:55 schreef ralfie het volgende:
ORDER BY ? Het is geen mysql
je zult inplaats van de filenames the echoen een array moeten aanmaken en deze met array-sorteer functies als sort() sorteren
[..]
Je kunt met Ajax gewoon paginas maken in de trand van http://mysite.com/putsomethingindatabase?field=bla&table=mine&value=yourname
het enige waar je mee moet oppasen is als de url te lang wordt. Ik heb xmlrequests via POST nooit aan de gang gekregen, maar een alternatief voor GET is natuurlijk ook gewoon een cookie meesturen![]()
EDIT: en natuurlijk beveiliging, maar dat spreekt voor zich lijkt me
je stopt de waarden in een array. Die array moet je sorteren. sort() Vervolgens afdrukken.quote:Op dinsdag 12 september 2006 16:48 schreef ruud_fr het volgende:
[ code verwijderd ]
dit is een script voor een opendir
hij geeft nu de bestanden weer als links, alleen niet gesorteerd
weet iemand waar ik ORDER BY toe moet voegen?
1 2 3 4 5 6 7 8 9 10 11 12 | $file_arr = array(); $handle=opendir('.'); while (false!==($file = readdir($handle))) { if ($file != "." && $file != "..") { $file_arr.= "<a href="http://www.domeinnaam.nl/". $file . "">" . $file . "</a><br>"; } } closedir($handle); sort($file_arr); print $file_arr; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $res = mysql_query($sql); if (mysql_num_rows($res) >= 1) { while ($row = mysql_fetch_array($res)) { ?> Naam: <?php echo $row['naam'] . "<br>"; ?> Datum: <?php echo $row['datum'] . "<p>"; echo $row['bericht'] . "<br>"; ... |
quote:Op woensdag 13 september 2006 02:52 schreef woutabest het volgende:
Hoe maak ik zo'n pagina-systeem? Voor een n00b als ik ben ik al redelijk ver, al zeg ik het zelf, maar nergens kan ik iets vinden over links die naar de volgende 10 records gaan in de database.
Nu heb ik dit:
[ code verwijderd ]
Maar ik zit nu dus echt vast :'(
Help? :P
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 | if(!isset($_GET['pos'])) { $pos = 0; } else { $pos = $_GET['pos']; } // De query $query = "SELECT * FROM guestbook ORDER BY date DESC LIMIT $pos,$count"; //navigatie-elementen voor onderaan het gastenboek $new_pos_prev = $pos - $count; $new_pos_next = $pos + $count; if($new_pos_prev < 0) { $link_prev = ""; } else { $link_prev="<a href=guestbook.php?pos=" . $new_pos_prev . "><< vorige</a>"; } if($new_pos_next >= $num_rows) { $link_next = ""; } else { $link_next="<a href=guestbook.php?pos=" . $new_pos_next . ">volgende >></a>"; } |
Ik heb nu al een hoop veranderd aan je variabelen, maar wat ik ook doe, er komt geen link? Ik heb nu 16 rijen in m'n database staan.quote:Op woensdag 13 september 2006 06:42 schreef beerten het volgende:
[..]
[ code verwijderd ]
Dat zou het moeten doen.
Stomme vraag, maar je doet wel een echo ergens?quote:Op woensdag 13 september 2006 07:24 schreef woutabest het volgende:
[..]
Ik heb nu al een hoop veranderd aan je variabelen, maar wat ik ook doe, er komt geen link?
Ja dat welquote:Op woensdag 13 september 2006 08:32 schreef JeRa het volgende:
[..]
Stomme vraag, maar je doet wel een echo ergens?
1 |
Die moet je dus eerst zelf zien te bepalenquote:Op woensdag 13 september 2006 08:32 schreef woutabest het volgende:
[..]
die num_rows, hoe ziet die waar die moet kijken?
Aha.quote:Op woensdag 13 september 2006 08:49 schreef JeRa het volgende:
[..]
Die moet je dus eerst zelf zien te bepalenbijvoorbeeld door een COUNT(*)-statement uit te voeren op je tabel.
De meest simpele template parser schrijf je natuurlijk gewoon zelfquote:Op woensdag 13 september 2006 09:35 schreef Swetsenegger het volgende:
Hoi, ik zoek een SIMPELE template parser.
Dus geen smarty met 600 opties die nooit gebruikt worden
Ja oke, nu ben ik er dus wel achter hoe ik de count-functie moet uitvoeren. Maar nu voel ik me zo n00b, want hoe moet ik daar nu weer een query van maken?quote:Op woensdag 13 september 2006 09:34 schreef the_disheaver het volgende:
a) mysql query maken
b) query uitvoeren
c) data uit de query halen en echo'en
de query lijkt me:
SELECHT COUNT(id) as count FROM gastenboek
quote:Op woensdag 13 september 2006 10:04 schreef JeRa het volgende:
edit: verborgen grondlijn van dit verhaal is natuurlijk ook dat ik geen simpeler templatesysteem dan Smarty ken
quote:Op woensdag 13 september 2006 10:10 schreef woutabest het volgende:
[..]
Ja oke, nu ben ik er dus wel achter hoe ik de count-functie moet uitvoeren. Maar nu voel ik me zo n00b, want hoe moet ik daar nu weer een query van maken? :@
1 2 3 4 5 6 7 8 | $sql = "SELECT COUNT(id) as count FROM gastenboek"; $result = mysql_query($sql); while($value = mysql_fetch_assoc($result)) { $name = $wor[id]; } ?> |
1 2 3 4 5 6 7 8 | $sql = "SELECT COUNT(id) as count FROM gastenboek"; $result = mysql_query($sql); while($value = mysql_fetch_assoc($result)) { $name = $wor[id]; } ?> |
Oke,ben ik weer een stukje wijzer. Maar waar haal je die laatste nu weer vandaan? :Pquote:Op woensdag 13 september 2006 10:40 schreef super-muffin het volgende:
[..]
[ code verwijderd ]
zo ongeveer. Ik ben zelf ook nog maar een beginnen :s)
1 |
1 2 3 4 5 6 | $sql = "SELECT COUNT(id) as aantal FROM gastenboek"; $result = mysql_query($sql); $value = mysql_fetch_assoc($result); echo $value['aantal']; ?> |
volgens mij bedoel je een menu zoals dit?quote:Op woensdag 13 september 2006 10:49 schreef Desdinova het volgende:
[ code verwijderd ]
die $wor[id] moet $value['id'] worden denk ik.
Ik heb een vraagje betreffende een menu en submenu systeem. Ik heb een tabel met menuitems, en een tabel met submenuitems, aan elkaar gekoppeld dmv een kolom MenuID in de tabel Submenuitems.
De gegevens haal ik op via een query met een JOIN on Submenuitems.MenuID = Menuitems.ID. In principe werkt dit prima, alleen krijg ik resultaten op deze manier binnen:
menu1 submenu1
menu1 submenu2
menu1 submenu3
menu2 submenu1
menu3 submenu1
menu3 submenu2
wat ik het liefst zou zien is iets in de vorm van;
menu1
submenu1
submenu2
submenu3
menu2
submenu1
menu3
submenu1
submenu2
ik weet dat dit kan door een query in een while loop van de menuitems te zetten, en daarvoor dus de JOIN achterwege te laten, maar ik vind dat een beetje een 'vieze' en onoverzichtelijke oplossing.
In principe is met wat voorwaardes natuurlijk de JOIN prima te gebruiken, door bijv. menuitems te registreren in een array en te checken met in_array en aan de hand van dat resultaat het hoofdmenuitem wel of niet te echoeen.
Heeft iemand suggesties of snippets van nette overzichtelijke code die hiervoor te gebruiken is?
in principe wel jaquote:Op woensdag 13 september 2006 10:51 schreef Swetsenegger het volgende:
[..]
volgens mij bedoel je een menu zoals dit?
quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { $link_prev = ""; } else { $link_prev="<a href=gastenboek.php?pos=" . $new_pos_prev . "><< vorige</a>"; } if($new_pos_next >= $value['aantal']); { $link_next = ""; } else { $link_next = "<a href=gastenboek.php?pos=" . $new_pos_next . ">volgende >></a>"; } |
Gaat het je om de php of om de vormgeving?quote:Op woensdag 13 september 2006 10:59 schreef Desdinova het volgende:
[..]
in principe wel jaalleen is 2 niveaus voor mij diep genoeg.
nee het gaat om de PHP code.quote:Op woensdag 13 september 2006 11:06 schreef Swetsenegger het volgende:
[..]
Gaat het je om de php of om de vormgeving?
Want het uitschuiven gebeurt gewoon met een unnumbered list en een stukje javascript.
De diepte maakt voor de vormgeving niet uit.
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 | SELECT Menuitems.ID as MenuID, Menuitems.Name as MenuName, Menuitems.Type as MenuType, Menuitems.Msgs as MenuMsgs, Menuitems.Ranking as MenuRanking, Menuitems.Active as MenuActive, Submenuitems.ID as SubmenuID, Submenuitems.MenuID as SubmenuMenuID, Submenuitems.Name as SubmenuName, Submenuitems.Type as SubmenuType, Submenuitems.Msgs as SubmenuMsgs, Submenuitems.Ranking as SubmenuRanking, Submenuitems.Active as SubmenuActive FROM Menuitems JOIN Submenuitems ON Submenuitems.MenuID = Menuitems.ID WHERE Menuitems.UserID = '".$uID."' AND Submenuitems.UserID = '".$uID."' ORDER BY Menuitems.Ranking ASC, Submenuitems.Ranking ASC "; $result = mysql_query($query); regquery($query,mysql_error()); while ($row = mysql_fetch_object($result)){ $menuitemtablerow = " <tr class="menuitemindex" ".$rollover." ".$rollout."> <td class="menuitemindex_type"><img src="images/icons/type_fotoboek.gif"></td> <td class="menuitemindex_menuitem">".$row->MenuName."</td> <td class="menuitemindex_aantalberichten">".$row->MenuMsgs."</td> <td class="menuitemindex_open">".$open."</td> <td class="menuitemindex_bewerk">".$bewerk."</td> <td class="menuitemindex_verwijder">".$verwijder."</td> <td class="menuitemindex_status">".$status."</td> <td class="menuitemindex_volgorde">".$volgorde."</td> </tr> "; $submenuitemtablerow = " <tr class="menuitemsubindex" ".$rollover." ".$rollout."> <td class="menuitemindex_subtype"><img src="images/icons/type_fotoboek.gif"></td> <td class="menuitemindex_submenuitem">".$row->SubmenuName."</td> <td class="menuitemindex_subaantalberichten">".$row->SubmenuMsgs."</td> <td class="menuitemindex_subopen">".$opensub."</td> <td class="menuitemindex_subbewerk">".$bewerksub."</td> <td class="menuitemindex_subverwijder">".$verwijdersub."</td> <td class="menuitemindex_substatus">".$statussub."</td> <td class="menuitemindex_subvolgorde">".$volgordesub."</td> </tr> "; // verwerking in daadwerkelijke gegevensopslag $menuitems[$menuitemtablerow] .= $submenuitemtablerow; |
1 2 3 | $content .= $key.$value; } |
Kijk dan eens hier naarquote:Op woensdag 13 september 2006 11:10 schreef Desdinova het volgende:
[..]
nee het gaat om de PHP code.
had iemand nog een ideetje voor mijquote:Op dinsdag 12 september 2006 15:54 schreef Darkomen het volgende:
ik zou zeggen zet even print_r($_POST); boven aan je script om te zien of alle waardes wel verzonden worden
Zet ff enctype="multipart/form-data" in je form element
En redirecten is niet zo moeilijk.
<?php
header("Location: http://www.php.net/"); /* Stuur de browser naar de PHP website */
exit; /* Zorg dat de code hieronder niet wordt uitgevoerd */
?>
Wat ik ook doe, hij blijft zeggen dat die else fout is!quote:Op woensdag 13 september 2006 11:03 schreef woutabest het volgende:
[..]Tot nu toe heb ik het goede aantal op het scherm gekregen.
Maar nu doettie bijde ifjes weer vervelend:
[ code verwijderd ]
Bijde tweede else geeft hij een foutmelding!En ik zie niet wat er nou fout aan is:
Parse error: syntax error, unexpected T_ELSE in c:domainswouterrrr.nlwwwrootgastenboek.php on line 88
stomme php
Na je tweede if staat een ;quote:Op woensdag 13 september 2006 11:43 schreef woutabest het volgende:
[..]
Wat ik ook doe, hij blijft zeggen dat die else fout is!![]()
Je bedoelt een ideetje voor het .htpasswd probleem?quote:Op woensdag 13 september 2006 11:25 schreef Darkomen het volgende:
[..]
had iemand nog een ideetje voor mij![]()
1 |
pfftt...quote:Op woensdag 13 september 2006 11:57 schreef Giel83 het volgende:
[..]
Na je tweede if staat een ;
Waarschijnlijk ligt daar het probleem, want een unexpected T_ELSE is meestal het teveel hebben van een { } of een ;
XTemplate. Simpel, maar niet geheel featureloos. Precies wat je nodig hebtquote:Op woensdag 13 september 2006 09:35 schreef Swetsenegger het volgende:
Hoi, ik zoek een SIMPELE template parser.
Dus geen smarty met 600 opties die nooit gebruikt worden
ik geloof dat Roonaan ook een template-engina hed geschreven ooit..quote:Op woensdag 13 september 2006 10:36 schreef Swetsenegger het volgende:
[..]
De verborgen grondlijn van mijn verhaal is dat ik eigenlijk niet echt de toegevoegde waarde van een template parser zie omdat ik ze
a. nooit gebruikt heb
b. dus niet goed weet hoe ze toe te passen
c. ik geen zin heb me eerst dagen in template parser opties te verdiepen vooprdat ik er uberhaupt wat mee kan
Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
Ik gebruik Smarty vooral om het feit dat ik dan echt púre PHP kan schrijven en me bezig kan houden met de logica achter m'n code, en de mogelijkheid om stukken template in andere templates te includenquote:Op woensdag 13 september 2006 14:25 schreef Swetsenegger het volgende:
Vooral het wisselen tussen layouts spreekt me aan.
Het zal vast, zoals gezegd heb ik nog geen flauw idee hoe je een template parser lekker toepast.quote:Op woensdag 13 september 2006 14:31 schreef JeRa het volgende:
[..]
Ik gebruik Smarty vooral om het feit dat ik dan echt púre PHP kan schrijven en me bezig kan houden met de logica achter m'n code, en de mogelijkheid om stukken template in andere templates te includen
Wat is daar de lol vanquote:Op woensdag 13 september 2006 14:49 schreef Darkomen het volgende:
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
Om er wat van te lerenquote:Op woensdag 13 september 2006 15:00 schreef Darkomen het volgende:
Kwam zo goed uit voor die site.
Voordeel dat ik dus geen sessiemanagment en template parser hoef te bouwen.
Waarom zou ik een apart user systeem bouwen terwijl er toch al phpbb als forum gebruikt word?
Als je het eenmaal onder de knie hebt zul je niet snel terug gaanquote:Op woensdag 13 september 2006 14:34 schreef Swetsenegger het volgende:
[..]
Het zal vast, zoals gezegd heb ik nog geen flauw idee hoe je een template parser lekker toepast.
Maakt ook niet uit hoor.quote:Op woensdag 13 september 2006 15:15 schreef Darkomen het volgende:
Oww maar dat is geen probleem, een user en sessie management heb ik al eens gebouwtDat is de eerste versie van de site
vol dubbel overbodig werk dus
Een template systeem heb ik dan nog wel niet gebouwt, maar ach kan niet alles te gelijk leren.
Er moet nu eerst een goede werkende site komen
Een paar keer. Tegenwoordig gebruik ik die nauwelijks meer.quote:Op woensdag 13 september 2006 12:50 schreef qu63 het volgende:
[..]
ik geloof dat Roonaan ook een template-engina hed geschreven ooit..
Je gebruikt uberhaupt geen template engine of je eigen template engine niet meer?quote:Op woensdag 13 september 2006 16:12 schreef Roönaän het volgende:
[..]
Een paar keer. Tegenwoordig gebruik ik die nauwelijks meer.
-r-
Beide :-)quote:Op woensdag 13 september 2006 16:22 schreef Swetsenegger het volgende:
[..]
Je gebruikt uberhaupt geen template engine of je eigen template engine niet meer?
kwam 'm tegen op phpfreakz
PHP is de allersnelste parser die je hebt. Voor de rest kan je templates en skinkeuze eenvoudig aansturen via een directory settng of bijvoorbeeld stream wrappers.quote:Op woensdag 13 september 2006 17:27 schreef Swetsenegger het volgende:
templates zonder engine. Leg eens uit? Je moet die templates toch parsen?
Misschien kun je ook eens kijken naar een MVC-framework voor PHP, zoals bijvoorbeeld Code Igniter. Gaat PHP'en en het scheiden van logica en presentatie toch nog ergens op lijkenquote:Op woensdag 13 september 2006 10:36 schreef Swetsenegger het volgende:
Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
kan je een eenvoudig voorbeeld geven in code?quote:Op woensdag 13 september 2006 17:36 schreef Roönaän het volgende:
[..]
PHP is de allersnelste parser die je hebt. Voor de rest kan je templates en skinkeuze eenvoudig aansturen via een directory settng of bijvoorbeeld stream wrappers.
Het messaging systeem heeft bijvoorbeeld include 'theme://content.inbox.panel.php'; De streamwrapper vogelt vervolgens wel uit welke filesystem file daar bij hoort.
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 | class ThemeStream { var $theme_path; var $default_theme_path; var $vardata; var $position; function stream_open($path, $mode, $options, &$opened_path) { if(!preg_match('/^r[bt]?$/', $mode)) { trigger_error('Libraries can be opened for reading only', E_USER_NOTICE); return false; } $this->default_theme_path = DIR_DEFAULT_THEME.'/'.substr($path,8); if(defined('USER_THEME')) { $this->theme_path = DIR_THEMES.'/'.USER_THEME.'/'.substr($path,8); } else { $this->theme_path = $this->default_theme_path; } if(false && defined('SESSION_USER') && SESSION_USER == 11753) { echo '<p>'.$this->theme_path; echo '<br/>'.$this->default_theme_path; echo '</p>'; } if(is_file($this->theme_path)) { $this->vardata = file_get_contents($this->theme_path); } elseif(is_file($this->default_theme_path)) { $this->vardata = file_get_contents($this->default_theme_path); } else { $this->vardata = 'Theme-file not found('.$this->default_theme_path.')'; } $this->position = 0; return true; } function stream_stat() { return array('size' => strlen($this->vardata)); } function stream_read($count) { $ret = substr($this->vardata, $this->position, $count); $this->position += strlen($ret); return $ret; } function stream_write($data) { $left = substr($this->vardata, 0, $this->position); $right = substr($this->vardata, $this->position + strlen($data)); $this->vardata = $left . $data . $right; $this->position += strlen($data); return strlen($data); } function stream_tell() { return $this->position; } function stream_eof() { return $this->position >= strlen($this->vardata); } function stream_seek($offset, $whence) { switch ($whence) { case SEEK_SET: if ($offset < strlen($this->vardata) && $offset >= 0) { $this->position = $offset; return true; } else { return false; } break; case SEEK_CUR: if ($offset >= 0) { $this->position += $offset; return true; } else { return false; } break; case SEEK_END: if (strlen($this->vardata) + $offset >= 0) { $this->position = strlen($this->vardata) + $offset; return true; } else { return false; } break; default: return false; } } } ?> |
1 2 3 4 5 6 7 | php stream_wrapper_register("theme", "ThemeStream") or die("Failed to register theme protocol"); } ?> |
1 2 3 4 5 6 7 | /default/page.normal.php /default/content.article.php /wml/page.normal.php /wml/content.article.php /pda/page.normal.php /pda/content.article.php |
1 2 3 4 5 6 | php include 'config.php'; $article = 'tekst uit de database'; include 'theme://content.article.php'; ?> |
1 2 3 4 5 6 7 | php ob_start(); echo '<div id="article">'.$article.'</div>';; $content = ob_get_clean(); include 'theme://page.normal.php'; ?> |
1 2 3 4 5 6 7 8 9 10 | php define('DIR_THEMES', '/var/www/templates'); define('DIR_DEFAULT_THEME', '/var/www/templates/default'); if($_SESSION['skin'] == 'pda') { define('USER_THEME', 'pda'); } else { define('USER_THEME', 'default'); } ?> |
Heel interessant, bedankt.quote:Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
In principe heb je een class:
[ code verwijderd ]
Die kan je met stream_wrapper_register verbinden met theme://
[ code verwijderd ]
Dit bovenstaande doe je in een aparte file, lets say "streamwrapper.php";
Vervolgens pak je een directory structuur:
Hierin heb je voor de verschillende skins/themes, 2 template files.
[ code verwijderd ]
Nu heb je een article.php die wat content uitleest uit een db, dit in een article-layout past. De article layout doet zijn ding, en roept vervolgens de website template aan met de headers/footer/menu, etc, je kent het wel.
In principe ziet article.php er zo uit:
[ code verwijderd ]
En de template als volgt:
[ code verwijderd ]
En door het consequente gebruik van theme:// hoef je je nergens meer om directories zorgen te maken, dat doet de streamwrapper voor je.
Je config.php bevat vervolgens de code om aan te geven in welke layout/directory de templates moeten worden gezocht:
[ code verwijderd ]
Dit laatste is relatief eenvoudig aan je user management en user preferences te verbinden.
Dit kopiëert vast makkelijker voor Swets, door de forumbugsquote:Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
Ook wat meer uitleg en randinformatiequote:Op woensdag 13 september 2006 20:13 schreef Nevermind het volgende:
[..]
Dit kopiëert vast makkelijker voor Swets, door de forumbugs
http://www.roonaan.nl/read,nl,15,4,0.html
Interessant artikel btw, ik ga me er ook eens in verdiepen als ik weer wat tijd heb
Die heb ik vanmiddag geschreven nav dit topicquote:Op woensdag 13 september 2006 20:13 schreef Nevermind het volgende:
[..]
Dit kopiëert vast makkelijker voor Swets, door de forumbugs
http://www.roonaan.nl/read,nl,15,4,0.html
Interessant artikel btw, ik ga me er ook eens in verdiepen als ik weer wat tijd heb
Maar heel veel meer dan een fancy include is dit toch niet, of zie ik dat verkeerd?quote:Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
[...]
klopt, maar het werkt als een zonnestraalquote:Op woensdag 13 september 2006 20:39 schreef SuperRembo het volgende:
Maar heel veel meer dan een fancy include is dit toch niet, of zie ik dat verkeerd?
Maar waarom de keuze om de templates in PHP te schrijven terwijl zoiets in een Smarty-template imho veel gemakkelijker kan? De voordelen zijn:quote:Op woensdag 13 september 2006 20:45 schreef Roönaän het volgende:
[..]
klopt, maar het werkt als een zonnestraal
Das toch dat forum, dat best wel op firefox lijkt? Te populair door mond op mond reclame, terwijl er betere alternatieven zijn?quote:Op woensdag 13 september 2006 14:49 schreef Darkomen het volgende:
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
- caching system an sich is al overheadquote:Op woensdag 13 september 2006 21:17 schreef JeRa het volgende:
Maar waarom de keuze om de templates in PHP te schrijven terwijl zoiets in een Smarty-template imho veel gemakkelijker kan? De voordelen zijn:
- afgezonderde scope voor je template
- template errors zijn beter af te vangen (itt de vage PHP errors die je af en toe krijgt bij het vergeten van een haakje ergens)
- na compileren wordt een zeer sterk in elkaar gedrukte PHP-code gegenereerd en opgeslagen, die eventueel na uitvoering gecached kan worden
Mogelijk nadeel:
- een kleine overhead (die wellicht ongedaan wordt gemaakt door caching)
Erm, nee? PhpBB ziet er al eeuwen hetzelfde uit, volgens mij al sinds voor het bestaan van Firefox.quote:Op donderdag 14 september 2006 00:50 schreef the_disheaver het volgende:
[..]
Das toch dat forum, dat best wel op firefox lijkt?
eerst verder lezen, dan zeiken.quote:Op donderdag 14 september 2006 00:50 schreef the_disheaver het volgende:
[..]
Das toch dat forum, dat best wel op firefox lijkt? Te populair door mond op mond reclame, terwijl er betere alternatieven zijn?
En wil je hem toch gebruiken, gebruik eens een orginele template!
tot zo ver mijn offtopic bijdrage...
Dan mis je het punt van caching, dat is namelijk overhead toevoegen om de uiteindelijke parse- of serveertijd te verlágenquote:Op donderdag 14 september 2006 06:09 schreef Roönaän het volgende:
[..]
- caching system an sich is al overhead
Ik weet niets van een library ala Smarty in PHP5. Zou wel vreemd zijn, aangezien in PHP de libraries meestal C++ zijn en dus niet i.t.t. Java in de eigen taal alles/veel gedefinieerd heeft. Maar mijn punt was dus dat je bovenop je normále (in PHP geschreven) templates al dus een lichte performancewinst krijgt door die templatesquote:- in elkaar gedrukte php code boeit rerlatief weinig. Belangrijker argument zou kunnen zijn dat je in php5 smarty gecompiled hebt als library. (toch?). Daarnaast zouden beide stukken code meer profiteren van de aanwezigheid van een bytecode cache dan van het wel of niet in elkaar drukken van wat code.
Het gaat niet over dit topic, het gaat erom waarom je voor een dergelijk templatesysteem kiestquote:- qua scoping heb je gelijk als je met meer man aan een project werkt en daadwerkelijk een code-person hebt en een template-person. Voor hoeveel mensen in dit topic geldt dat?
Dat was het, tnxquote:Op woensdag 13 september 2006 12:13 schreef Giel83 het volgende:
[..]
Je bedoelt een ideetje voor het .htpasswd probleem?
Het ziet er goed uit, unix htpasswd maakt volgens mij ook gewoon gebruik van crypt.
$htpasswd_text .= "$user:".crypt($password],CRYPT_STD_DES)."";
alleen je $password staat tussen verkeerde haken, misschien een syntax foutje?
En volgens mij maak je op deze manier ook geen nieuwe regels aan als je een gebruiker toevoegt, dus op het eind nog een rn.
[ code verwijderd ]
Zoiets denk ik?
En staat je htpasswd file wel op de goede locatie?
Edit: Hmz... Hij verwijdert automatisch de slashes van de r n ?
1 2 3 4 5 | case in_array("trigger1",$triggers): //doe dit case in_array("trigger2",$triggers): //doe dat |
Ja duh. Maar smarty cached niet in het geheugen toch? Die parsed je template, maakt er een fancy php-script van en voert die uit. Of overzie ik iets.quote:Op donderdag 14 september 2006 10:11 schreef JeRa het volgende:
Dan mis je het punt van caching, dat is namelijk overhead toevoegen om de uiteindelijke parse- of serveertijd te verlágenje spaart je processor door te cachen en dus geheugen (=snel) te gebruiken (harde schijf, RAM, etc) en dat is zeker sneller dan een script laden, alle benodigde libraries laden en vervolgens de hele boel parsen en outputten.
Maar díe caching valt nog steeds in het niet met het installeren van zend optimizer bijv. Kan je je tijd beter daaraan besteden. Mijn vraag blijft echter staan: in hoeverre is de smarty cache iets anders dan een geoptimaliseerde php file die elke run geparsed moet worden?quote:Ik weet niets van een library ala Smarty in PHP5. Zou wel vreemd zijn, aangezien in PHP de libraries meestal C++ zijn en dus niet i.t.t. Java in de eigen taal alles/veel gedefinieerd heeft.
[quote]
Er staat me vaag bij dat er van smarty een c versie zou zijn gemaakt oid. Maar niet echt concreet hoe/wat/waar/wie/waarom verder.
[quote]
Maar mijn punt was dus dat je bovenop je normále (in PHP geschreven) templates al dus een lichte performancewinst krijgt door die templates
Mja. Op een gegeven moment heeft ook iemand geprezen dat je objecten moest gebruiken in php, waardoor massa's scriptkids zonder na te denken mysql_fetch_object gingen gebruiken.quote:Het gaat niet over dit topic, het gaat erom waarom je voor een dergelijk templatesysteem kiestéén van de meest geprezen eigenschappen van zo'n systeem is dat je je code en templates gescheiden kunt houden, dus waarom niet gebruik maken van een systeem dat inherent is aan dat principe?
Het heeft best wel zin om je te verdiepen in een dergelijk templatesysteem voordat je erover gaat discussiërenquote:Op vrijdag 15 september 2006 13:33 schreef Roönaän het volgende:
[..]
Ja duh. Maar smarty cached niet in het geheugen toch? Die parsed je template, maakt er een fancy php-script van en voert die uit. Of overzie ik iets.
[..]
Maar díe caching valt nog steeds in het niet met het installeren van zend optimizer bijv. Kan je je tijd beter daaraan besteden. Mijn vraag blijft echter staan: in hoeverre is de smarty cache iets anders dan een geoptimaliseerde php file die elke run geparsed moet worden?
Switch zijn alleen voor "of...of...of" constructies, geen "of...en of..." Daarvoor zul je gewoon ifjes en else ifjes voor moeten gebruikenquote:Op vrijdag 15 september 2006 13:16 schreef Desdinova het volgende:
ik heb een raar probleempje met een switch.. ala
[ code verwijderd ]
nou wil ik dus zeg maar dat hij voor elke waarde zijn actie uitvoert. dus als case 1 true is, moet hij die uitvoeren. en als case2 true is, moet hij die uitvoeren. is case1 en case2 allebei true, moet hij ze allebei uitvoeren. maar het lijkt nu alsof hij altijd case1 uitvoert? het zal wel een foutje zijn in de code..
1 2 3 4 5 6 7 8 9 10 11 12 | switch(x) { case 1: echo 'bla'; break; case 2: echo 'hai'; break; case 3: echo 'drie'; } ?> |
Bedoel je niet 'switch'?quote:Op vrijdag 15 september 2006 18:33 schreef ralfie het volgende:
[..]
Selects zijn alleen voor "of...of...of" constructies, geen "of...en of..." Daarvoor zul je gewoon ifjes en else ifjes voor moeten gebruiken
verder ben je waarschijnlijk break vergeten bij iedere case?
[ code verwijderd ]
Zodra een case gematched is wordt de hele mik daaronder gewoon uitgevoerd, zonder naar de andere cases te kijken. Er wordt er altijd maar max 1 gematched
hmm ik had die break dus expres weggelaten zodat hij door zou gaan met de switch. dan worden het ifjes.quote:Op vrijdag 15 september 2006 18:33 schreef ralfie het volgende:
[..]
Switch zijn alleen voor "of...of...of" constructies, geen "of...en of..." Daarvoor zul je gewoon ifjes en else ifjes voor moeten gebruiken
verder ben je waarschijnlijk break vergeten bij iedere case?
[ code verwijderd ]
Zodra een case gematched is wordt de hele mik daaronder gewoon uitgevoerd, zonder naar de andere cases te kijken. Er wordt er altijd maar max 1 gematched
quote:Op vrijdag 15 september 2006 18:33 schreef ralfie het volgende:
[..]
Switch zijn alleen voor "of...of...of" constructies, geen "of...en of..."
1 2 3 4 5 6 7 8 9 10 11 12 | switch ($x) { case 'a': case 'b': echo '$x is a of b'; break; case 'c': case 'd': echo '$x is c of d'; break; } ?> |
maar dat maakt niet uit.. het punt is dat hij ophoudt met de switch na de breakquote:
Bedoel je dat script A en script B niet op dezelfde server staan of wat?quote:Op zondag 17 september 2006 12:40 schreef qu63 het volgende:
is het mogelijk dat als script A wordt geopend, deze een soort 'ping' stuurd naar script B, waardoor script B uitgevoerd wordt(aan de hand van een aantal voorwaarden natuurlijk)?
het moet een soort alternatief voor een cronjob zijn zeg maar. ik wil dus dat script B kijkt hoe laat is het is bijvoorbeeld en dan een soort update uitvoerd..quote:Op zondag 17 september 2006 13:00 schreef JeRa het volgende:
[..]
Bedoel je dat script A en script B niet op dezelfde server staan of wat?
Tja, je kunt bij de aanroep van script A er natuurlijk voor zorgen dat script B wordt uitgevoerd door middel van een exec(), maar dat is bij lange na niet hetzelfde als een cronjobquote:Op zondag 17 september 2006 13:13 schreef qu63 het volgende:
[..]
het moet een soort alternatief voor een cronjob zijn zeg maar. ik wil dus dat script B kijkt hoe laat is het is bijvoorbeeld en dan een soort update uitvoerd..
duidelijk
De dingen die je normaal gesproken in een cronjob zou zetten kun je heel hackish ook in je scripts verwerken zodat bij één op de zoveel aanroepen op je website zo'n 'cronjob' wordt gestart. Maar dat vind ik erg lelijk in vergelijking met een nette cronjobquote:Op zondag 17 september 2006 13:46 schreef Swetsenegger het volgende:
Sowieso is een cronjob maar zelden nodig
exec() werkt toch alleen lokaal?quote:Op zondag 17 september 2006 13:33 schreef JeRa het volgende:
[..]
Tja, je kunt bij de aanroep van script A er natuurlijk voor zorgen dat script B wordt uitgevoerd door middel van een exec(), maar dat is bij lange na niet hetzelfde als een cronjob
Een cronjob ook, maar ik vroeg je zojuist of de scripts op dezelfde server stonden maar je antwoordde nietquote:
1 |
en dan wordt http://www.domein.nl/pad/naar/script.php dus uitgevoerd..quote:Op zondag 17 september 2006 14:50 schreef JeRa het volgende:
[..]
Een cronjob ook, maar ik vroeg je zojuist of de scripts op dezelfde server stonden maar je antwoordde niet
Je kunt het in dat geval doen met een stream wrapper. Zoiets roept een remote scriptje aan:
[ code verwijderd ]
Ik bedoelde meer dat mensen heel vaak een cronjob gebruiken om een scipt om 12 uur 's nachts uit te voeren, terwijl een vaste tijd voor de uitvoer van het script helemaal niet nodig is.quote:Op zondag 17 september 2006 13:57 schreef JeRa het volgende:
[..]
De dingen die je normaal gesproken in een cronjob zou zetten kun je heel hackish ook in je scripts verwerken zodat bij één op de zoveel aanroepen op je website zo'n 'cronjob' wordt gestart. Maar dat vind ik erg lelijk in vergelijking met een nette cronjob
quote:Op maandag 18 september 2006 13:53 schreef Desdinova het volgende:
Ik heb een veld die true of false kan zijn (1 / 0). Is het mogelijk om in 1 query te zorgen dat het veld verspringt van waarde? Dus als het veld 0 is, dat ik een query uitvoer die de waarde 1 maakt, zonder dat ik zelf eerst hoef te checken wat de waarde is en de query daar op aan pas?
1 |
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 | php include("../includes/mysql.inc"); $dbHost = 'localhost'; $dbPass = '*******'; $dbUser = '********'; $dbName = '*******'; $lines = file('http://forum.fok.nl/user/profile/77135'); $regex = '/(d+) (gemiddeld (d+) per dag)/ism'; $i=50; $con = connectDB($dbHost,$dbUser,$dbPass,$dbName); $query1 = RunQuery("SELECT `ID` FROM `posts` ORDER BY 'ID' DESC"); $query1 = mysql_fetch_array($query1); $ID=$query1[0]; $ID=$ID+1; while($i<300) { preg_match_all($regex,$lines[$i],$needle); $needle = split(' ',$needle[0][0]); if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); exit; } $i++; } ?> |
quote:HTTP/1.1 200 OK
Date: Mon, 18 Sep 2006 11:57:05 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-16
X-Powered-By: Replique/v0.3
Set-Cookie: sessid=be4bc33819c5cf161ca8037acb72b520; expires=Sun, 17 Dec 2006 11:57:05 GMT; path=/; domain=.fok.nl
Set-Cookie: user=0; expires=Sun, 17 Dec 2006 11:57:05 GMT; path=/; domain=.fok.nl
Content-Length: 7508
Connection: close
Content-Type: text/html
dankuzeerquote:Op maandag 18 september 2006 13:56 schreef Roönaän het volgende:
UPDATE table SET veld = 1 - veld WHERE record_id = 1;
-r-
dus dan krijg je in php iets als dit?quote:Op maandag 18 september 2006 13:59 schreef JeRa het volgende:
@mschol
Je moet de cookies als volgt doorsturen:
Cookie: user=0; sessid=...
1 2 3 | header("Cookie: user=0; sessid=19cdc7eb0366db98d6ce7483bf6f8b59"); ?> |
Dat kloptquote:Op maandag 18 september 2006 14:38 schreef mschol het volgende:
[..]
dus dan krijg je in php iets als dit?
[ code verwijderd ]
want ik neem aandat je perse een session id wilt hebben
Waar zou ik moeten zoeken als ik wil leren hoe ik dit naar een andere sessie doorstuur?quote:Op maandag 18 september 2006 14:38 schreef mschol het volgende:
[..]
dus dan krijg je in php iets als dit?
[ code verwijderd ]
want ik neem aandat je perse een session id wilt hebben
--
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 | ini_set('memory_limit', '30m'); ini_set('post_max_size', '19m'); ini_set('upload_max_filesize', '18m'); $dir = "/usr/home/user/domains/domain/public_html/webimg/"; $documentname = str_replace(" ","",$_FILES['file']['name']); while (file_exists($dir.$documentname) != 0){ $documentname = imagerename($documentname); } if (move_uploaded_file($_FILES['file']['tmp_name'], $dir.$documentname)){ $ext = strtolower(substr($_FILES['file']['name'],-4)); switch ($ext){ case ".jpg": case "jpeg": $src_img = imagecreatefromjpeg($dir.$documentname); break; case ".png": $src_img = imagecreatefrompng($dir.$documentname); break; case ".gif": $src_img = imagecreatefromgif($dir.$documentname); break; } $origw = imagesx($src_img); $origh = imagesy($src_img); $maxwidth = 180; $maxheight = 180; $new_w = $maxwidth; $diff = $origh / $maxwidth; $new_h = $origh / $diff; $dst_img = imagecreatetruecolor($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); switch ($ext){ case ".jpg": case "jpeg": imagejpeg($dst_img, $dir."_tn".$documentname, 100); break; case ".png": imagepng($dst_img, $dir."_tn".$documentname, 100); break; case ".gif": imagegif($dst_img, $dir."_tn".$documentname, 100); break; } } return $documentname; } |
oh.. dat was makkelijkquote:Op maandag 18 september 2006 15:44 schreef Darkomen het volgende:
imagecopyresized => imagecopyresampled ?
1 |
1 |
mm je vergeet het dakje voor de A..quote:Op maandag 18 september 2006 16:16 schreef Darkomen het volgende:
if( !preg_match( '/([^A-Za-z0-9_]+)/', $a ) ) kijkt of het niet voldoet, de andere of het er wel aan voldoet.
dan moet ik eerst die HTTPClient downloaden/gebruiken.. ik zat meer te denken aan de manier zoals beschreven staat op zend.comquote:Op dinsdag 19 september 2006 00:44 schreef Tiemie het volgende:
@ qu63
http://scripts.incutio.com/httpclient/examples.php
dus:quote:Op dinsdag 19 september 2006 10:23 schreef JeRa het volgende:
@qu63
Nee, dat script staat niet online. Maar ik kan je wel vertellen hoe je het snel kunt doen
Allereerst zorg je zelf voor een ingelogde session ID op FOK!, dan hoef je al geen rekening meer te houden met het via PHP in- en uitloggen. Vervolgens kun je met de Client URL Library Functions van PHP een POST-request doen naar de webserver om zo je profiel te updaten
1 2 3 4 5 | $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=" .$sessionid."&password=".$pass.""); ?> |
dus het stukje php-code is voldoende?quote:Op dinsdag 19 september 2006 11:54 schreef JeRa het volgende:
Ik snap niet echt wat je met dat <form> wilt bereiken. Dat is een formulier dat normaal naar een client wordt opgestuurd, maar dit kun je toch puur via PHP doen? Met CURL kun je dus zonder tussenkomst van een client een POST-request naar een webserver sturen
In principe wel toch?quote:Op dinsdag 19 september 2006 12:01 schreef qu63 het volgende:
[..]
dus het stukje php-code is voldoende?
Zolang je dingen als curl_exec() e.d. niet vergeet wel jaquote:Op dinsdag 19 september 2006 12:01 schreef qu63 het volgende:
[..]
dus het stukje php-code is voldoende?
die lijkt me idd bvest essentieelquote:Op dinsdag 19 september 2006 12:09 schreef JeRa het volgende:
[..]
Zolang je dingen als curl_exec() e.d. niet vergeet wel ja
1 2 3 4 5 6 7 8 9 | header("Referer: http://forum.fok.nl/user/active/77135" color="#007700">); header("Accept-Language: nl"); header("Accept-Encoding: gzip, deflate"); header("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)"); header("Host: forum.fok.nl"); header("Connection: Keep-Alive"); header("Cookie: Enabled=true; sessid=2fb477a49f103394d2ff81a01043f8f2; user=77135"); ?> |
hmz, ik krijg nu steeds #error 47, Referer error: fout sessidquote:Op dinsdag 19 september 2006 12:09 schreef JeRa het volgende:
[..]
Zolang je dingen als curl_exec() e.d. niet vergeet wel ja
Ook de juiste bijbehorende userid opgegeven?quote:Op dinsdag 19 september 2006 13:16 schreef qu63 het volgende:
[..]
hmz, ik krijg nu steeds #error 47, Referer error: fout sessid
ik heb gewoon mijn sessionid opgegeven en als referrer dit topic..
jup,quote:Op dinsdag 19 september 2006 13:18 schreef JeRa het volgende:
[..]
Ook de juiste bijbehorende userid opgegeven?
1 2 3 4 5 6 7 8 9 10 11 12 13 | php $sessionid = "******************"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "***********"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
tijd voor een fok/curl-tutorialquote:Op dinsdag 19 september 2006 13:26 schreef Darkomen het volgende:
Kijk dit is precies wat ik ook weilde leren
Nee, nu stuur je een POST-formulier naar iemands profiel. Daar kan FOK! niets meequote:
ik stuur het naar mijn eigen profiel..quote:Op dinsdag 19 september 2006 13:38 schreef JeRa het volgende:
[..]
Nee, nu stuur je een POST-formulier naar iemands profiel. Daar kan FOK! niets mee
Je moet HTTP-headers definiëren met je sessid & user
de user id klopt 100%quote:Op dinsdag 19 september 2006 13:11 schreef JeRa het volgende:
@mschol
Als dat niet werkt dan moet er wel iets mis zijn met je session of user id. Immers werkt het bij mij zonder problemen door puur deze headers op te geven:
- Host: forum.fok.nl
- Connection: Close
- Cookie: user=0; sessid=...
Oh sorry, je hebt gelijk.quote:Op dinsdag 19 september 2006 13:58 schreef qu63 het volgende:
[..]
ik stuur het naar mijn eigen profiel..
iksnap het niet meer![]()
Klopt, volgens Breuls was het de bedoeling dat het zo werkt op de /user/profile/xxxx pagina. Anders vraag handmatig een nieuwe session ID op en gebruik die?quote:Op dinsdag 19 september 2006 13:59 schreef mschol het volgende:
[..]
de user id klopt 100%
de session ID heb ik uit het fok.nl cookie getrokken op mijn server .
ik ga het nog een keer checken maar hier ben ik 99.9% zeker van dat de sessid klopt
maar de prfiel pagina is ook de enige pagina die dit probleem heeft, Myat bijvoorbeeld werkt zonder problemen
quote:Op dinsdag 19 september 2006 14:04 schreef JeRa het volgende:
[..]
Oh sorry, je hebt gelijk.
De gegevens die je wilt wijzigen stuur je met je POST-data mee. Je session en user ID stuur je met de HTTP-headers mee. Dan moet het werken :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | header("Host: forum.fok.nl"); header("Connection: Keep-Alive"); header("Cookie: Enabled=true; sessid=**********; user=62215"); $sessionid = "**********"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "**********"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
Nee, met header() stel je in PHP de headers in die terug worden gestuurd naar de client (jou dus). Je moet via CURL de headers instellen die PHP naar forum.fok.nl gaat sturenquote:
quote:Op dinsdag 19 september 2006 14:21 schreef JeRa het volgende:
[..]
Nee, met header() stel je in PHP de headers in die terug worden gestuurd naar de client (jou dus). Je moet via CURL de headers instellen die PHP naar forum.fok.nl gaat sturen :) zoek op CURL_OPT_HTTPHEADER.
1 2 3 4 5 6 7 8 9 10 11 12 13 | $sessionid = "**********"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "**********"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch,CURLOPT_HTTPHEADER,Host: forum.fok.nl; Connection: Keep-Alive; Cookie: Enabled=true; sessid=**********; user=62215); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
zou het misschien zo kunnen zijn dat ik daar naar moet kijken?quote:Op dinsdag 19 september 2006 14:21 schreef JeRa het volgende:
[..]
Nee, met header() stel je in PHP de headers in die terug worden gestuurd naar de client (jou dus). Je moet via CURL de headers instellen die PHP naar forum.fok.nl gaat sturenzoek op CURL_OPT_HTTPHEADER.
/ Error #2quote:Op dinsdag 19 september 2006 14:38 schreef mschol het volgende:
[..]
zou het misschien zo kunnen zijn dat ik daar naar moet kijken?
de output van me script is ookwat verragt:
http://fia181-83.dsl.hccnet.nl/fok/profile.html
dat is dus me output...quote:Op dinsdag 19 september 2006 14:43 schreef qu63 het volgende:
[..]
/ Error #2
Deze functie is momenteel niet beschikbaar.
en nog wat stukjes javascript aan de bovenkant van de pagina
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 | php header("Referer: http://forum.fok.nl/user/active/77135" color="#007700">); header("Host: forum.fok.nl"); header("Connection: Keep-Alive"); header("Cookie: Enabled=true; sessid=d6b136ff50d130beb999115c973e5326; user=0"); include("../includes/mysql.inc"); $dbHost = 'localhost'; $dbPass = *****'; $dbUser = '*(****'; $dbName = 'FoK!'; $lines = file('http://forum.fok.nl/user/profile/77135'); $regex = '/(d+) (gemiddeld (d+) per dag)/ism'; $i=1; $con = connectDB($dbHost,$dbUser,$dbPass,$dbName); $query1 = RunQuery("SELECT `ID` FROM `posts` ORDER BY 'ID' DESC"); $query1 = mysql_fetch_array($query1); $ID=$query1[0]; $ID=$ID+1; $file = fopen("profile.html",w); while($i<500) { fwrite($file,$lines[$i]); preg_match_all($regex,$lines[$i],$needle); $needle = split(' ',$needle[0][0]); if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); exit; } $i++; } ?> |
1 |
wat ik zo lees dus ook..quote:Op dinsdag 19 september 2006 14:56 schreef Darkomen het volgende:
Jij geeft ook alleen de headers naar de client als ik het verhaal zo lees.
Dus zou dat met de CURL_OPT_HTTPHEADER. moeten lukken
Jammer dat ik op mn werk zit en het zelf niet ff kan uitzoeken en testen.
Zit ff te lezen, en volgens mij is het ongeveervergelijkbaar als je het via AJAX zou willen doen ?
1 2 3 4 5 6 7 | $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://forum.fok.nl/user/profile/77135"); curl_setopt($ch,CURL_OPT_HTTPHEADER,"Host: forum.fok.nl; Connection: Keep-Alive; Cookie: Enabled=true; sessid=d6b136ff50d130beb999115c973e5326; user=0;"); curl_setopt($ch, CURLOPT_GET, true); curl_exec($ch); ?> |
1 2 3 | $resource = mysql_query($query); result = mysql_fetch_assoc($resource); |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $sessionid = "******"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "******"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: forum.fok.nl","Connection: Keep-Alive","Cookie: Enabled=true; sessid=******; user=62215")); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
waarom werkt mn smiley nietquote:
oeps (nioet van belang voor mij maar dat terzijdequote:Op dinsdag 19 september 2006 16:37 schreef qu63 het volgende:
alleen zo verwijder je wel alle andere gegevens uit je profiel
ik had gewoon nog mn profiel-edit pagina open staan, dus ff wachtwoord doen en klaarquote:Op dinsdag 19 september 2006 16:39 schreef mschol het volgende:
[..]
oeps (nioet van belang voor mij maar dat terzijde)
1 2 3 4 5 6 7 8 9 | $ch = curl_init("http://forum.fok.nl/user/profile/77135"); curl_setopt($ch,CURLOPT_HTTPHEADER, array("Host: forum.fok.nl","Referer: http://forum.fok.nl/user/active/77135" color="#007700">,"Connection: Keep-Alive","Cookie: Enabled=true; sessid=**; user=77135")); curl_setopt($ch,CURLOPT_HTTPGET, 1); $file = fopen("profile.html",w); //curl_setopt($ch, CURLOPT_URL, "http://forum.fok.nl/user/profile/77135"); curl_setopt($ch, CURLOPT_FILE, $file); $lines = curl_exec($ch); ?> |
quote:Op dinsdag 19 september 2006 17:00 schreef Darkomen het volgende:
Mooi! ff jatten :p
Ja, dat lag wel voor de hand jaquote:Op dinsdag 19 september 2006 16:15 schreef mschol het volgende:
@SkaterSam
zet achter je mysql_query() eens or die(mysql_error());
inlezen vanaf fok gaat goed, alleen het inlezen van profile.html (op mijn eigen server) gfaat niet lekker...quote:Op dinsdag 19 september 2006 17:50 schreef Darkomen het volgende:
Hey crapnah ik zie het wel als het werkt
Heee, ik kan natuurlijk gewoon een combo van het controleren van de link en een cronjob om de oude te verwijderen, dan verwijder ik de data uit de table na maximaal 47 uur en 59 minuten. Even kijken of dat kan...quote:Op dinsdag 19 september 2006 18:01 schreef Darkomen het volgende:
Niet, daar is niet direct een oplossing voor.
Gewoon waneer de user de link gebruikt, controleren of hij al meer dan 24 uur erin staat, zo ja, pech, token ongeldig, oude verwijderen, nieuwe aanmaken.
En of in je admin, of ergens anders ff een script erinproppen die de oude verwidjerd
curl_close($ch);quote:Op dinsdag 19 september 2006 18:01 schreef mschol het volgende:
[..]
inlezen vanaf fok gaat goed, alleen het inlezen van profile.html (op mijn eigen server) gfaat niet lekker...
me script raakt in een oneindige loop ofzo...
die stond er bij, waarschijnlijk niet mee gekopieerdquote:Op dinsdag 19 september 2006 18:06 schreef qu63 het volgende:
[..]
curl_close($ch);
zet die er eens bij?
ik zie gewoon je normale profielpagina als ik naar http://fia181-83.dsl.hccnet.nl/fok/profile.html ga hoorquote:Op dinsdag 19 september 2006 18:22 schreef mschol het volgende:
[..]
die stond er bij, waarschijnlijk niet mee gekopieerd
om de een of ander reden lees file() niet het hele bestand in
dit is wat ik in de laatste loop van mijn script terug krijg:
http://fia181-83.dsl.hccnet.nl/fok/posts-reader.php
en dat leest hij in van http://fia181-83.dsl.hccnet.nl/fok/profile.html
hij stikt rond lijntje 76 in de html file...
normaal ging hij zonder problemen naar +300
1 2 3 4 5 6 7 8 | $test_line = '<tr><td style="background:#F5F5F0;"> </td><td>Aantal posts:</td><td>1295 (gemiddeld 2 per dag)</td></tr></tbody>'; preg_match_all ($regex,$test_line,$needle); $i=0; foreach ($needle as $val) { echo "matched: " . $val[$i] . "<br>"; $i++; } |
quote:Op dinsdag 19 september 2006 18:46 schreef Darkomen het volgende:
ik kom er trouwens niet uit met preg_match_all, krijg hierbij 4 keer niks
[ code verwijderd ]
1 |
Wat is het verschil?quote:Op dinsdag 19 september 2006 19:23 schreef Light het volgende:
[..]
[ code verwijderd ]
Niet getest overigens.
zat ik ook al naar te zoeken, maar ik gok op een paar \'s die er uit gehaald zijnquote:
quote:Op dinsdag 19 september 2006 19:41 schreef Darkomen het volgende:
Ik zie het ook niet
Maar mschol weet het welbij hem werkte het schijnbaar
dat wist ik ook idd.. alleen mijn php script leest em niet goed (om een of ander reden)quote:Op dinsdag 19 september 2006 18:32 schreef qu63 het volgende:
[..]
ik zie gewoon je normale profielpagina als ik naar http://fia181-83.dsl.hccnet.nl/fok/profile.html ga hoor
quote:Op dinsdag 19 september 2006 20:24 schreef Darkomen het volgende:
Ik heb gewoon gezegd sleep voor 5 seconden.
moie funcite maar et werkt nog nietquote:Op dinsdag 19 september 2006 20:47 schreef Darkomen het volgende:
haha,lukt het dan wel? laat maar weten, ennuh een peek @ je script
quote:Op dinsdag 19 september 2006 19:27 schreef qu63 het volgende:
hoe kan ik nou het makkelijkst mijn profiel-pagina uitlezen en daarna weer invoeren dmv mijn scriptje van de vorige pagina
regex..quote:Op dinsdag 19 september 2006 21:20 schreef Darkomen het volgende:
Uitlezen kan op de manier die Mschol aangeeft, maar dan moet je gaan zoeken naar de values van de velden die je wilt doorsturen. en dat lukt mij dus nog niet
Hmmja, het forum is wat te fanatiek met backslashes strippenquote:Op dinsdag 19 september 2006 19:33 schreef qu63 het volgende:
[..]
zat ik ook al naar te zoeken, maar ik gok op een paar \'s die er uit gehaald zijn
erg vreemd want bij mij werkt het prima (al een hele tijd...quote:Op woensdag 20 september 2006 09:54 schreef Darkomen het volgende:
Nog geen effect bij mij,
http://borntobewild.satanist.nl/fok2.php
hele code is hier te zien:quote:Op woensdag 20 september 2006 10:33 schreef Darkomen het volgende:
Werkt ook niet roonaan, ik krijg alleen lege array's
array(3) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } }
@mschol, kan jij je code eens in een txt file zetten, volgens mij zit er geen verschil tussen jouw code en de mijne, behalve dat ik dus niks in de db zet en geen controle uitvoer.
Pak ik een andere regex en test text dan werkt het wel?!
hij ligt nu 6 posts achterquote:Op woensdag 20 september 2006 11:27 schreef Darkomen het volgende:
Ik ga hem eens aanpassen naar mijn userid, geen db info, en dan eens kijken wat er gebeurd.
Edit: wazig zo doet hij het dus wel, wat heb ik dan vern**kt?
http://borntobewild.satanist.nl/mschol.php
Bedankt
die code heb ik erin gezet zodat in princiepe altijd je lokale file wordt ingelezen voordat hij wordt overschrevenquote:Op woensdag 20 september 2006 12:04 schreef Darkomen het volgende:
if(!file_exists($local_file))
{
Maar die lokal file bestaat, voor de exit zou nog een unlink kunnen.
Hij is dus idd niet up to date, maar dat maakt niet uit, ging mij er meer om om een werkend voorbeeld te hebben
morgen dusquote:Op woensdag 20 september 2006 00:51 schreef qu63 het volgende:
snap dr geen hout van
morgen maar eens verder kijken
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | while($i<1000) { echo($lines[$i]); if(preg_match_all($regex,$lines[$i],$needle)) { $needle = split(' ',$needle[0][0]); if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); unlink($local_file); //exit; echo("done<br>"); } } $i++; } echo("done_na_while"); ?> |
1 |
dat zou hij idd niet als match terug geven (dan had ik immers ook done teruggekregenquote:Op donderdag 21 september 2006 08:48 schreef Darkomen het volgende:
Wazig, wat is er zo bijzonder bij die regel dat hij er op moet stoppen?
Behalve dan dat het topic nummer een nummerice waarde is, maar dat zou hij toch niet als match moeten zien?
hmmmm in je while check je $needle, en in je if set je opnieuw de $needle. zou het daar fout kunnen gaan?quote:Op donderdag 21 september 2006 07:34 schreef mschol het volgende:
terugkomend op mijn probleem:
met deze code:
[ code verwijderd ]
krijg ik, wanneer profile.html NIET bestaat, alleen done_na_while terug
bestaat profile.html WEL, dan krijg ik done en done_na_while terug
de regel waar hij op stikt is trouwens de regel waar mijn signature staat, om precies te zijn na dit:
[ code verwijderd ]
nee in $needle wordt de match van preg_match_all gezet ( dat is dus bijvoorbeeld: 14252 (gemiddeld 15 per dag) )quote:Op donderdag 21 september 2006 09:17 schreef Desdinova het volgende:
[..]
hmmmm in je while check je $needle, en in je if set je opnieuw de $needle. zou het daar fout kunnen gaan?
1 2 3 | .....onclick="window.open('kaart/index.php?variabele=<?php echo $naam; ?>....... |
1 2 3 4 5 6 7 8 9 10 | php $Bnaam = $_GET['variabele']; ....... ...input name="tekstveld1" type="text" value= php echo $Bnaam; size="30" readonly="true".... ....... ?> |
Als het goed is hoeft dit helemaal niet, de webserver (of PHP) zet de tekens zelf al goed om.quote:Op donderdag 21 september 2006 14:25 schreef mschol het volgende:
en pagina 2 verander je dit:
$Bnaam = $_GET['variabele'];
naar dit:
$Bnaam = urldecode($_GET['variabele']);
ik ga gewoon maar een workaround bouwenquote:Op donderdag 21 september 2006 16:44 schreef Darkomen het volgende:
Noep, ben wel aan het spelen en krijg zelf af en toe de melding dat de file niet goed is, en dan is hij ook 0kb, maar als je hem opent staat alles er wel in?!
trouwens wel de 1000 vervangen voor count($lines)
maar ik krijg nog wel eens een lees fout van de file.
maar na reload vindt hij dus wel het aantal posts.
En daarna 10 keer fout bij inlezen, en die snap ik dus echt niet, die file is er toch?!
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 | <head> <title>New Customer Information</title> </head> <body> <br/><br/> <p align='center'> Please enter your full name and your user name: </p> <form action='process_newcustomer.php' method='post'> <table align='center' width='60%' border='0'> <tr> <td width='150'> Full Name:</td> <td><input type='text' name='fullname' size='30'/></td> </tr> <tr> <td width='150'> User Name:</td> <td><input type='text' name='username' size='30'/></td> </tr> <tr> <td colspan='2' align='center'> <input type='submit' value='Submit'/> </td> </tr> </table> </form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <head> <title>Welcome !!!</title> </head> <body> <?php $fullName = $_POST['fullname']; $userName = $_POST['username']; ?> <br/><br/> <p align='center'> Welcome new customer! You have entered the following information: </p> <p align='center'> Full Name: <b> <?php echo $fullName; ?> </b><br/> User Name: <b> <?php echo $userName; ?> </b><br/> </p> </body> </html> |
Sorry, maar met die antieke versies van Apache en PHP kun je wel enigzins problemen verwachtenquote:Op donderdag 21 september 2006 22:09 schreef Rumboon het volgende:
Ben pas begonnen met PHP en loop nu onverklaarbaar vast.
Versies:
Apache/1.3.19
PHP Version 4.0.4pl1
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |