Afficher correctement les données Mysql dans un formulaire
Résolu
Nabdz
-
Nabdz -
Nabdz -
Bonjour à tous,
J'ai récemment créé une page "PHP" qui me permet d'enregistrer des données dans une table "articles" avec comme métadonnées (id, titre, description) (integer, varchar, longtext)
L'insertion se déroule bien sous le charset "UTF-8" que ça soit au niveau de la base de données que sur les pages PHP en question.
J'ai donc créé une autre page PHP qui affiche les données d'un article via son "id" sur un formulaire pour les mises à jour, comme suit :
Le problème c'est que si le titre ou la description comporte une apostrophe ( ' ) ou une guillemet ( " ) cela fausse la lecture du formulaire et j'ai des titres qui s'affiche pas correctement sur les champs de saisie du formulaire :(
comment peut-ont éviter ce genre de problème ?
comment peut-on afficher les apostrophes et les guillemets dans les champs de saisie du formulaire ?
Merci d'avance pour votre aide :)
J'ai récemment créé une page "PHP" qui me permet d'enregistrer des données dans une table "articles" avec comme métadonnées (id, titre, description) (integer, varchar, longtext)
L'insertion se déroule bien sous le charset "UTF-8" que ça soit au niveau de la base de données que sur les pages PHP en question.
J'ai donc créé une autre page PHP qui affiche les données d'un article via son "id" sur un formulaire pour les mises à jour, comme suit :
<?php require ("connexion.php"); $id=$_GET["id"]; $requete_article=mysql_query("SELECT * FROM articles WHERE id='$id'"); $datas=mysql_fetch_array($requete_article); $titre=stripslashes($datas["titre"]); $description=stripslashes($datas["description"]); echo "<form action=\"./miseajour.php\" method=\"post\">\n"; echo "<input type=\"text\" name=\"titre\" value=\"".$titre."\">\n"; echo "<textarea name=\"description\" rows=\"5\" cols=\"5\">".$description."</textarea>\n"; echo "<input type=\"submit\" name=\"maj\" value=\"mettre a jour\">\n"; echo "</form>\n"; ?>
Le problème c'est que si le titre ou la description comporte une apostrophe ( ' ) ou une guillemet ( " ) cela fausse la lecture du formulaire et j'ai des titres qui s'affiche pas correctement sur les champs de saisie du formulaire :(
comment peut-ont éviter ce genre de problème ?
comment peut-on afficher les apostrophes et les guillemets dans les champs de saisie du formulaire ?
Merci d'avance pour votre aide :)
A voir également:
- Afficher des données mysql en php dans un formulaire
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Formulaire de réclamation facebook - Guide
- Trier des données excel - Guide
- Afficher appdata - Guide
1 réponse
Bonjour,
Déjà.... il faut arrêter d'utiliser les instructions mysql_* . l'extension mysql est OBSOLETE.
Désormais, il faut utiliser PDO ou MYSQLI. : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Ensuite, pour éviter tes soucis d'affichage (et Uniquement à l'affichage) tu peux utiliser les instructions comme htmlspecialchar ou addslaches
Déjà.... il faut arrêter d'utiliser les instructions mysql_* . l'extension mysql est OBSOLETE.
Désormais, il faut utiliser PDO ou MYSQLI. : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Ensuite, pour éviter tes soucis d'affichage (et Uniquement à l'affichage) tu peux utiliser les instructions comme htmlspecialchar ou addslaches
Merci pour votre réponse.
effectivement, l'extension mysql est obsolète et qu'il faut désormais utiliser PDO ou Mysqli, malheureusement je suis obligé d'utiliser les anciennes versions à cause de la politique de l'entreprise où j'effectue mon stage :(
En tous les cas merci pour l'info, je me suis renseigné sur la fonction "htmlspecialchar" avec ses propriétés et ça marche :)