mysql_real_escape_string + htmlentities

Ciao a tutti,
non ho ben capito l'utilizzo di queste funzioni per evitare brutte sorprese (mysql_real_escape_string + htmlentities + strip_tags)

un codice scritto in questo modo è corretto? 

if (isset($_GET['id'])) {

$id = mysql_real_escape_string($_GET['id']);
$query_rs_shop = "SELECT  shop.id, shop.articolo, shop.descrizione FROM negozio WHERE id = '$id'";
$rs_shop = mysql_query($query_rs_shop, $conn) or die(mysql_error());
$row_rs_shop = mysql_fetch_assoc($rs_shop);
}
echo htmlentities($row_rs_shop['articolo']);

echo "".strip_tags($row_rs_shop['descrizione'], '<strong><br /><i><em><p><a><h1>')."";

Grazie a tutti :)

inviato 4 anni fa
cloude
modificato 4 anni fa
X 0 X

Il mysql_real_escape_string estrae tutti i caratteri speciali dalla query e li stampa.

L'htmlentities converte i caratteri da una query in codice HTML (Attenzione, non PHP)

strp_tags invece si riferisce alla striscia di tag HTML e PHP in una stringa!

Per quanto riguarda il codice, non sembra che ci siano errori di sintassi!

risposto 4 anni fa
Clear
Clear
21
grazie per la risposta Clear. Ma per stampare a video i dati , va bene così oppure dovrei fare in questo modo echo strip_tags(htmlentities($row_rs_shop['articolo'])); e ancora echo "".strip_tags(htmlentities($row_rs_shop['descrizione'], '<strong><br /><i><em><p><a><h1>')).""; grazie :)cloude 4 anni fa
X 0 X

strip_tags(htmlentities($row_rs_shop['articolo'])); Così è giusto

risposto 4 anni fa
Clear
Clear
21
@Clear invece facendo così strip_tags(htmlspecialchars($row_rs_shop['articolo'])) va bene comunque? perché con htmlentities ho la formattazione errata dei caratteri à , è , ì . Eppure ho sia il meta impostato in utf8 in questo modo: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> e sia i campi che il database sono in utf8_unicode_cicloude 4 anni fa
X 0 X

htmlentities? o.O Non c'è nessun riferimento a htmlentities nel tuo codice!

Comunque assicurati che ci sia il charset giusto nelle impostazioni sia del database che delle tabelle ;)

risposto 4 anni fa
Clear
Clear
21
sia le tabelle che tutti i campi li ho impostati su utf8_generali_ci, e il meta tag è <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> forse deve esserci qualche altra impostazione nel database per risolvere il problema? p.s. grazie per il tuo aiuto ;)cloude 4 anni fa
X 0 X

Ovvio, devi settare uft8 anche nelle impostazioni del database e anche nelle impostazioni delle tabelle

risposto 4 anni fa
Clear
Clear
21
ho settato Collation "utf8_unicode_ci" sul database, sulle tabelle e i campi, ma ho sempre lo stesso problema. Le lettere accentate "à" le stampa a video così ¨Ãcloude 4 anni fa
Assicurati che ci sia lo stesso uft8 anche nei meta tag. Se il problema persiste, prova un altro charset!Clear 4 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda