Professor Hase: Frage zu 'mysql_real_escape_string'

Beitrag lesen

Hallo Forum,

ich habe (zum Üben) ein Beispielformular, das mir mit 'GET' 2 Variablen, einen Vor- und einen Familiennamen, an die Datei vorschau.php übergibt.

Das Ganze habe ich in 2 Versionen versucht.

Version 1 (Auszug aus dem Quellcode):

  
<?php  
$vorname=$_POST['vorname'];  
$familienname=$_POST['familienname'];  
echo"<p>Der Vorname ist ".$vorname.".</p>\n";  
echo"<p>Der Familienname ist ".$familienname.".</p>\n";  
?>  

Version 2 ist _mit_ der 'mysql_real_escape_string'-Funktion (Auszug aus dem Quellcode):

  
<?php  
$vorname=mysql_real_escape_string($_POST['vorname']);  
$familienname=mysql_real_escape_string($_POST['familienname']);  
echo"<p>Der Vorname ist ".$vorname.".</p>\n";  
echo"<p>Der Familienname ist ".$familienname.".</p>\n";  
?>  

Wenn ich jetzt als eine der beiden Variablen ein Anführungszeichen mitgebe, dann gibt Beispiel 1 Folgendes aus =>  /"

Im 2. Fall gibt die Vorschauseite Folgendes aus => ///"

Wieso wird auch im ersten Fall etwas maskiert? Und wieso 3 Maskierungszeichen im 2. Fall? Kann mir das wer näher erklären bitte? Wieso ist im ersten Fall, wo _kein_ 'mysql_real_escape_string' dabei ist, ein Maskierungszeichen? (Wenn das automatisch geschieht, wozu dann die Funktion?)<warnung>Bin aber _völliger_ Anfänger bei der Thematik</warnung>!

Alle 4 Dateien sind xhtml 1.0 valide und utf-8 codiert.

Beispiel 1 ohne der Funktion

Beispiel 2 mit der Funktion

Ich bedanke mich im Voraus für jede Hilfe!

Mit freundlichen Grüßen

Professor Hase