IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variables avec formulaires ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Par défaut Variables avec formulaires ?
    Bonjour à tous,

    Je voudrais créer un système d'évaluations très simple sur un système de livre d'or.
    Je voudrais que l'acheteur mette un icône pour savoir si les conditions de vente lui ont plu ou non (par exemple une croix, si les conditions de ventes lui ont déplu). (Voici ma page d'évaluations : http://s139924470.onlinehome.fr/evaluations.php).
    Cependant, lorsque j'envoie les informations (c'est-à-dire, le nom, le n° de commande, l'opinion et le message), il me dit que les champs ne sont pas remplis alors qu'ils le sont bien remplis, et je ne vois pas mon erreur.

    Voici le code de message.php.
    <?php
    if (isset($_POST&#91;'evaluation']) )
    {
    $pseudo = $_POST&#91;'pseudo'];
    if (
    $_POST&#91;'evaluation'] == 1)
    {
    $evaluation = 'positif';
    }
    elseif (
    $_POST&#91;'evaluation'] == 2)
    {
    $evaluation = 'negatif';
    }
    }
    $commande = $_POST&#91;'commande'];

    if (isset(
    $_COOKIE&#91;'ip']) && $_COOKIE&#91;'ip']==$_SERVER&#91;'REMOTE_ADDR'])
    {
    setcookie("ip",$_SERVER&#91;'REMOTE_ADDR'],time()+.3600*60*90);
    echo
    "Vous avez déjà donné votre avis";
    }
    else
    {

    $commentaires="messages.txt";

    $pseudo=htmlentities($_POST&#91;'pseudo']);
    $message=htmlentities($_POST&#91;'message']);
    $commande=htmlentities($_POST&#91;'commande']);

    $message=stripslashes(nl2br($message));

    if(!
    is_file($commentaires))
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $verif=@fopen($commentaires,"w+");
    }

    if (!isset(
    $commande) || $commande !="")
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    "Vous devez remplir tous les champs ! <a href=\"evaluations.php\">Retour sur la page des évaluations.</a>";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;exit;
    }

    if (!isset(
    $message) || $pseudo !="")
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    "Vous devez remplir tous les champs ! <a href=\"evaluations.php\">Retour sur la page des évaluations.</a>";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;exit;
    }


    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $verif=@fopen($commentaires,"r+");

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $stock=@fread($verif,filesize($commentaires));

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $date=date ("d/m/Y à H:i");

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $choix=$_GET&#91;'evaluation'];

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(
    $choix=1)
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;print
    '<img border="0" src="http://pics.ebaystatic.com/aw/pics/icon/iconPos_16x16.gif" alt="">';
    }
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;print
    '<img border="0" src="http://pics.ebaystatic.com/aw/pics/icon/iconNeg_16x16.gif" alt="">';
    }
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $opinion="(<a href=".$commande.".php>".$commande."</a>) <b>".$pseudo."</b> a écrit le : ".$date."<br />\n".$message."<br />\n<hr />";

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    rewind($verif);

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    fputs($verif,$opinion." \n".$stock);

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    fclose($verif);

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    readfile($commentaires);

    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    Salut,
    deja tu devrais faire les isset sur les $_POST.

    Ensuite tes tests sont un peu étrange a mon gout.
    Si pas de message ou que le pseudo n'est pas vide ....
    Du coup si y a un pseudo ça te dis que non

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Par défaut
    Oui, mais le problème c'est que je n'arrive pas à placer mes isset sur les $_POST.
    Sinon, je ne comprends pas l'histoire des tests. :o

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    je t en traduit juste un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset($commande) || $commande !="")
    si il n'y a pas de commande ou que commande existe

    en gros dans tous les cas ...

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Par défaut
    Tu peux utiliser exist() alors, ça combine si c'est posté(!=NULL) et si c'est rempli (!="") :

    C'est plus propre à mon avis.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/06/2008, 00h29
  2. Réponses: 2
    Dernier message: 15/05/2007, 16h13
  3. Réponses: 1
    Dernier message: 15/05/2006, 18h05
  4. Probleme avec passage de variables par formulaires
    Par cortex007 dans le forum Langage
    Réponses: 5
    Dernier message: 17/12/2005, 14h08
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo