htmlspecialchars Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschicken
ausgeben
betreff
button
code
dank
datum
eintrag
feld
folgenden text
formular
kingdom
kontrolle
lord
nachricht
senden
setting
verwenden
vorbeugen
weitermachen
-
Hallo,
überall wird beschrieben das man bei Formularen "htmlspecialchars" verwenden soll.
Allerdings hab ich keine Ahnung wo ich das in mein Script und wie oft einbauen soll.
Kann mir jemand helfen?
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST" class="contact"> <p>Name:<br /><input type="text" name="Name" class="input"></p> <p>Mail:<br /><input type="text" name="Mail" class="input"></p> <p>Nachricht:<br /><textarea name="Eintrag" cols="40" rows="14" class="textarea"></textarea></p> <p><input type="submit" value="Absenden" name="abschicken"> <input type="reset" value="zurücksetzen" name="reset"></p> </form> <?php // Wenn (der submit Button gedrückt wurde){ dann weitermachen } // Sonst { Einen Fehler ausgeben } if(isset($_POST['abschicken'])){ // Der abschicken button wurde gedrückt. if(empty($_POST['Name']) OR empty($_POST['Mail']) OR empty($_POST['Eintrag'])){ // Wenn eins der Felder nicht ausgefüllt wurde, dann wird darauf hingewiesen, dass man alle Felder ausfüllen muss. print "Bitte füllen Sie alle Felder korrekt aus! \n"; } else{ // Wenn alle Felder ausgefüllt wurden, dann wird das Mail verschickt: // Vorher gebe ich den einzelnen POST Daten kürzere Namen. $Abs_Mail = $_POST['Mail']; $Abs_Name = $_POST['Name']; $Abs_Nachricht = $_POST['Eintrag']; //Nun werde ich eine kleine persönliche Nachricht hinzufügen. $Nachricht = "Hallo $Name!\n\n $Abs_Name hat dir auf deiner Website per Kontaktformular folgenden Text geschickt:\n _______\n$Abs_Nachricht\n_______\n"; //Nun kommt die Mail funktion: $senden = mail($Mail, $Betreff, $Nachricht,"From: $Abs_Mail"); if($senden){ // Wenn die Mail versandt wurde, dann diesen Text ausgeben: print "Ihre Mail wurde erfolgreich an mich versandt. Ich werde so schnell wie möglich antworten! "; } else { //Sonst diesen : print "Ihre Mail konnte leider nicht an mich versandt werden. Probieren Sie es später noch einmal "; } } } else{ //Der abschicken button wurde nicht gedrückt print "Hier können Sie mir ein Feedback über diese Website mailen! \n"; } ?>
<?php // Settings: $Mail = "maurice.woitzyk@gmx.net"; //Mail $Betreff = "Kontaktformular deiner Website"; //Betreff $Name = "Maurice Woitzyk"; //Name $Homepage = "http://www.maurice.kingdom-of-lords.de"; //Website ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
$Abs_Mail = htmlspecialchars( $_POST['Mail']); $Abs_Name = htmlspecialchars($_POST['Name']); $Abs_Nachricht = htmlspecialchars($_POST['Eintrag']);
-
Ich möchte nur noch kurz erklären, warum du das verwenden solltest:
Wenn man Usern die Möglichkeit gibt, Content an dich zu senden, gibt man ihm immer ein bisschen Kontrolle über die Website selbst.
Sollte er z. B. mit dem Formular ein Javascript absenden das nicht escaped wird (also z. B. die < nicht in < umgewandelt wird) und das dann als Kommentar oder so auf der Website angezeigt wird, wird dieses Javascript beim Laden der Seite ausgeführt. Das birgt bestimmte Gefahren, denen du durch htmlspecialchars() vorbeugen kannst.
MfG
Dominic -
Okey danke!
Danke an euch beide habt mir wirklich geholfen! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage