Sonderzeichen in Formular erlauben!

lumpatzi_v

Grünschnabel
Hallo!

Gleich vorweg: ich bin PHP-Anfänger!

Ich programmiere gerade ein kleines Gästebuch und habe dabei
folgendes (eines von vielen) Problem:

Wenn in einem Eingabefeld ein Sonderzeichen (", ', etc...) eingetragen wird, dann
sollte das auch als solches ausgegeben werden. Wird es aber natürlich nicht.

HTML:
<input name="Name" type="text" size="30" maxlength="255" value="<?php if (isset($_REQUEST['Name'])) echo htmlspecialchars($_REQUEST['Name']); ?>">


Bsp.: aus "Wort'x" wird \"Wort\'x\"
Jedoch sollte die exakte Eingabe wiedergegeben werden.



Ich möchte bei der Eingabe nicht auf Sonderzeichen wie " oder ' verzichten müssen,
da ich diese selbst häufig bei GB-Einträgen benutze.
Auch die Gäste in meinem jetzigen sog. "Free-Guestbook" verwenden diese Zeichen häufig.


Ich hoffe es kann mir jemand helfen.


MfG

lumpatzi v.
 
Hallo,
ich würde die Sonderzeichen noch nicht beim eintragen in die Datenbank umwandeln.

Beim Auslesen kannst du den Gästebucheintrag durch htmlspecialchars() laufen lassen.
 
Hallo!

Erstmal Danke für eure Antworten.


Ich versuche gerade (im Script des Formulars) die Eingaben zu überprüfen (vorerst noch ohne DB, d.h. Affenformular).

Wenn eine Eingabe nicht korrekt ist, dann soll ein Text ausgegeben werden
und die bisher eingetragenen Daten sollen im Formular stehenbleiben.

Die Methode mit stripslashes() funktioniert soweit. Danke.

D.h. ich muss bei jedem meiner Eingabefelder und bei jeder Ausgabe eines $_POST stripslashes() hinzufügen!? Wie hier:

PHP:
<input name="Name" type="text" size="30" maxlength="255" value="<?php if (isset($_REQUEST['Name'])) echo htmlspecialchars(stripslashes($_REQUEST['Name'])); ?>">

PHP:
  ..........   <td width="130"> <input type="submit" class="button" name="absenden" value="Eintrag senden">	
			
			
			</td>
            <td> <input type="submit" class="button" name="vorschau" value="Vorschau"> 
            </td>
          </tr>
        </table></td>
    </tr>
  </table>
</form>  

<?php	

if($_POST['absenden']) {

	if($_POST['Name'] == "")
	echo "Kein Name eingetragen!";
		
}

?>


Beziehungsweise bei der Ausgabe:


PHP:
<?php	

if($_POST['absenden']) 

	if($_POST['Name'] != "") {
	echo stripslashes($_POST['Name']);
		
}

?>


Bitte um Korrektur, sollte diese Ausführung unsauber sein, da ich mir als Anfänger ja nichts irrsinniges einlernen will!


Danke!


MfG

LumPatzi V.
 
PHP:
<?php echo (isset($_REQUEST['Name'])) ? htmlspecialchars(stripslashes($_REQUEST['Name'])) : ''; ?>

PHP:
<?php	

if($_POST['absenden']) {

	if($_POST['Name'] == "") {
	echo "Kein Name eingetragen!";
	}	
}

?>

PHP:
<?php	

if($_POST['absenden']) {

	if($_POST['Name'] != "") {
	echo stripslashes($_POST['Name']);
	}	
}

?>

Entweder ich hab was mit den Augen, irre mich oder du hast was gegen Wurzelklammern und Kurzschreibweisen ;)
 
Zurück