[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. 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>
    1. Contributeur
      mets des 'echo("etape #");'
      à l'intérieur et à l'extérieur de tes tests pour voir où ça bloque.
      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
          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. 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. mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.'", auteur="'.$auteur.'" WHERE id='.$id);
            Tu as oublié des guillemets après $contenu.'
            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. 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 !!