TUTO PHP - #5 Transmettre des informations par formulaire


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
PrimFX

Salut tout le monde ! Je m'appelle Boris, j'ai 18 ans et je suis passionné d'informatique et de technologie. Je partage cette passion à travers mes vidéos que tu peux retrouver sur YouTube sous le nom de PrimFX ou bien sur ce site bien sûr (tutoriels de programmation (HTML, CSS, PHP), gameplays, vlogs high-tech...). @+

A voir aussi

9 Commentaires

POSTER UN COMMENTAIRE

Vous devez être connecté pour pouvoir poster un commentaire...

Pas encore de compte ? Créez-en un ici !



  • Photo de profil de Phil693

    Phil693

    05 June 2015 à 22:03

    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 ?

  • Photo de profil de PrimFX

    PrimFX | Membre Premium

    09 June 2015 à 14:31

    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 ! ;-)

  • Photo de profil de Phil693

    Phil693

    09 June 2015 à 16:47

    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 ?

  • Photo de profil de PrimFX

    PrimFX | Membre Premium

    09 June 2015 à 17:04

    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" !

  • Photo de profil de Phil693

    Phil693

    09 June 2015 à 17:16

    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 😉

  • Photo de profil de Phil693

    Phil693

    11 June 2015 à 10:10

    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 😀

  • Photo de profil de PrimFX

    PrimFX | Membre Premium

    14 June 2015 à 19:44

    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

  • Photo de profil de statics

    statics

    01 March 2016 à 18:11

    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?

  • Photo de profil de Jennifer_RG

    Jennifer_RG

    29 July 2016 à 19:50

    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.