1.4k Aufrufe
in Skripte(PHP,ASP,Perl...) von computerfreaki Mitglied (219 Punkte)
Hallo,

habe folgendes Problem:
Ich habe auf meiner HP eineShoutbox (Chatroom). Diese funktioniert auch prima, aber heute ist mir aufgefallen, wenn ich bei der Nachricht oder beim Namen ein & eingebe wird dieses und die Zeichen dahinter nicht ausgegeben.
Also wenn ich jetzt eingebe:
Also ich & hr. Mustermann
wird dann nur
Also ich
in der DB gespeichert

Hier der Code für das PHP-Skript, das die Daten in die DB schreibt:

<?php
// Einstellungen laden
include("config.php");

// Verbindung zu mySQL aufbauen
$dblink = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$dblink) {
die('Keine Verbindung zur Datenbank möglich.');
}

// Datenbank auswählen
$dbselected = mysql_select_db($db, $dblink);
if (!$dbselected) {
die ('Kann Datenbank nicht erreichen.');
}

// Neuen Datensatz speichen
$name = htmlentities(mysql_real_escape_string($_POST["name"]));
$nachricht = htmlentities(mysql_real_escape_string($_POST["message"]));
$browser = $_SERVER['HTTP_USER_AGENT'];
$ip_adress =$_SERVER['REMOTE_ADDR'];
$result = mysql_query("INSERT INTO $dbtable (name, message, ip, browser) VALUES ('$name','$nachricht','$browser','$ip_adress')");
if (!$result) {
die('Ungueltige SQL-Query');
}

// Verbindung zur Datenbank schließen
mysql_close($dblink);

?>

Einfach selbst mal ausprobiern...

mfg
computerfreaki

2 Antworten

0 Punkte
von supermax Experte (4.8k Punkte)
Warum speicherst du die Daten nicht ohne die Umwandlung mittels htmlentities() in der DB und führst die Umwandlung erst bei der Ausgabe durch?

Und wenn schon würde ich die Reihenfolge umdrehen, also
$name = mysql_real_escape_string(htmlentities($_POST["name"]));
$nachricht = mysql_real_escape_string(htmlentities($_POST["message"]));
0 Punkte
von computerfreaki Mitglied (219 Punkte)
Danke für die Antwort.
Problem gerade eben gelöst. Ich muss die Daten mit Javascript escapen und dann in die DB schreiben.

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...