[PHP] Problème de POST

Résolu
Bonjour, j'ai un problème avec mon POST,

Je vous explique:
Je souhaite faire un systeme d'administration pour mes articles, J'ai concu d'aprés un tutorial une page de POST et une page qui recois les POST. La premiere page a l'air de ne pas avoir de problèmes sauf que la deuxieme n'arrive pas à prendre les infos et les inscrire dans ma table! Pourquoi !! Je ne sait pas.
Je vous montre

if (isset($_POST['titre'], $_POST['contenu'], $_POST['auteur'], $_POST['id']) AND !empty($_POST['titre']) AND !empty($_POST['contenu']) AND !empty($_POST['auteur']))
{
        // on aseptise les données que le visiteur a rentrées dans le formulaire sur liste_news.php
        $titre = htmlentities($_POST['titre'], ENT_QUOTES);
        $contenu = htmlentities($_POST['contenu'], ENT_QUOTES);
        $auteur = htmlentities($_POST['auteur'], ENT_QUOTES);
        $id = intval($_POST['id']);
       
        if ($id == 0) // On écrit une nouvelle news
        {
                mysql_query('INSERT INTO article (timestamp_validation, titre, contenu, auteur) VALUES ('.time().', "'.$titre.'", "'.$contenu.'", "'.$auteur.'", 1)');
        }
        else // On modifie une news
        {
                mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.', auteur="'.$auteur.'" WHERE id='.$id);
        }
}


2 jours dessus et pas de solution !! Merci d'y jeter un oeil !
Configuration: Windows XP
Firefox 2.0.0.6

11 réponses

  1. Bien joué

    Ca rentre dans la table ! !!

    Ah deux jour pour un 1 qui était dans le tuto !!

    Bon jvé me tirer une balle que ma vie en soit reduite à un p**** de 1 !!!!!

    Ah merci beaucoup les gars !!
    1. Jy suis presque mais c'est pas encore ca qui coince !

      L'erreur ne peut que se trouver dedans

      echo("etape 4");
                      mysql_query('INSERT INTO article (timestamp_validation, titre, contenu, auteur) VALUES ('.time().', "'.$titre.'", "'.$contenu.'", "'.$auteur.'", 1)');
              }
              else // On modifie une news
              {
      echo("etape 5");
                      mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.'", auteur="'.$auteur.'" WHERE id='.$id);
              }
      }
      echo("etape 6");
      1. mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.'", auteur="'.$auteur.'" WHERE id='.$id);
        Tu as oublié des guillemets après $contenu.'
        1. Bonjour,
          if (isset($_POST['titre']) && isset($_POST['contenu']) && isset($_POST['auteur']) && isset($_POST['id']) && !empty($_POST['titre']) && !empty($_POST['contenu']) && !empty($_POST['auteur']))
          {
                  // on aseptise les données que le visiteur a rentrées dans le formulaire sur liste_news.php
                  $titre = htmlentities($_POST['titre'], ENT_QUOTES);
                  $contenu = htmlentities($_POST['contenu'], ENT_QUOTES);
                  $auteur = htmlentities($_POST['auteur'], ENT_QUOTES);
                  $id = intval($_POST['id']);
                 
                  if ($id == 0) // On écrit une nouvelle news
                  {
                      mysql_query( 'INSERT INTO article (timestamp_validation, titre, contenu, auteur) VALUES ('.time().', "'.$titre.'", "'.$contenu.'", "'.$auteur.'", 1)') or die('Erreur : '.mysql_error());
                  }
                  else // On modifie une news
                  {
                      mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.', auteur="'.$auteur.'" WHERE id='.$id) or die('Erreur : '.mysql_error());
                  }
          }
          ne tourne pas? Quelle erreur retourne ce code?
          1. Ce code retourne Erreur : Column count doesn't match value count at row 1

            Je ne comprend pas de trop !
        2. Contributeur
          non.

          echo("etape 1");
          if (isset($_POST['titre'], $_POST['contenu'], $_POST['auteur'], $_POST['id']) AND !empty($_POST['titre']) AND !empty($_POST['contenu']) AND !empty($_POST['auteur']))
          {
          echo("etape 2");
                  // on aseptise les données que le visiteur a rentrées dans le formulaire sur liste_news.php
                  $titre = htmlentities($_POST['titre'], ENT_QUOTES);
                  $contenu = htmlentities($_POST['contenu'], ENT_QUOTES);
                  $auteur = htmlentities($_POST['auteur'], ENT_QUOTES);
                  $id = intval($_POST['id']);
          echo("etape 3");       
                  if ($id == 0) // On écrit une nouvelle news
                  {
          echo("etape 4");
                          mysql_query('INSERT INTO article (timestamp_validation, titre, contenu, auteur) VALUES ('.time().', "'.$titre.'", "'.$contenu.'", "'.$auteur.'", 1)');
                  }
                  else // On modifie une news
                  {
          echo("etape 5");
                          mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.', auteur="'.$auteur.'" WHERE id='.$id);
                  }
          }
          echo("etape 6");

          comme ça, en fonction de ce qui sera affiché, tu verras par où ça passe.
          1. isset($_POST['titre'] echo("etape #");, $_POST['contenu'] echo("etape #");, $_POST['auteur'], $_POST['id'])

            Comme ca ? J'ai pas bien compris ?! Les tests ?
            1. Contributeur
              mets des 'echo("etape #");'
              à l'intérieur et à l'extérieur de tes tests pour voir où ça bloque.
              1. Contributeur
                salut,

                isset($_POST['titre'], $_POST['contenu'], $_POST['auteur'], $_POST['id'])

                je ne l'ai jamais vu avec plusieurs variables. tu devrais essayer avec un 'isset()' par variable.

                et remplace les 'AND' par '&&'.

                <dumauvaishumourenplus>
                Problème de POST
                encore en grève !
                -:oDDD
                </dumauvaishumourenplus>