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

Conception Web Discussion :

Formulaires, form, get, post et tout le bazard


Sujet :

Conception Web

  1. #1
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut Formulaires, form, get, post et tout le bazard
    Bonjour,

    J'ai fait un "joli" (notez les guillemets) petit site.
    Tout marche bien mais maintenant j'attaque le côté vraiment "méchant". Tout ce qui est formulaires.
    En fait sur une page j'ai plusieurs champs et deux bouton "envoyer" et "annuler" sur une autre page j'ai un seul champs et juste un bouton "envoyer".

    Je voudrais pour la page avec plusieurs champs envoyer les infos à une adresse mail.

    Pour l'autre j'aimerais remplir une table de BD chez mon hébergeur.

    Dans un cas comme dans l'autre je n'ai pas trop d'idées de comment on fait.

    Quelqu'un pourrait me dire quel est le bon tuto pour commencer ? ou me conseiller pour arriver à quelque chose de simple et fonctionnel ?

    Merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    T'as la flemme de chercher par toi-même...

    http://php.developpez.com/cours/?pag...ge#formulaires
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    La flemme non mais je ne sais jamais trop vers quoi allez !
    Il y a tellement...

  4. #4
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    C'est pas de la tarte

    Bon j'ai fait un truc super basic et ça marche déjà pas

    Voila mon p'tit code :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <p>&nbsp;</p>
    <table width="1150" border="0" align="center">
      <tr>
        <td width="2000" align="center">
          <FORM METHOD=POST ENCTYPE="text/plain" ACTION="mailto:info@espaceimagi.be"> 
    <PRE>
        Votre nom : <INPUT NAME=Nom size=30><input type=SUBMIT value=Envoyer /><input type=RESET value=Effacer />
    </PRE>
    </FORM></td>
      </tr>
      <tr>

    Et chaque fois que je fais Envoyer j'ai Internet explorer qui plante !

  5. #5
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Avec Chrome ca marche mais ca me plait pas parce que ça ouvre Outlook.
    Du coup j'ai essayé autre chose !
    Ce code dans ma page :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        <td width="2000" align="center"><form method="post" action="mailphp.php">
       <input type="text" maxlength="120" size="25" name="sujet" title="sujet" value="" alt="Ici le sujet" />
     <input type="submit" title="valider" alt="valider le formulaire" value="Valider !" />
     </form>
         <FORM METHOD=POST ENCTYPE="text/plain" ACTION="mailphp.php"> 
    </FORM></td>

    Et j'ai fait une autre page qui s'appel mailphp.php et qui contient ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <title>Document sans titre</title>
    </head>
    <body>
    <?php
    mail($_POST["info@espaceimagi.be"], $_POST[sujet], $_POST[message]); 
    ?>
    </body>
    </html>
    .

    Là plus de plantage mais pas l'ombre d'un mail à l'horizon...

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    évite de mettre 36 fois les balises form.
    évite le postionnement de données avec table
    et sort les balise form de ta table.


    <form method="post" action="mailphp.php">
    <input type="text" maxlength="120" size="25" name="sujet" title="sujet" value="" alt="Ici le sujet" />
    <input type="submit" title="valider" alt="valider le formulaire" value="Valider !" />
    </form>
    <FORM METHOD=POST ENCTYPE="text/plain" ACTION="mailphp.php">
    </FORM>
    pour ce qui est du mail,
    as tu essayé au moins d'afficher les données dans ta page avant de partir sur de l'envoi?

    $_POST["info@espaceimagi.be"] ne risque pas de marché, $_POST["machintruc"] sert à récupérer la valeur contenu dans l'en tête POST dans la variable machintruc.

    tu test ton sript php en local ou sur un hébergeur? si c'est en local ça risque aps de partir tu ne dispose pas de serveur smtp. il faudra configurer le php.ini pour utiliser un serveur smtp autre que ton pc (éventuellement celui de ton provider).
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  7. #7
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Non Non j'ai essayé de mettre ça chez mon hébergeur et puis de tester...
    Par contre je ne pige vraiment pas le principe de l'envoi.

    J'ai compris (je crois) qu'il faut sur la page du formulaire avoir des champs (ou autres inputs) qu'on rempli et puis on envoi le contenu avec post vers une autres page PHP. Ensuite c'est cette autre page qui reçois ce contenu, qui le met éventuellement en forme et l'envoi sur une adresse mail.

    Est ce bien ça ?

    Si oui pourrais tu me montrer juste un bout de code avec un champs et un bouton et un bout de code avec juste la commande d'envoi.

    En fait c'est surtout l'envoi que je ne comprends pas bien comment il marche...

    Merci :-)

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    les $_POST["value"] contiennent le value du name de tes input.

    Si tu as un <input name="toto" /> alors ton $_POST sera $_POST["toto"] pour récupérer sa valeur.

    Dans ton cas :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" action="mailphp.php">
       <input type="text" maxlength="120" size="25" name="sujet" title="sujet" value="" alt="Ici le sujet" />
       <textarea name="message" rows="5" cols="20"></textarea>
       <input type="submit" title="valider" alt="valider le formulaire" value="Valider !" />
    </form>

    Tu avais oublié le champs pour le message nom ? J'ai ajouté un textarea pour ça.

    Ensuite, la fonction mail, pour le mail met là en dur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
        mail("info@espaceimagi.be", $_POST["sujet"], $_POST["message"]); 
    ?>

    Par contre, lis les tutos sur la sécurité, car là ...
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    @puce_84 : vu la façon dont tu écris ton code et les erreurs que tu commets, je te conseille encore une fois vivement de reprendre les bases des langages HTML et PHP (au minimum...) sinon, tu ne t'en sortiras jamais !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Merci Bovino, je comprends pourquoi tu dis ça mais je suis réfractaire à une certaine manière d'apprendre et vu que mes aspirations ne sont pas pro finalement tout ça n'est pas bien grave...
    Ceci étant dit je lis ce que je peux quand je peux :-)


    Pour ce qui est de mon formulaire je comprends mieux avec cet exemple simple... a ma partée

    Pour ce qui est de la sécurité je comprends ce qui peut être fait mais je ne comprends pas en pratique le risque.

    Imaginons (c'est le cas) que je veux juste faire sur mon site une case ou les gens mettent un chiffre de 1 à 10 et me l'envoi.
    Quel est le risque si je fais un truc pas sécurisé du tout ?

    Et en tous cas un tout grand merci à toi BOB663 pour ton aide très didactique

  11. #11
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Citation Envoyé par puce_84 Voir le message
    Imaginons (c'est le cas) que je veux juste faire sur mon site une case ou les gens mettent un chiffre de 1 à 10 et me l'envoi.
    Quel est le risque si je fais un truc pas sécurisé du tout ?
    Qu'un petit malin rentre 11 ?

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  12. #12
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    J'aime bien l'image du 11 .

    il y a plusieurs faille de sécurité possible à ouvrir un flux d'information sur un site. Par exemple, si ton champ a un lien avec la base de données, tu risques de l'SQL injection :

    http://fr.wikipedia.org/wiki/Injection_SQL

    Ou si tu passes tes données en get, il ne faut pas passer des données critique sinon les personnes qui maitrisent un minimum ou qui sont curieuses peuvent les changer ou alors il faut les crypter.

    Il doit être possible de faire des exécutions de script aussi.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  13. #13
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Ouai c'est bien ce que je pensais. Le pauvre perdu que je suis avec un site totalement sans intérêt pour 99 % des gens et qui ne contient aucune donnée ni aucun BD n'a absolument rien à craindre. Non pas qu'il soit sécurisé mais simplement parceque a quoi bon fermer la porte à clef quand la maison est vide...

    Et si quelqu'un m'envoi 11 et ben je recevrai 11 ou 12 ou 13 et je me dirai juste bon ben ce con la a rien compris et je foutrai son mail à la poubelle. Je pourrais même faire une règle Outlook pour que ça se fasse tout seul :-)

  14. #14
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Tu t'entraine donc c'est une vision qui se défend, mais si tu continues dans le développement de site ou d'application cliente, il y a une règle d'or, toujours prendre l'utilisteur pour "un abruti" qui fera tout sauf ce que tu veux qu'il fasse, il faut donc le contrôler ou l'orienter dans la bonne direction.

    Bon courage pour la suite .
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  15. #15
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Tu peux aussi faire une liste déroulante de 1 à 10 pour limiter l'insertion d'autres valeurs.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="toto">
       <option value="1">1</option>
       ...
       <option value="10"></option>
    </select>

    Et dans ta page tu récupères la valeur de la même façon $_POST['toto'].

    Tu peux rajouter un léger traitement de vérifier si l'utilisateur à bien selectionner une valeur avec
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    !empty($_POST['toto']) { // Ton traitement } else { // L'utilisateur est couillon, valeur vide }
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  16. #16
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Quitte à tester autant faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if( isSet($_POST['toto']) && filter_var($_POST['toto'], FILTER_VALIDATE_INT, array('option' => array( 'min_range' => 1, 'max_range' => 10)) )

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  17. #17
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Merci les gars, franchement là j'ai bien progressé Grace à vous.

    Je tiens tout de même à en rassurer certain je ne serai JAMAIS un vrai développeur de site ou de quoi que ce soit d'ailleurs. Je bidouille un peu pour faire des petits sites amateurs pour mes artistes débutants mais dès qu'ils deviennent un peu connus (et donc payés) on investira alors dans un vrai site fait par des vrais webdesigners, de vrais graphistes, etc...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/06/2014, 19h40
  2. Formulaire variables via POST ou GET
    Par tremeur53 dans le forum Langage
    Réponses: 5
    Dernier message: 26/10/2008, 13h44
  3. [SERVLET]Traitement de formulaire paramètres GET et POST
    Par ederf dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/05/2006, 13h56
  4. [FORM] ne pas envoyer tout lors d'un submit
    Par pmartin8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/12/2005, 20h50
  5. [Servlet] Form. Methode POST - Erreur 405
    Par Johnbob dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/11/2004, 16h46

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