Hallo leute stehe gerade vor ein riesen Problem !
schreibe gerade einen chat und alle einträge macht ein PHP script,
erst wollte ich den chat direkt mit Ajax auf die XML Datei zugreifen lassen aber weil ich vor der ausgabe bestimmte header senden muss wegen Catch Control usw. gebe ich die XML Datei mit PHP aus ohne iregend was zu rendern das script senden nur die benötigten header !
leider mußte ich dann festellen, das wenn jemand ein html element in den chat eingibt die ich natürlich vor dem speichern in die xml datei escape werden die element wohl wegen Ajax trotzdem auf dem display angezeigt, obwohl die vor dem eintragen escaped wurden, jetzt weiß ich nicht wie ich diesen groben Fehler beseitigen soll ?
ich brauch dabei unbedingt Hilfe !
das escapen usw. macht meine PHP Klasse automatischen sobald eine Kind Klasse abgerufen wird !
hier:
final private function _Input_($input)
{$ereg = FALSE;
foreach($input as $this->key => $this->value) {
if(is_array($this->value)) {
self::_Input_($this->value);
}else{
if(get_magic_quotes_gpc()){
$this->request[$this->key] = stripslashes($this->value);
}
$this->request[$this->key] = mysql_escape_string(htmlspecialchars($this->value));
}
}
return $this->request;
}
Alles anzeigen
die Codescnipsel der die einträge in die Xml Datei macht sieht so aus:
final public function update($s=0)
{
$morph = array();
$b = false;
$i = 0;
$m = 0;
$p = !$s ? "../xml/main.xml" : "../xml/list.xml";
$xml = simplexml_load_file($p);
foreach($xml->chat as $match) {
if(!$b) {$m++;}else{break;}
foreach($match->attributes() as $room) {
if($room == $this->request['room']) {
$b = true;
break;
}
}
}
switch($s)
{
case 0:
if((!empty($this->request['Nachricht'])) && (isset($_SESSION['user']))) {
$input = $this->request['Nachricht'];
$newMsg = $xml->chat[$m-1]->addChild("message", $input);
$newMsg->addAttribute("user", " ".$_SESSION['user'].": ");
$newMsg->addAttribute("ip", $_SESSION['ip']);
$newMsg->addAttribute("id", $_SESSION['id']);
$newMsg->addAttribute("time", '('.date("H:i:s").')');
$newMsg->addAttribute("font", $this->request['font']);
$newMsg->addAttribute("color", '#'.$this->request['color']);
}
$xml->asXML($p);
break;
case 1:
$gpath = $_SESSION['gesch'] ? 'grafik/quader/boy.gif' : 'grafik/quader/girl.gif' ;
$newMsg = $xml->chat[$m-1]->addChild("user", " ".$_SESSION['user']);
$newMsg->addAttribute("id", $_SESSION['id']);
$newMsg->addAttribute("time", $_SESSION['id']);
$newMsg->addAttribute("ip", $_SESSION['ip']);
$newMsg->addAttribute("sex", $gpath);
$newMsg->addAttribute("st", 'i');
$xml->asXML($p);
break;
}
self::getAlert();
}
Alles anzeigen
Ich versteh absolute nicht wieso, also die daten stehen so in der XML Datei
dieses Element wird nach den abruf über Ajax als Link dargestellt !
Danke, schon einmal !