Comment gérer les articles
Résolu
Gl@dior
Messages postés
341
Statut
Membre
-
Gl@dior Messages postés 341 Statut Membre -
Gl@dior Messages postés 341 Statut Membre -
Bonjour,
Je suis en train de concevoir un site qui serait comme un blog, avec plusieurs parties (pages). J'ai fait un script php pour faire un nouvel article qui se met sur la page désiré. Problème : Quand je fait un article trop long, ça ne fonctionne pas.
L'article est enregistré sur la base de donnée dans une table avec l'auteur, la date, le titre.
Faut t'il mettre un type particulier au champ ? j'avais mis TEXT, j'ai essayé avec d'autres mais toujours le même résultat.
J'ai pensé au fichier aussi, mais je vois pas trop comment gérer ça après :s
Merci de m'orienter vers la méthode la plus efficace ...
Je suis en train de concevoir un site qui serait comme un blog, avec plusieurs parties (pages). J'ai fait un script php pour faire un nouvel article qui se met sur la page désiré. Problème : Quand je fait un article trop long, ça ne fonctionne pas.
L'article est enregistré sur la base de donnée dans une table avec l'auteur, la date, le titre.
Faut t'il mettre un type particulier au champ ? j'avais mis TEXT, j'ai essayé avec d'autres mais toujours le même résultat.
J'ai pensé au fichier aussi, mais je vois pas trop comment gérer ça après :s
Merci de m'orienter vers la méthode la plus efficace ...
10 réponses
-
Avec TEXT tu es limité à 65535 caractères.
MEDIUMTEXT : 16 777 215 caractères
LONGTEXT : 4 294 967 295 caractères -
Pourtant mon article est moins long qu'un TEXT. Même avec LONGTEXT, ça ne fonctionne pas.
-
Alors il y a un problème avec ton script PHP.
Tu peux le coller ici et passer l'url. -
Je développe en local pour le moment.
<?php $Titre = $_POST['Titre']; $Auteur = $_POST['Auteur']; $Date = $_POST['Date']; $Univers = $_POST['Univers']; $Article = $_POST['Article']; $level; if($Titre=="" || $Auteur=="" || $Date=="" || $Univers=="" || $Article=="") { echo "Veuillez remplir tout les champs : <a href=newarticle.php>retour</a>"; $level=0; } else { $level=1; } if($level==1) { $serveur = mysql_connect("127.0.0.1","root",""); if (!$serveur) { die('Non connecté : ' . mysql_error()); } $db = mysql_select_db('cinegeeks', $serveur); if (!$db) { die ('Impossible d\'utiliser la base : ' . mysql_error()); } $query = "INSERT INTO articles VALUES('','$Titre', '$Auteur', '$Date', '$Univers', '$Article')"; $result = mysql_query($query); } ?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Fais un echo de la variable contenant l'article pour voir s'il est entier.
-
-
Est-ce que ça ne couperait quand il y a un apostrophe ou un guillemet ?
Essaye avec ça :<?php $Titre = trim($_POST['Titre']); $Auteur = trim($_POST['Auteur']); $Date = trim($_POST['Date']); $Univers = trim($_POST['Univers']); $Article = trim($_POST['Article']); if(empty($Titre) || empty($Auteur) || empty($Date) || empty($Univers) || empty($Article)) { echo 'Veuillez remplir tout les champs : <a href="newarticle.php">retour</a>'; } else { if(@mysql_connect("127.0.0.1","root","")) { if(@mysql_select_db('cinegeeks')) { $query = 'INSERT INTO articles VALUES( "", "'.mysql_real_escape_string($Titre).'", "'.mysql_real_escape_string($Auteur).'", "'.mysql_real_escape_string($Date).'", "'.mysql_real_escape_string($Univers).'", "'.mysql_real_escape_string($Article).'")'; $result = mysql_query($query); } else echo 'Impossible d\'utiliser la base : ' . mysql_error(); } else echo 'Non connecté : ' . mysql_error(); } ?> -
Merci beaucoup, ça fonctionne :)
Mais pourrais tu m'expliquer les changements que tu as fait please ? -
Tout d'abord, j'applique la fonction trim() sur les variables afin de supprimer les espaces en début et fin de chaine.
J'ai retirer les "linkers" car tu n'effectues qu'une connexion à MySQL, c'est inutile.
J'ai également changer la façon de gérer les erreurs.
Et ce qui a résolu le problème, c'est l'utilisation de la fonction mysql_real_escape_string qui permet d'échapper les guillemets. -