[PHP] Problème de POST

Résolu
daftplouk -  
 daftplouk -
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. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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>
    0
  2. daftplouk
     
    Aucun résultat !! Je ne comprend pas !
    0
  3. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    mets des 'echo("etape #");'
    à l'intérieur et à l'extérieur de tes tests pour voir où ça bloque.
    0
  4. daftplouk
     
    isset($_POST['titre'] echo("etape #");, $_POST['contenu'] echo("etape #");, $_POST['auteur'], $_POST['id'])

    Comme ca ? J'ai pas bien compris ?! Les tests ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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.
    0
  7. Pi_Xi Messages postés 2274 Statut Membre 149
     
    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?
    0
    1. daftplouk
       
      Ce code retourne Erreur : Column count doesn't match value count at row 1

      Je ne comprend pas de trop !
      0
  8. daftplouk
     
    Etape 5 ne fonctionne pas le reste oui !! Ah ca avance ! Thanks !
    0
  9. Pi_Xi Messages postés 2274 Statut Membre 149
     
    mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.'", auteur="'.$auteur.'" WHERE id='.$id);
    Tu as oublié des guillemets après $contenu.'
    0
  10. daftplouk
     
    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");
    0
  11. Pi_Xi Messages postés 2274 Statut Membre 149
     
    C'est le '1' dans ta première requête qui est en trop je crois...
    0
  12. daftplouk
     
    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 !!
    0