TUTO PHP - #5 Transmettre des informations par formulaire

PrimFX Boris ('PrimFX') Le 3 janvier 2015

C'est dans ce tuto PHP que nous entrons dans le vif du sujet... Tout ce que nous avons vu précédemment faisait plus parti des bases qu'il faut avoir dans ce langage. Avec le transfert de données par formulaires, vous pourrez commencer à avoir une interaction avec vos internautes.
La prochaine grande étape sera le transfert d'informations vers une bases de données et la récupération de celles-ci sur votre site !

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 10

  • Bastien1babas Le 28 août, à 20:32 (Édité le 28 août 2021 à 20:32) | Répondre

    salut moi j'ai soucis j'arrive pas faire fonctioner la connexion bdd je fais comme dans la video mais j'ai rien qui se met diffirente couleur est sa marche est ce que j'ai fait une erreure ou pas ?

  • Jennifer_RG Le 29 juillet, à 19:50 | Répondre

    Salut Boris, tout d'abord j'aimerai te remercier car grâce à tes différents tutoriels je progresse de jours en jour. J'ai réellement commencé à apprendre le HTML/CSS il y a 2 semaines et j'arrive à créer un design de site sans problème. Avec une amie on souhaite lancer un petit projet afin d'aider les personnes de tout âge en créant un site pour les personnes de notre commune du genre "leboncoin" pour échanger/prêter/vendre des objets mais également demander tout autres services (administratifs/conseils, etc). Pour cela, c'est inévitable, je dois passer par le PHP pour, comme tu le dis, "dynamiser" le site web. Alors je me lance aujourd'hui dans le PHP après avoir réaliser différents test sur le site de codeacademy. Mais voilà, je débute vraiment et je ne comprends pas comment on peut voir son site web (avant de l'heberger sur le web).. J'utilise WAMP serveur et phpmyadmin comme tu me l'a dit. J'ai mis mon projet à la racine du dossier "www" il apparait bien dans "les projets" sur la page d'accueil de wampserver mais quand je clique dessus j'ai une erreur de DNS.. Que faire.. ?

    Merci d'avance pour ta réponse, et bravo pour le travail que tu fais.
    Jennifer.

  • statics Le 1 mars, à 18:11 | Répondre

    Salut PrimFX,
    Petite question, je viens de regarder ta vidéo.
    Si je fais un formulaire et que mon code est plutôt de ce genre :

    <form name='formulaire' method="post" action="TP4.php">

    <label>Votre nom :</label>
    <input type="texte" name="nom"/><br />

    <label>Votre prénom :</label>
    <input type="texte" name="prenom"/><br />

    <label>Votre âge :</label>
    <input type="texte" name="age"/><br />

    <label>Votre ville :</label>
    <input type="texte" name="ville"/><br />

    <label>Votre activité :</label>
    <input type="texte" name="activite"/><br />

    <input type="submit" name="valider" value="Valider"/><br/>
    <?php
    if (isset($_POST['valider'])) {
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $age = $_POST['age'];
    $ville = $_POST['ville'];
    $activite = $_POST['activite'];

    $utilisateur = array($nom, $prenom, $age, $ville, $activite);
    echo 'Vous venez de saisir :<br/>';
    foreach ($_POST as $utilisateur) {
    echo '- ' .$utilisateur.'';
    echo '<br />';
    }

    }
    ?>
    Mon code est différent de la méthode que tu montres.
    Le résultat est pourtant le même? Que me conseils-tu?

  • PrimFX Le 14 juin, à 19:44 | Répondre

    Bonjour,
    Pour ça, rien de plus simple qu'une petite condition pour CHAQUE option de la liste:
    if(isset($_POST['lenomdeloption']) AND $_POST['lenomdeloption'] == 'lavaluedeloption') { echo selected="selected"; }
    Le selected="selected" permet de sélectionner cette valeur de la liste par défaut ;-) (code à placer après le value="" dans chaque option)
    @+
    PrimFX

  • Phil693 Le 11 juin, à 10:10 | Répondre

    Bonjour Boris,
    bon, ça avance mon petit projet :)
    Par contre, j'ai fais un formulaire avec une liste déroulante, avec un message d'erreur quand un champ est vide.
    Par contre, quand on valide et qu'un champ manque, le message d'erreur s'affiche (normal), mais tous les autres champs se vide (j'ai mis un "<option value=""></option>" en tete de liste)
    Peux tu me dire comment faire pour éviter que le visiteur ai tout a ressaisir en cas d'oublie d'un seul champ ?
    Merci d'avance, bonne journée a toi :)

  • Phil693 Le 9 juin, à 17:16 | Répondre

    Super, merci Boris, je vais essayer de faire comme ça.
    Et c'est bon, j'ai corrigé pour la sécurité de la liste déroulante. En plus du strlen, j'ai rajouté le htmlspecialchars ;)

  • PrimFX Le 9 juin, à 17:04 | Répondre

    De rien ;-)
    Oui c'est exactement ça, il faudra faire une nouvelle variable pour chaque élément: si la case est cochée, cette variable existera, donc il faudra lui attribuer la valeur 1, sinon, valeur 0 ! Par exemple, deux cases homme et femme: if(isset($_POST['homme'])) { $homme = 1; } else { $homme = 0;} et if(isset($_POST['femme'])) { $femme= 1; } else { $femme= 0;} et voilà ! maintenant qu'on a attribué de réelles valeurs aux variables, il n'y a plus qu'à les insérer dans les champs qui doivent effectivement être prévus (un champ par possibilité) ! Après dans le cas homme / femme, on peut très bien créer un champ "sexe" et faire une vérification en php pour lui attribuer soit la valeur "homme" soit la valeur "femme" !

  • Phil693 Le 9 juin, à 16:47 | Répondre

    Merci Boris,
    Pour la sécurité, j'avais quand même mis un strlen de 15 caractères, ce qui corresponds a la valeur la plus grande des réponses.
    Pour ce qui est des valeurs binaires, ce qui n'est pas cochés, correspond a 0 et ce qui est coché a 1, c'est ça ? Et au niveaux de ma table, je dois prévoir du coup un champs pour chacune des possibilités ?

  • PrimFX Le 9 juin, à 14:31 | Répondre

    Pour les checkbox, il est possible de regrouper toutes les réponses dans un seul champ avec par exemple un chiffre (ou un mot, phrase, etc.) spécifique à un ensemble de réponses (qu'il faut créer en php), mais le plus simple reste tout de même de créer un champ par réponse avec une valeur binaire (0 ou 1, false ou true,...) .
    Pour les listes déroulantes, que les variables passent par get ou post, le mieux est de faire (par précaution) un htmlspecialchars() sur la variable qui sera traitée dans le code, car n'importe quel internaute averti pourra s'arranger pour faire passer une valeur non "prédéfinie" même dans une liste ! ;-)

  • Phil693 Le 5 juin, à 22:03 | Répondre

    Petite question a propos de ce tuto :)
    Comment ça se passe pour les checkbox, donc les choix multiple, et les tables de la bdd ? On peut rentrer plusieurs choix dans un même champ ?
    Et autre question, niveau sécurité d'une liste déroulante, checkbox ou autre, il y a des précautions a prendre ?