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 :

Formulaire PHP qui s'auto-appelle


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif
    Avatar de Aurelien Plazzotta
    Homme Profil pro
    .
    Inscrit en
    Juillet 2006
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juillet 2006
    Messages : 312
    Points : 934
    Points
    934
    Par défaut Formulaire PHP qui s'auto-appelle
    bonjour à tous,

    alors j'ai un soucy concernant le formulaire PHP qui s'auto-appelle,

    en effet j'ai créé un fichier nommé "tcos.php", contenant le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <html>
    <head>
    <title>The Chronicles of Spellborn</title>
    </head>
    <body>
    <FORM ACTION="tcos.php">
    <INPUT TYPE="radio" name"image" value="quarterstone_mines2_big">Mine de Quarterstone<BR>
    <INPUT TYPE="radio" name"image" value="quarterstone_shop_big">Boutique de Quarterstone<BR>
    <INPUT TYPE="radio" name"image" value="quarterstone_street_big">Rue de Quarterstone<BR>
    <INPUT TYPE="radio" name"image" value="quarterstone_tavern_big">Taverne de Quarterstone<BR><BR>
    <INPUT TYPE="submit" VALUE="Valider"
    </FORM>
     
    <?
     
    echo "Voici l'image <B>$image.jpg</B>";
    echo "<IMG SRC=images/$image.jpg>";
    echo "<P>";
     
    ?>
     
    </body>
    </html>
    jusque là rien de bien spectaculaire sauf qu'après avoir choisi une option et cliquer sur "valider", le navigateur m'affiche:

    Notice: Undefined variable:image

    alors je comprend pas comment faire en sorte pour que la variable image fonctionne et m'affiche enfin l'image sélectionnée par l'un des boutons,

    j'ai exactement le meme soucy quand j'essaie de faire un formulaire HTML qui appelle une page PHP...

    voila j'espere avoir été suffisamment clair et merci par avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu naurais pas oublié le =
    <form action="tcos.php" method="POST" name ="MonForm">
    <input type="radio" name="image" value="quarterstone_mines2_big">Mine de Quarterstone<BR>
    <input type="radio" name="image" value="quarterstone_shop_big">Boutique de Quarterstone<BR>
    <input type="radio" name="image" value="quarterstone_street_big">Rue de Quarterstone<BR>
    <input type="radio" name="image" value="quarterstone_tavern_big">Taverne de Quarterstone<BR><BR>
    <input type="submit" VALUE="Valider">
    </form>

  3. #3
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    en plus de l'erreur repérée ci-dessus, j'ajouterais que :

    tout d'abord, pour envoyer un formulaire sur la page elle-même, il est préférable d'utiliser $_SERVER['PHP_SELF'];

    Ensuite, pour récupérer une variable issue de formulaire, il faut mettre dans la balise form ce code par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    Et tu peux ensuite récupérer ta variable dans $_POST["image"];

    NB : cela est aussi possible avec GET

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu as oublié le champ "method" dans ta balise form, qui te dit si tu dois accéder à tes variables via $_GET ou $_POST, après avoir fait un isset dessus, bien sûr.

    Tu comprends rien ? direction les tutos :
    http://julp.developpez.com/php/formulaires/

  5. #5
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par Eusebius
    Tu as oublié le champ "method" dans ta balise form, qui te dit si tu dois accéder à tes variables via $_GET ou $_POST, après avoir fait un isset dessus, bien sûr.

    Tu comprends rien ? direction les tutos :
    http://julp.developpez.com/php/formulaires/

    pas obligé je crois, c'est POST par defaut ...

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par Elwyn
    pas obligé je crois, c'est POST par defaut ...
    Euh oui peut-être mais bon c'est pas terrible de laisser faire les choses par défaut, l'idée en programmation c'est quand même d'avoir le contrôle des choses...

  7. #7
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Je recpitule dans l'ordre :

    Mauvaise ecriture du Form :
    voir post de navis84

    Mauvaise ecriture du Input :

    voir post de rbaatouc

    Tu ne ferme pas le Input submit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <INPUT TYPE="submit" VALUE="Valider">
    Recuperation des variable ET controle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST['image']))
    $image = $_POST['image'];
    else
    $image = NULL;//ou une image par defaut
    Et c'est pas vraiment comme ca qu'on fait une concatenation....
    au mieux ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "Voici l'image <B>".$image.".jpg</B>";
    echo "<IMG SRC=images/".$image.".jpg>";
    echo "<P>";
    A part ça, la ca devrait atre bon....

  8. #8
    Membre habitué Avatar de sigap
    Inscrit en
    Avril 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 113
    Points : 166
    Points
    166
    Par défaut
    Si en depit de toutes les réponses ci-dessus ca ne marche pas,

    tu inseres cette ligne de code en tout début de ton script php

    $image=""; // Je ne sais pas à quoi ca sert mais ca fait marcher mon script

    et avant de lui affecter la variable $_POST['image'], vérifie tjrs qu'elle existe

    if (isset($_POST['image'])) {
    $image=$_POST['image']; // Je ne sais pas pkoi le faire mais ca fait marcher mon script

    }

    Cette erreur m'arrive svt.

  9. #9
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Je te l'ai dit, depuis PHP 4.2 on est obligé de contrôler ses variables.....

    Ce que tu fait c'est tout simplement une intialisation et une vérification, c'est normal et tout a fait recommandé
    Tu devrais faire afficher toute les erreurs et notifications en configurant ton php.ini, il vaut mieux pour coder propre ....

    quand tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_POST['image'])) {
    $image=$_POST['image']; // Je ne sais pas pkoi le faire mais ca fait marcher mon script
    }
    Ca fait marcher ton script tout simplement parceque tu affectes a la variable $image la valeur de celle issue du formulaire !qui n'est pas la meme !

    Voila c'est tout, tu as bien fait toutes les autres petites corrections de syntaxe?

  10. #10
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Elwyn
    pas obligé je crois, c'est POST par defaut ...
    Raté, c'est GET. Bien tenté

  11. #11
    Membre extrêmement actif
    Avatar de Aurelien Plazzotta
    Homme Profil pro
    .
    Inscrit en
    Juillet 2006
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juillet 2006
    Messages : 312
    Points : 934
    Points
    934
    Par défaut
    Bonjour,

    eh bien merci beaucoup à vous pour toutes vos explications mais force est d'avouer que le problème n'est pas résolu,

    j'ai suivi toutes les manipulations que vous m'avez indiquées et au final mon code contient ceci:

    <form action="'.$_SERVER["PHP_SELF"].'" method="POST">
    <INPUT TYPE="radio" name="image" value="quarterstone_mines2_big">Mine de Quarterstone<BR>
    <INPUT TYPE="radio" name="image" value="quarterstone_shop_big">Boutique de Quarterstone<BR>
    <INPUT TYPE="radio" name="image" value="quarterstone_street_big">Rue de Quarterstone<BR>
    <INPUT TYPE="radio" name="image" value="quarterstone_tavern_big">Taverne de Quarterstone<BR><BR>
    <INPUT TYPE="submit" VALUE="Valider">
    </FORM>

    <?

    $image
    ="";

    // Recuperation des variable ET controle :
    if(isset($_POST['image']))
    $image = $_POST['image'];
    else
    $image = NULL;//ou une image par defaut


    echo "Voici l'image <B>".$image.".jpg</B>";
    echo
    "<IMG SRC=images/".$image.".jpg>";
    echo
    "<P>";

    ?>
    Quand j'affiche la page .php ça donne ceci:


    et quand je clique sur l'un des boutons ça donne cela:


    si vous pouviez m'indiquer où se trouve ma nouvelle erreur!

    merci encore =)

  12. #12
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST">
    Ensuite affiche nous le code HTML généré, par exemple quand tu essaies d'afficher l'image

  13. #13
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par Eusebius
    Raté, c'est GET. Bien tenté

    Et zut

  14. #14
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par Eusebius
    Raté, c'est GET. Bien tenté
    Et zut

    ______________________________________________________

    Moi j'aurais fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <form method="POST">
    <INPUT TYPE="radio" name="image" value="quarterstone_mines2_big">Mine de Quarterstone<BR>
    <INPUT TYPE="radio" name="image" value="quarterstone_shop_big">Boutique de Quarterstone<BR>
    <INPUT TYPE="radio" name="image" value="quarterstone_street_big">Rue de Quarterstone<BR>
     
    <INPUT TYPE="radio" name="image" value="quarterstone_tavern_big">Taverne de Quarterstone<BR><BR>
    <INPUT TYPE="submit" VALUE="Valider">
    </FORM>
     
    <?
     
    if(isset($_POST['image'])){
    $image = $_POST['image'];
    echo'Voici l'image <b>'.$image.'.jpg</b>';
    echo'<img src="images/'.$image.'.jpg">';
    echo'<br />';
    }
    else{
    }
    
    ?>
    Je vois pas la difficulté, soit g pas compris soit c vraiment simple

  15. #15
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Elwyn
    Je vois pas la difficulté, soit g pas compris soit c vraiment simple
    C'est une autre manière (équivalente à mon précédent post) de résoudre le problème de l'erreur 404. J'aime pas trop parce que je préfère préciser le champ action, mais c'est correct.

  16. #16
    Membre extrêmement actif
    Avatar de Aurelien Plazzotta
    Homme Profil pro
    .
    Inscrit en
    Juillet 2006
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juillet 2006
    Messages : 312
    Points : 934
    Points
    934
    Par défaut
    merci à nouveau pour votre participation,

    to Eusebius:

    j'ai ajouté les balises <?php et ?> comme tu me l'a indiqué et désormais cela fonctionne,
    tu m'a demandé le code HTML généré donc le voici:

    <?php
    <html>
    <
    head>
    <
    title>The Chronicles of Spellborn</title>
    </
    head>
    <
    body>

    <
    form action="/tcos.php" method="POST">
    <
    INPUT TYPE="radio" name="image" value="quarterstone_mines2_big">Mine de Quarterstone<BR>
    <
    INPUT TYPE="radio" name="image" value="quarterstone_shop_big">Boutique de Quarterstone<BR>
    <
    INPUT TYPE="radio" name="image" value="quarterstone_street_big">Rue de Quarterstone<BR>
    <
    INPUT TYPE="radio" name="image" value="quarterstone_tavern_big">Taverne de Quarterstone<BR><BR>

    <
    INPUT TYPE="submit" VALUE="Valider">
    </
    FORM>

    Voici l'image <B>quarterstone_shop_big.jpg</B><IMG SRC=images/quarterstone_shop_big.jpg><P>
    </body>
    </html>

    ?>
    to Elwyn:

    j'ai recopié ta proposition de code, et cela n'a pas fonctionné chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `','' or `';'' in d:\program files\easyphp1-8\www\tcos2.php on line 21
    la ligne 21 correspondant à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo'Voici l'image <b>'.$image.'.jpg</b>';
    par contre je voulais savoir comment se débrouiller pour ne pas afficher le message "voici l'image..." tant que l'utilisateur n'a pas choisi et validé...

  17. #17
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Débrouille-toi pour que le contenu de l'attribut SRC de la balise IMG soit entre guillemets.

  18. #18
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par Eusebius
    C'est une autre manière (équivalente à mon précédent post) de résoudre le problème de l'erreur 404. J'aime pas trop parce que je préfère préciser le champ action, mais c'est correct.

    No probleme

  19. #19
    Membre extrêmement actif
    Avatar de Aurelien Plazzotta
    Homme Profil pro
    .
    Inscrit en
    Juillet 2006
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juillet 2006
    Messages : 312
    Points : 934
    Points
    934
    Par défaut
    tu voulais dire ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<IMG SRC='images/".$image.".jpg'>";
    car cela n'a pas changé?
    =)

  20. #20
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par KeNaRyN


    la ligne 21 correspondant à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo'Voici l'image <b>'.$image.'.jpg</b>';
    Remplace par ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo'Voici l\'image <b>'.$image.'.jpg</b>';
    J'avais oublié dsl

    Edit : Lol on est tous la le temps que je post il y a deja une reponse

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Formulaire php qui renvoie une erreur a l'envoie dans la bdd
    Par Varghos dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 20/04/2014, 11h15
  2. Formulaire php qui fonctionne partiellement
    Par Fulgurator dans le forum Langage
    Réponses: 16
    Dernier message: 15/10/2009, 00h28
  3. formulaire php qui ne fonctionne pas
    Par kate59 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/04/2008, 13h40
  4. formulaire php qui s'affiche automatiquement
    Par HwRZxLc4 dans le forum Langage
    Réponses: 13
    Dernier message: 28/04/2007, 11h23
  5. Formulaire avec du PHP qui ne marche pas !
    Par Sandara dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2006, 18h26

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