Comment gérer les articles

Résolu
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   -  
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   -
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 ...


10 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Avec TEXT tu es limité à 65535 caractères.
MEDIUMTEXT : 16 777 215 caractères
LONGTEXT : 4 294 967 295 caractères
0
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   78
 
Pourtant mon article est moins long qu'un TEXT. Même avec LONGTEXT, ça ne fonctionne pas.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Alors il y a un problème avec ton script PHP.
Tu peux le coller ici et passer l'url.
0
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   78
 
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);      
       }
       ?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Fais un echo de la variable contenant l'article pour voir s'il est entier.
0
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   78
 
Oui il est en entier.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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();
}
?>
0
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   78
 
Merci beaucoup, ça fonctionne :)

Mais pourrais tu m'expliquer les changements que tu as fait please ?
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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.
0
Gl@dior Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   78
 
ok. merci bien :)

bonne soirée.
0