Hi,
die o.s. Idee ist gar nicht so schlecht, aber so einfach ist es aber nicht. Vor allem wenn man keinen festen und eingeschränkten Benutzerkreis hat (bsp. in einer Firma, die jede Machine ein Mac ist, etc) ;)
Fast jedes OS hat eigene Escapesequenzen. Wenn das Skript also unter *nix seinen Dienst verrichtet, so wird es unter einem Windows-System oder Macintosh nicht laufen ;) Zumindest nicht korrekt ^^
Hier die Escapesquenezen zur Info:
Linux, Unix, Amiga, etc. : \n
Windows: \r\n
Macintosh: \r
PHP-Code:
<?php
/**
* cleanser function for incoming strings
*
* deletes all unneeded PHP_EOL lines to avoid streching the guestbook
* and returns code converted with htmlentities
*
* @param string $sString: unformated string
* @return string cleaned string
*/
function cleanser($sString)
{
/** mini validation */
if(empty($sString)) {
return false;
}
$sCleanedString = str_replace(array("\r\n", "\r", "\n"), PHP_EOL, $sString);
$aCleanedStrings = array();
foreach(explode(PHP_EOL,$sCleanedString) as $sSingleLine) {
$sSingleLine = trim($sSingleLine);
/** do not accept empty lines */
if(empty($sSingleLine)) {
continue;
}
array_push ($aCleanedStrings, $sSingleLine);
}
$sCleanedString = implode(PHP_EOL, $aCleanedStrings);
$sCleanedString = htmlentities($sCleanedString);
unset ($aCleanedStrings);
return $sCleanedString;
}
$sText = cleanser($_REQUEST['kommentar']);
?>