[PHP] Problème de POST

Résolu/Fermé
daftplouk - 4 sept. 2007 à 15:32
 daftplouk - 4 sept. 2007 à 17:04
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 !
A voir également:

11 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
4 sept. 2007 à 15:35
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
Aucun résultat !! Je ne comprend pas !
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
4 sept. 2007 à 16:26
mets des 'echo("etape #");'
à l'intérieur et à l'extérieur de tes tests pour voir où ça bloque.
0
isset($_POST['titre'] echo("etape #");, $_POST['contenu'] echo("etape #");, $_POST['auteur'], $_POST['id'])

Comme ca ? J'ai pas bien compris ?! Les tests ?
0

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

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
4 sept. 2007 à 16:35
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
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 sept. 2007 à 16:35
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
Ce code retourne Erreur : Column count doesn't match value count at row 1

Je ne comprend pas de trop !
0
Etape 5 ne fonctionne pas le reste oui !! Ah ca avance ! Thanks !
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 sept. 2007 à 16:42
mysql_query('UPDATE article SET titre="'.$titre.'", contenu="'.$contenu.'", auteur="'.$auteur.'" WHERE id='.$id);
Tu as oublié des guillemets après $contenu.'
0
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
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 sept. 2007 à 16:59
C'est le '1' dans ta première requête qui est en trop je crois...
0
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