PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP/HTML Deaktivieren


Gast
2005-03-22, 17:03:24
Hallo!
ich habe ein Gästebuch mittels php realisiert und möchte nun dass alle php und html Tags vor dem Posten durch das Gästebuhc gestrichen werden.

Aus:
<a href="lalala">lol</a> wird einfach nur lol

Wie geht das?

darph
2005-03-22, 17:09:23
/** Simply replaces all <,> characters by their HTML conform codes
* to prevent hacking (X)HTML into submitted texts.
* Can be extended to code all "special characters" but this
* should do the job.
*/
function xmlDecode($xmlString)
{
$xmlString = str_replace("<", "&lt;", $xmlString);
$xmlString = str_replace(">", "&gt;", $xmlString);
return $xmlString;
}

Gast
2005-03-22, 17:17:26
kannst mich für doof halten, aber wie bau ich das denn jetzt rein. ich bin leider nch net so der profi dadrin, deshalb hat mich das Gästebuhc viel Zeit gekostet...

<?PHP
$kommentar = stripslashes ($kommentar);
$kommentar = trim ($kommentar);
$name = stripslashes ($name);
$name = trim ($name);

if (empty($name))
{ echo "Sie haben Ihren Namen nicht eingegeben.<br />";
echo "Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und den Fehler zu beheben."; }

else
if (empty($kommentar))
{ echo "Sie haben kein Kommentar eingegeben.<br />";
echo "Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und den Fehler zu beheben."; }

else {
$i=1;
$gbfile=fopen("comments.txt","r");
while (!feof($gbfile)) {
$zeile[$i]=fgets($gbfile,10000);
$i++;
}
fclose($gbfile);

$name2="<b>Name:</b> ".$name."<br />";

$j=1;
$gbfile=fopen("comments.txt","w");
fputs ($gbfile,"$name2$kommentar<hr />\n");
while ($j<$i) {
fputs ($gbfile,"$zeile[$j]");
$j++;
}
fclose($gbfile);

echo "Dein Kommentar wurde gespeichert.<br /><a href=\"comments.php\">Zurück</a> zu den Kommentaren";
}
?>
</div>

darph
2005-03-22, 17:38:25
<?PHP
/** Simply replaces all <,> characters by their HTML conform codes
* to prevent hacking (X)HTML into submitted texts.
* Can be extended to code all "special characters" but this
* should do the job.
*/
function xmlDecode($xmlString)
{
$xmlString = str_replace("<", "&lt;", $xmlString);
$xmlString = str_replace(">", "&gt;", $xmlString);
return $xmlString;
}


$kommentar = xmlDecode($kommentar);
$kommentar = stripslashes ($kommentar);
$kommentar = trim ($kommentar);
$name = stripslashes ($name);
$name = trim ($name);


Einfach so. ;)

MadMan2k
2005-03-22, 22:07:53
wieso selber schreiben?
http://www.php.net/manual/de/function.htmlspecialchars.php ;)

Gast
2005-03-23, 08:40:51
Ich hab jetzt noch ein wenig gegoggelt und hab dann einfach bveim Kürzen der nachrichten folgendes eingefügt:

$kommentar = strip_tags($kommentar);

geht 1a. Trotzdem danke, aber die erste Lösung hab ich nicht verstanden und eingebaut wie von darph beschrieben funktionierte sie auch nicht.