Comment gérer les articles

Résolu
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 ...

10 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Avec TEXT tu es limité à 65535 caractères.
    MEDIUMTEXT : 16 777 215 caractères
    LONGTEXT : 4 294 967 295 caractères
    0
  2. Gl@dior Messages postés 341 Statut Membre 78
     
    Pourtant mon article est moins long qu'un TEXT. Même avec LONGTEXT, ça ne fonctionne pas.
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Alors il y a un problème avec ton script PHP.
    Tu peux le coller ici et passer l'url.
    0
  4. Gl@dior Messages postés 341 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

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

    bonne soirée.
    0