Afficher correctement les données Mysql dans un formulaire

Résolu/Fermé
Nabdz - 19 déc. 2018 à 10:53
 Nabdz - 19 déc. 2018 à 11:42
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

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
19 déc. 2018 à 11:00
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


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