2016-04-18 21 views
1

PHP: Wenn ein Wert, der ein Apostroph enthält, aus einem Formulardruckfeld kommt, ist das Ergebnis eine leere Zeichenfolge (Fall 2 unten)! Wenn derselbe Wert jedoch vom Skript selbst stammt, ist das Ergebnis mindestens eine konvertierte Zeichenkette (Fall 1 unten). Dies ist ein Problem bei der Validierung von Formularübergaben, die Namen mit Apostrophen mit der Methode htmlspecialchars() enthalten. Welche andere Methode könnte ich verwenden?PHP htmlspecialchars() verwendet auf Formular übermittelte Daten mit Apostroph, Rückgabe leer

Beispiel: Textfeld mit dem Text "Olé" eingereicht.

Case 1 (Result: "Olé") 
echo htmlspecialchars("Olé"); 

Case 2 (Result: "") 
echo htmlspecialchars($_POST["firstname"]); 

Antwort

0

Sie möchten vielleicht die htmlentities() Funktion verwenden. Diese Funktion kann für utf-8 Zeichen und mehr verwendet werden. Es konvertiert die Sonderzeichen in HTML und zeigt sie normal an.

Beispiel:

<?php 
$text = "Olé"; 
echo htmlentities($text); 
?> 

Ausgang: Olé

die komplette Liste der Zeichensätze und Beispiele können auf W3Schools betrachtet werden.

+0

Danke! Eigentlich möchte ich den Namen in einer MySql-Datenbank speichern, und "Olé" sollte als "Olé" gespeichert werden und nicht als Olé oder etwas anderes. – David

+0

@David verwendet 'UTF-8', um die Werte in der Datenbank zu speichern. – Jer