rick schreef op 02.11.2009 18:30
waarvan wil je pesies een voorbeeld?
ik ehb hier het bovesnte stuk van de ubb pagina:
<?php
$select_datad = mysql_query("SELECT * FROM leden WHERE member_id = '".$_SESSION['id']."'");
$get_userdatad = mysql_fetch_array($select_datad);
?>
<?php
$select_datadd = mysql_query("SELECT * FROM leden WHERE member_id = '".$_GET['id']."'");
$get_userdatadd = mysql_fetch_array($select_datadd);
?>
<?php
// Highlight functies
function phphighlite_replace($code) {
$code = trim(str_replace("\\\"", "\"", $code));
if(empty($code)) {
return " ";
} else {
array_push($GLOBALS['phphighlite'], $code);
return "".(count($GLOBALS['phphighlite'])-1)."";
}
}
function phphighlite($id, $fixed=1) {
$code = $GLOBALS['phphighlite'][$id];
$splitted = explode("\n", $code);
$grootte = count($splitted)+1;
if(!strpos($code,"<?") && substr($code,0,2)!="<?") {
$code="<?".trim($code)."?>";
$addedtags=1;
}
ob_start();
$oldlevel=error_reporting(0);
highlight_string($code);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
if(!empty($addedtags)) {
$openingpos = strpos($buffer,'<?');
$closingpos = strrpos($buffer, '?');
$buffer = substr($buffer, 0, $openingpos).substr($buffer, $openingpos+5, $closingpos-($openingpos+5)).substr($buffer, $closingpos+5);
}
$page_popup = "";
$return = $buffer;
return $return;
}
// UBB functie
function ubb($bericht) {
// Code
$GLOBALS['phphighlite'] = array("dummy");
$bericht = preg_replace("_<\?(.*?)\?>_ise","phphighlite_replace('<? \\1 ?>')",$bericht);
// HTML wegwerken
$bericht = htmlspecialchars($bericht);
// Enters maken
$bericht = nl2br($bericht);
// URLs met tags maken
ik denk dat het hierin zit
Lees je even mee?
- SQL Injections, gebruik [php]mysql_real_escape_string[/php] of type cast de waarde naar int.
- Foutafhandeling voor query's.
- Commentaar bij doen.
- Geen vage variabele- en functienamen.
- Addslashes of magic_quotes uitzetten.
- Liever geen $GLOBALS gebruiken.
- Wat voor onzin is:
<?php // Kleurtjes
return "".(count($GLOBALS['phphighlite'])-1)."";
?>
dat? Quotes gedoe er omheen is nergens voor nodig.
En waarom wil je het aantal terug geven aan preg_replace?
- Als je een new line wilt dan kan je beter gebruik maken van PHP_EOL, die heeft altijd de goede new line character in zit. \n is namelijk niet altijd een new line.
- Ob_* troep gebruik je liever ook niet. Nergens voor nodig. Ob gebruiken meisjes / dames / vrouwen. Php is niet ongesteld.
En helemaal als je even twee puntjes verder leest! Wat een verkrachting weer.
- Je doet dat [php]error_reporting[/php] gedoe verkeerd. Zie php.net maar: [php]error_reporting[/php].
- Woei, zomaar een [php]highlight_string[/php]? Kijk ook maar eens wat die functie doet. LEER vooral wat dat sukje over return betekend. En wat de parameters zijn die je meek kunt geven.
- Op regel 35 is die [php]empty[/php] en ! niet nodig, aangezien je 1 als [php]bool[/php] kunt beschouwen. Als die $addedtags één is dan is die if goed en wordt die uitgevoerd. Anders niet.
- Wat doe je überhaupt in die if? Je kijkt wat de positie van <? is, en dit ook achterstevoren voor ?
Dan herschrijf je die $buffer met precies hetzelfde wat je er al uit haalt.
- Lege variabele op regel 40. Niet nodig. Ook niet relevant.
- Gekopieer van variabele op regel 42. Niet nodig. Kan direct worden gereturnd.
- Waarvoor die die $GLOBALS nergens voor nodig. En waarom moet er dummy in?
- Die preg_replace echo't een getal. Verder niks. Zoals hierboven al aangegeven.
- Als php wilt highlighten en gewoon de juiste functie gebruikt hoef je geen [php]htmlspecialchars[/php] en [php]nl2br[/php] te gebruiken.
- Ook is deze ubb functie niet afgesloten. Komt er nog wat achteraan o.i.d.?
- Hoe wordt dit aangeroepen.
- Als je hier code plaats, plaats dan relevante code.
Dat eerste gedoe met die query's gebruik je verder niet.
Wederom zie ik geen verband met je aller eerste post. Als je geholpen wilt worden dan moet je ten eerste er zelf wat voor doen. Dus php leren. En ten tweede, je moet ook duidelijk zijn.
Je eerste post staat niet in verband met dit script. Dat is een hele andere regex dan dit.
Tutorials:
http://phptuts.nl/view/39/
http://phptuts.nl/view/41/
http://phptuts.nl/view/1/