Sonderzeichen übersetzen

FAD

Mitglied
Hi.
Gibt es eine Möglichkeit einen Gästebucheintrag so zu übersetzen, dass Sonderzeichen wie = <>, usw. keine "Schaden anrichten"?

Ich sende die Einträge so an die php-Datei:
PHP:
on (release) {
	if (Email.indexOf("@") != -1 && Email.indexOf(".") != -1 && Name != "" && Comments != "") {
		Submit = "Yes";
		NumHigh = 10;
		NumLow = 0;
		loadVariables("GuestBook.php", scrollTF, "POST");
		mc.Status = "Viele Dank für Deinen Eintrag";
	}
	if (Name == "") {
		mc.Status = "Dein Name fehlt!";
	}
	if (Comments == "") {
		mc.Status = "Dein Eintag fehlt!";
	}
	if (Email.indexOf("@") == -1 || Email.indexOf(".") == -1) {
		mc.Status = "Falsche email";
	}
}
 
Hi,

vor dem Absenden würde ich die Daten mit escape maskieren und auf php-Seite dann mit urldecode wieder umwandeln. Damit diese Zeichen "gefahrlos" in html-Seiten angezeigt werden können, solltest Du die Zeichenketten vor der Ausgabe (in PHP) mit htmlentities() in Entitäten umwandeln.

Gruß
.
 
Also das Ganze soll nicht in html ausgegeben werden.

Flashgästebuch > PHP > sql-Datenbank > PHP > Flashgästebuch
 
... dann müsste ich bitte mal den Teil sehen, in dem die Einträge in Flash geladen und angezeigt werden.

Generell kannst Du den Text auch "escaped" speichern und erst direkt vor der Anzeige in Flash in etwas lesbares umwandeln.

Gruß
.
 
PHP:
this._lockroot = false;
var Name = "";
var Comments = "";
var Email = "";
NumLow = 0;
NumHigh = 10;
loadVariables("GuestBook.php?NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999), scrollTF);
scrollTF.GuestBook.scroll = "0";
scrollTF.GuestBook = Name;
stop();

Hab mir auch gerade mal den Befehl escape und unescape in der Hilfe angekuckt. Ich glaube das ist das was ich suche, werd nur aus den Beispielen nicht richtig schlau.

Kann es sein, dass man für jedes Zeichen einzeln angeben muss in was es übersetzt werden soll? Das kann doch nicht sein, oder?
 
Naja, daraus ist allerdings noch nicht zu ersehen, wie der Text schlussendlich ausgegeben wird. Ich Vermute, es handelt sich um ein html-Textfeld mit Textfeldvariable?

Zwei Möglichkeiten:

- Du wandelst die Inhalte auf php-Seite vor dem Versenden mit htmlentities um

oder

- Du suchst mal im Forum nach "parseET" und verwendest diese Funktion quasi umgekehrt: Zeichen wie "<", ">", "&" werden dann in Ihre Pendants "&lt;" "&gt;", "&amp;" umgewandelt.

Gruß
.
 
Ich hab mal nach "parseET" gesucht. Hab da auch deinen Beitrag gefunden. Allerdings bezieht sich dieser auf Umlaute. Ich hab aber das Problem mit Sonderzeichen wie = > < ... Hab auch noch mal in der Hilfe von Flash und Dreamweaver gekuckt aber kann nichts finden was ich versteh ;(

Das ist meine php-Datei:
PHP:
<?php 
require 'mysql.connect.php'; 
    if( !empty($_POST) ) { 
        $query = ' 
            INSERT INTO 
                    `gaestebuch` 
              SET 
                    `Name`     = "'.mysql_real_escape_string($_POST['Name']).'", 
                    `Email`    = "'.mysql_real_escape_string($_POST['Email']).'", 
                    `Comments` = "'.mysql_real_escape_string($_POST['Comments']).'", 
                    `date`     = "'.time().'" 
            '; 
        mysql_query($query) 
            or die('Error: '.mysql_error()); 
    } 
$MailTo="test@test.de"; 
	$message = "Eintrag von: ".$Name."          Email: ".$Email."          Nachricht: ".$Comments; 
	mail($MailTo, "Neuer Gaestebuch Eintag", $message, "From: $Email"); 
?>
<?php   
    require 'mysql.connect.php';   
    if( !empty($_POST) ) {  
mysql_query("INSERT INTO gaestebuch SET  Name= '".mysql_real_escape_strin($_POST['Name'])."',  Email   = '".mysql_real_escape_string($_POST['Email'])."',  Comments = '".mysql_real_escape_string($_POST['Comments'])."',  date     = '".time()."'  ");  
    }   
$gbook = array(); 
$result = mysql_query("SELECT * FROM gaestebuch ORDER BY ID DESC");  
while($daten = mysql_fetch_assoc($result)) { 
$gbook[] = "Name: ".$daten['Name']."\n<br>Email: <a href=\"mailto:".$daten['Email']."\">".$daten['Email']."</a>\n<br>Kommentar: ".$daten['Comments'] ."\n<br>".$daten['date']."\n<br>\n<br>";  
}  
$NumEntries = count($gbook);

	print "&TotalEntries=$NumEntries&NumLow=$NumLow&NumHigh=$NumHigh&GuestBook=";
	for ($i = $NumLow; $i < $NumHigh; $i++) {
	print $gbook[$i];
		if (!$gbook[$i]) {
		Print "<br><b>= E N D E =</b>";
		exit;
		}
	}
?>

Habs auch schon mit ...
PHP:
on (release) {
	if (Email.indexOf("@") != -1 && Email.indexOf(".") != -1 && Name != "" && Comments != "") {
		Submit = "Yes";
		NumHigh = 10;
		NumLow = 0;
		escape(Email);
		escape(Name);
		escape(Comments);
		loadVariables("GuestBook.php", scrollTF, "POST");
		mc.Status = "Viele Dank für Deinen Eintrag";
	}
	if (Name == "") {
		mc.Status = "Dein Name fehlt!";
	}
	if (Comments == "") {
		mc.Status = "Dein Eintag fehlt!";
	}
	if (Email.indexOf("@") == -1 || Email.indexOf(".") == -1) {
		mc.Status = "Falsche email";
	}
}
... probiert. Da ändert sich aber nichts.
 
Zurück