Vraag & Antwoord

Webprogrammeren & scripting

PHP Replace script << >>

Anoniem
h4xX0r
13 antwoorden
  • Bij de uitkomst van dit script komt er bij de <a href=""> wel een link uit, maar als ik die in gastenboek.dat zet, en dan maak ik er [[[a href=""]]] van, dan replaces hij hem wel, maar dan komt er te staan: &a href=""& te staan, hoe kan dit opgelost worden?
    Alvast bedankt,
    A.P. Troost[quote:ba76336452]<?php
    $start=(isset($_GET['start'])?$_GET['start']:0);
    $gastenboek=Array();
    $gastenboek=file('gastenboek.dat');
    $amount=15;
    if ($start>0) echo '<A href="?view=overzicht&start;='.max(0,$start-$amount).'"><<<</A> ';
    if ($start+$amount<sizeof($gastenboek)) echo ' <A href="?view=overzicht&start;='.($start+$amount).'">>>></A>';
    ?>
    </div><HR color="#FF8F2B" align="center"> <div align="center">
    <TABLE width="100%">
    <?
    $gastenboek=array_reverse($gastenboek);
    for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++) {
    list($name,$email,$date,$url,$message,$ip)=explode('|||',$gastenboek[$i]);
    $message=str_replace('{{{',"\n",$message);
    $message=str_replace('[[[',"<",$message);
    $message=str_replace(']]]',">",$message);
    echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD align="center"><B><A href="'.$url.'" target="_blank">'.$url.'</B></TD><TD align="right"><B>'.$date.'</B></TD></TR>'."\n";
    echo '<TR><TD colspan="3"><SPAN class="SUR">'.str_replace("\n",'<BR>',htmlspecialchars($message)).'</SPAN></TD></TR>'."\n";
    echo '<TR><TD colspan="3"><HR color="#FF8F2B"></TD></TR>'."\n";
    }
    echo "</table>";
    if ($start>0) echo '<A href="?action=overzicht&start;='.max(0,$start-$amount).'"><<<</A> ';
    if ($start+$amount<sizeof($gastenboek)) echo ' <A href="?view=overzicht&start;='.($start+$amount).'">>>></A>';
    ?>[/quote:ba76336452]
  • htmlspecialchars($message) says it all…
  • dan blijft hetzelfde er staan, dat had ik namelijk al geprobeerd
  • Nee, je vervangt de [[[, ]]] etc door < en >, en vervolgens doe je een aantal regels later die htmlspecialchars waarmee je dus die < en > voor hun htmlcode representatie vervangt (& gt en & l t of zoiets, maar dan aan elkaar, maar dat pikt het forum hier niet)…
  • [quote:2fcd758492="Bill Gates"]Nee, je vervangt de [[[, ]]] etc door < en >, en vervolgens doe je een aantal regels later die htmlspecialchars waarmee je dus die < en > voor hun htmlcode representatie vervangt (& gt en & l t of zoiets, maar dan aan elkaar, maar dat pikt het forum hier niet)…[/quote:2fcd758492]hmm, ik snap het niet helemaal maar het geen wat ik nu heb gedaan is in gastenboek.dat <> gedaan en geen [[[]]], en htmlspecialchars($message) gedaan, en de str_replace van [[[ naar < en ]]] naar > verwijderd, maar nu staat het er nog steeds niet goed :-?

    kben wel vervelend he :wink:
  • Zolang je je links op deze manier blijft neerzetten en je later die htmlspecialchars uitvoerd blijven die < natuurlijk vervangen worden door die html representatie. Je moet bij het opslaan die htmlspecialchars al gebruiken (en dan dus die links wel vervangen door [[[ ]]] of zo) en bij het uitlezen niet meer. Alleen dan zal het gaan werken…
  • :o :o
    als ik dan in het bestandje al [[[ zet, en ik dat als ik het opsla ook krijg, dan hoef ik htmlspecialchar toch niet te gebruiken?
  • Even een wedervraag: waarom gebruik je htmlspecialchar?
  • ik hoef het niet te gebruiken, jij begon erover in de 2e reactie 8)
    ik had het alleen eerst geprobeerd omdat ik het op php.net had gevonden
  • [quote:e134946f5e="ap.troost"]ik hoef het niet te gebruiken, jij begon erover in de 2e reactie[/quote:e134946f5e]Omdat jij het in je script gebruikt…
  • ja dat klopt, maar dat was eigenlijk meer om het te proberen, eigenlijk er niet meer uitgehaald :-? …

    kan het ook anders dan??
  • [quote:f7ee881359="ap.troost"]kan het ook anders dan??[/quote:f7ee881359]Dat heb ik hierboven al verteld…
  • ja en dat heb ik ook geprobeerd, maar elke keer blijft "& l t ;" en "& g t ;" er staan, ook als ik hem vanaf het begin inschrijf met htmlspecialchar(), maar dan komt er in het bestandje [[[a href="/index2.php/"]]]
    En als ik hem dan uitlees uiteindelijk zonder htmlspecialchar() dan staat er in die source & l t ;img src=& quot ;/regular_smile.gif/& quot ;& gt ;

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.