Afficher correctement les données Mysql dans un formulaire [Résolu/Fermé]

Signaler
-
 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 :

<?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 :)

1 réponse

Messages postés
32206
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 avril 2021
3 430
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


Bonjour Jordane45

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 :)