DEBUTANT : Arborescence dans du php
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 34

DEBUTANT : Arborescence dans du php



  1. #1
    WanFive

    DEBUTANT : Arborescence dans du php


    ------

    Bonjour, je suis suis débutant en codage et j'aimerais coder en php sur mon site l'internet, via à un formulaire qui lui est en html, des messages en fonction de ce qu'écrit l’utilisateur par exemple ; il écrit son nom et quand il envoie le formulaire il est mit plus bas sur le même page. Bonjour "son nom", ...

    J'ai pas de soucis avec le formulaire c'est au niveau du php que j'ai un soucis car j'aimerais avoir un input date de naissance qui sépare mon php en deux c-à-d que si l’utilisateur met une date de naissance en dessous de 2002 qu'il ai un message qui s'affiche du style: "Attention vos actions ne sont pas sous nos responsabilités....." et que ça s’arrête là. Mais par contre si il met une date de naissance plus haut ou égal à 2002 qu'il ai un message du style ; "Bonjour Madame/Monsieur "son nom qu'il a écrit dans le formulaire" ET que madame/monsieur dépend d'un input radio préalablement crée et plein de petit chose en php en plus. J'arrive pas a faire cette "liaison" cette notion du "si" dans le php m'échappe.
    En gros ce serai faire une sort de petite arborescence dans le php mais j'ai du mal avec le php dans le php en si cela est possible
    C'est la première fois que j’utilise et forum, j'espère avoir été clair un maximum ...


    Mon code pour le moment:
    Code PHP:
    <html>
        <head>
            <title>ExA</title>
            <link rel="stylesheet" type="text/css" href=""/>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        </head>
    <body>

        <form action="ExA.php"method="POST">
            <table >
                <tr>
                    <td>Nom</td><td><input type="text" name="nom" autocomplete="on"  /></td>
                    <td>Prénom</td><td><input type="text" name="prénom" /></td>
                    <td >Date de naissance</td><td><input type="text" name="naissance" /> </td>
            </table>

        Sexe :
        <input type="radio" name="sexe" value="M" checked /> Homme
            
        <input type="radio" name="sexe" value="F"/> Femme</br></br>
            
        
        <input type="submit" value="Envoyer"/>
        </form>
    </br></br>
     <?php 
                    
    if (isset($_POST["sexe"]=="M"))
                        echo 
    "Bonjour Monsieur ";
                
    ?>
                
                <?php 
                    
    if (isset ($_POST["sexe"]=="F"))
                        echo 
    "Bonjour Madame" ;
                
    ?>
    <?php
    // on teste la déclaration de nos variables
    if (isset($_POST['nom']) && isset($_POST['prénom'])) {
        
    // on affiche nos résultats
        
    echo ' '.$_POST['nom'].'  '.$_POST['prénom'];
    }
    ?>

    -----
    Dernière modification par JPL ; 30/03/2020 à 14h44. Motif: Remplacement de la balise Code par PHP

  2. #2
    CM63

    Re : DEBUTANT : Arborescence dans du php

    Et vas-y! N+=1 non je plaisante

  3. #3
    CM63

    Re : DEBUTANT : Arborescence dans du php

    Citation Envoyé par WanFive Voir le message
    ...j'aimerais avoir un input date de naissance qui sépare mon php en deux c-à-d que si l’utilisateur met une date de naissance en dessous de 2002 qu'il ai un message qui s'affiche du style: "Attention vos actions ne sont pas sous nos responsabilités....." et que ça s’arrête là. Mais par contre si il met une date de naissance plus haut ou égal à 2002 qu'il ai un message du style ; "Bonjour Madame/Monsieur "son nom qu'il a écrit dans le formulaire" ET que madame/monsieur dépend d'un input radio préalablement crée et plein de petit chose en php en plus.
    C'est du contrôle de saisie, il me semble qu'il vaudrait mieux le faire en Javascript (pour les lecteurs qui ne connaîtraient pas : le Javascript est envoyé au navigateur et ensuite c'est le navigateur qui fait ces contrôles de saisie en local, ce qui évite des échanges intempestifs avec le serveur).

    Et donc les "if", qui te posent problème, tu les ferais en Javascript.

  4. #4
    CM63

    Re : DEBUTANT : Arborescence dans du php

    Plus généralement réfléchis à ce qui doit être du coté serveur et ce qui doit être du coté Javascript, clairement le test sur 2002 je le mettrais en Javascript, alors que le test sur "Monsieur/Madame" je suis moins sur, ça dépend du volume des saisies dans le formulaire., si ça révolutionne complètement le formulaire ou pas selon que ce soit un homme ou une femme.

  5. A voir en vidéo sur Futura
  6. #5
    umfred

    Re : DEBUTANT : Arborescence dans du php

    le "si" en php c'est comme dans n'importe quel langage; on peut les cumuler autant qu'on veut, et mieux utiliser des elseif https://www.php.net/manual/fr/contro...res.elseif.php

  7. #6
    vande545

    Re : DEBUTANT : Arborescence dans du php

    Bonsoir
    // je me demande si l'auteur de ce fil n'est pas «573728» dans une autre discussion de ce forum ?
    D'accord avec CM63, tel que décrit, Javascript est bien mieux adapté.

    Si tu tiens à le faire en PHP, le script doit commencer par tester les variables $_POST et si elles sont vides comme à l'arrivée du visiteur, il faut sortir du script.
    Donc le début du script devrait ressembler à ça :
    Code PHP:
    if (!isset($_POST["sexe"])
        {
        exit();
        } 

  8. #7
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Merci pour les informations !

  9. #8
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    C'est bon ça fonctionne mon seul soucis c'est quand j'ouvre la page pour la premier fois elle n'est pas complètement vide j"ai compris qu'il fallait faire un truc pour y remédier mais je n'ai pas bien compris, quelqu'un pourrait modifier mon code pour ne plus avoir de message d'erreur ou du texte déjà écrit à la première ouverture

    Mon problème (je précise c'est juste à l'ouverture quand j'ai encore rien encoder):



    "Notice: Undefined index: naissance in /var/web/s174064/public_html/exercices/ensemble1/ExA.php on line 23
    Attention, la vente en ligne est uniquement réservée aux membres majeurs. Nous déclinons toute responsabilité."




    Code HTML:
    Mon code : 
    <html>
    	<head>
    		<title>ExA</title>
    		<link rel="stylesheet" type="text/css" href=""/>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    	</head>
    <body>
    
    	<form action="ExA.php" method="POST">
    		<table >
    			<tr>
    				<td>Nom</td><td><input type="text" name="nom" autocomplete="on"  /></td>
    				<td>Prénom</td><td><input type="text" name="prénom"/></td>
    				<td >Date de naissance</td><td><input type="number" name="naissance" /> </td>
    		</table>
    
    	Sexe :
    	<input type="radio" name="sexe" value="M"/> Homme
    	<input type="radio" name="sexe" value="F"/> Femme</br></br>
    		
    		
    <?php 
    				if ($_POST["naissance"]<2002)
    				{
    					echo "Attention, la vente en ligne est uniquement réservée aux membres
    majeurs. Nous déclinons toute responsabilité.";
    				} else if ($_POST["sexe"]=="M") {
    					echo 'Monsier '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
    				} else if ($_POST["sexe"]=="F")
    				{
    					echo 'Madame '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
    				}
    				
    			?>		
    			
    
    		
    <br/><br/>			
    	<input type="submit" value="Envoyer"/>
    	</form>
    	
    	
    	
    	
    </body>
    </html>
    Dernière modification par JPL ; 31/03/2020 à 13h57.

  10. #9
    vande545

    Re : DEBUTANT : Arborescence dans du php

    pffffff, je t'ai donné la solution avant que tu ne la demandes et tu n'en tiens pas compte !
    Tu as un message d'erreur parce que tu testes le contenu d'une variable qui n'existe pas encore. Regarde mon message précédent !
    tester l'existence d'une variable et tester son contenu sont deux choses différentes.

  11. #10
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Salut vade545, je suis un pure débutant donc je suis un peu perdu désolé ... Mais le code que tu m'as écris ne marche pas ou je ne comprends pas (c'est surement moi qui ne comprends pas)

  12. #11
    vande545

    Re : DEBUTANT : Arborescence dans du php

    En chargeant la page pour la 1ère fois, ton script PHP fait ce test :
    Code PHP:
    if ($_POST["naissance"]<2002
    Or la variable "naissance" n'existe pas encore ce qui génère une erreur.
    Ton script devrait commencer par :
    Code PHP:
    <?php>
          if (!isset(
    $_POST["naissance"])
             {
             exit();
             }

  13. #12
    vande545

    Re : DEBUTANT : Arborescence dans du php

    J'ai oublié de préciser que ma suggestion a pour but de tester l'existence de la variable. Si elle n'existe pas, le script s'arrête car il est inutile d'aller plus loin

  14. #13
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Ça m'affiche une gros erreur faisant ce que tu me dis ça ne marche tout bonnement pas... Voici mon code php mais comme tu me l'expliques de ça ne marche pas tu peux tester si tu veux


    Code PHP:
    Code PHP:
    <?php 
                    
    if ($_POST["naissance"]>2002)
                    {
                        echo 
    "Attention, la vente en ligne est uniquement réservée aux membres
    majeurs. Nous déclinons toute responsabilité."
    ;
                    } else if (
    $_POST["sexe"]=="M") {
                        echo 
    'Monsier '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
                    } else if (
    $_POST["sexe"]=="F")
                    {
                        echo 
    'Madame '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
                    }
                    
                
    ?>
    Dernière modification par JPL ; 05/04/2020 à 14h06. Motif: ajout du code PHP pour garder l’indentation

  15. #14
    Ikhar84
    Animateur Informatique

    Re : DEBUTANT : Arborescence dans du php

    Deux choses sont à noter:

    1. Tu n'as manifestement même pas cherché à comprendre les remarques de Vande. La fonction isset() n'apparaît toujours pas dans ton code. De plus, JPL est toujours obligé d'ajouter les balises [code]...[/code] à ton code...

    2. Chaque année, tu devras modifier ton code, pour que le test de "majorité" soit cohérent...
    Dernière modification par Ikhar84 ; 05/04/2020 à 12h54.
    J'ai glissé Chef !

  16. #15
    JPL
    Responsable des forums

    Re : DEBUTANT : Arborescence dans du php

    Non, ici c’était la balise php
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  17. #16
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Ikhar84,
    1. Si ! j'en es pris compte pour mon test perso mais ça n'a pas fonctionné donc j'ai envoyé la version basique pour qu'il puisse me corriger par rapport à celle là. De plus étant nouveau sur le forum et novice je suis un peu perdu ..j'en prendrais compte et je rajouterais des balises code à mon code dorénavant.

    2. Non, c'est un code exercice c'est pour apprendre les bases je ne dois pas être aussi rigoureux que ça mais merci quand même.

  18. #17
    vande545

    Re : DEBUTANT : Arborescence dans du php


    Code:
    Si ! j'en es pris compte pour mon test perso mais ça n'a pas fonctionné donc j'ai envoyé la version basique pour qu'il puisse me corriger par rapport à celle là.
    Comment veux-tu qu'on t'aide si tu ne donnes pas le code qui ne fonctionne pas et le message d'erreur généré !
    Dernière modification par vande545 ; 05/04/2020 à 17h07.

  19. #18
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Dans le sens où tu le fais pour moi si ça ne te dérange pas bien-sur car j'ai honte de montrer mes erreurs ^^

  20. #19
    vande545

    Re : DEBUTANT : Arborescence dans du php

    Non justement personne "ne fera pour toi" car ce n'est pas le mode de fonctionnement.
    Ici c'est : aide-toi, le ciel t'aidera... et non l'inverse.
    Il n'y a pas de honte à faire des erreurs même grossières. On est tous passé par là et de toutes façons tu es bien caché derrière ton pseudo donc...

  21. #20
    Ikhar84
    Animateur Informatique

    Re : DEBUTANT : Arborescence dans du php

    D'autant plus que c'est en voyant ces erreurs, justement, que l'on pourra corriger et "guider".

    Cette demande n'est même plus hors charte, elle est carrément irrespectuseuse envers Vande qui t'épaule depuis le début, et les autres contributeurs que tu vas éloigner du coup...
    J'ai glissé Chef !

  22. #21
    umfred

    Re : DEBUTANT : Arborescence dans du php

    Tips: tu as plusieurs variables POST dans ton code; ne faudrait-il pas testé l'existence de toutes celles-ci ?

  23. #22
    Ikhar84
    Animateur Informatique

    Re : DEBUTANT : Arborescence dans du php

    Ben si une seul est postée, et que les champs sont marqués en required côté html, pas besoin, il suffit d'englober tous les posts dans le même if isset.

    Un petit try catch pour éviter les problèmes et surtout "détecter" les petits malins qui ont touché au code html devrait assurer une sécurité de base...
    J'ai glissé Chef !

  24. #23
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Ben voilà mon code avec les choses que j'ai cru comprendre
    Code PHP:
    <?php 
                
                
    if (!isset($_POST["naissance"])
                     {
                     exit();
                     }
                    
                if (!isset(
    $_POST["prénom"])
                     {
                     exit();
                     }
                 
                 if (!isset(
    $_POST["nom"])
                     {
                     exit();
                     }
                
                if (!isset(
    $_POST["sexe"])
                     {
                     exit();
                     }

                    if (
    $_POST["naissance"]>2002)
                    {
                        echo 
    "Attention, la vente en ligne est uniquement réservée aux membres
    majeurs. Nous déclinons toute responsabilité."
    ;
                    } else if (
    $_POST["sexe"]=="M") {
                        echo 
    'Monsier '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
                    } else if (
    $_POST["sexe"]=="F")
                    {
                        echo 
    'Madame '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
                    }
                    
                
    ?>

  25. #24
    umfred

    Re : DEBUTANT : Arborescence dans du php

    tu n'as pas tenu compte de la remarque n°2 de Ikhar84 sur l'année à changer tous les ans.
    et tu pourrais regrouper les tests d'existences

  26. #25
    vande545

    Re : DEBUTANT : Arborescence dans du php

    Au lieu de
    Code PHP:
    if ($_POST["naissance"]>2002
    qui ne fonctionnera que cette année, ce bout de code fonctionnera ad vitam aeternam (sauf si la majorité change):
    Code PHP:
    if ($_POST["naissance"]>(date("Y")-18)) 

  27. #26
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Umfred j'ai dis plus haut que je n'avais pas besoin de faire l'année à changer tous les ans.
    Et voila pour la nouvelle version j'ai plus d'erreur mais mon input sumlit ne s'affiche plus sur mon site
    Code HTML:
    <html>
    	<head>
    		<title>ExA</title>
    		<link rel="stylesheet" type="text/css" href=""/>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    	</head>
    <body>
    		 
    	<form action="ExA.php" method="POST">
    		<table >
    			<tr>
    				<td>Nom</td><td><input type="text" name="nom" autocomplete="on"  /></td>
    				<td>Prénom</td><td><input type="text" name="prénom"/></td>
    				<td >Date de naissance</td><td><input type="number" name="naissance" /> </td>
    		</table>
    
    	Sexe :
    	<input type="radio" name="sexe" value="M"/> Homme
    	<input type="radio" name="sexe" value="F"/> Femme</br></br>
    		
    		
    <?php 
    		if (!isset($_POST["naissance"],$_POST["prénom"],$_POST["nom"],$_POST["sexe"]))
    				 {
    				 exit();
    				 }
    		
    				if ($_POST["naissance"]>2002)
    				{
    					echo "Attention, la vente en ligne est uniquement réservée aux membres
    majeurs. Nous déclinons toute responsabilité.";
    				} else if ($_POST["sexe"]=="M") {
    					echo 'Monsier '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
    				} else if ($_POST["sexe"]=="F")
    				{
    					echo 'Madame '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
    				}
    				
    			?>		
    			
    <br/><br/>			
    	<input type="submit" value="Envoyer"/>
    	</form>
    </body>
    </html> 
    Dernière modification par WanFive ; 06/04/2020 à 13h32.

  28. #27
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Voila la dernière version mais mon bouton submit a disparu je ne sais pas pourquoi...

    Code HTML:
    <html>
    	<head>
    		<title>ExA</title>
    		<link rel="stylesheet" type="text/css" href=""/>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    	</head>
    <body>
    		 
    	<form action="ExA.php" method="POST">
    		<table >
    			<tr>
    				<td>Nom</td><td><input type="text" name="nom" autocomplete="on"  /></td>
    				<td>Prénom</td><td><input type="text" name="prénom"/></td>
    				<td >Date de naissance</td><td><input type="number" name="naissance" /> </td>
    		</table>
    
    	Sexe :
    	<input type="radio" name="sexe" value="M"/> Homme
    	<input type="radio" name="sexe" value="F"/> Femme</br></br>
    		
    		
    <?php 
    		if (!isset($_POST["naissance"],$_POST["prénom"],$_POST["nom"],$_POST["sexe"]))
    				 {
    				 exit();
    				 }
    		
    				if ($_POST["naissance"]>(date("Y")-18))
    				{
    					echo "Attention, la vente en ligne est uniquement réservée aux membres
    majeurs. Nous déclinons toute responsabilité.";
    				} else if ($_POST["sexe"]=="M") {
    					echo 'Monsier '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
    				} else if ($_POST["sexe"]=="F")
    				{
    					echo 'Madame '.$_POST['nom'].' '.$_POST['prénom'].' née en '.$_POST['naissance'];
    				}
    				
    			?>		
    			
    <br/><br/>			
    	<input type="submit" value="Envoyer"/>
    	</form>
    </body>
    </html> 

  29. #28
    umfred

    Re : DEBUTANT : Arborescence dans du php

    quelque chose me dit que la fonction exit() y est pour quelque chose. peut-être modifié le test pour ne plus avoir le problème

  30. #29
    WanFive

    Re : DEBUTANT : Arborescence dans du php

    Umfred oui c'est surement ça à mon avis mais je ne sais absolument pas par quoi remplacer je vais faire mes recherches

  31. #30
    vande545

    Re : DEBUTANT : Arborescence dans du php

    Le code affiché dans le message 27 ne fonctionne pas et ça se voit avec la coloration syntaxique !

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Architecture d'arborescence
    Par Yohannlunique dans le forum Logiciel - Software - Open Source
    Réponses: 19
    Dernier message: 23/10/2014, 14h17
  2. Arborescence infinie
    Par invite3443c7ee dans le forum Mathématiques du supérieur
    Réponses: 18
    Dernier message: 20/09/2007, 09h06
  3. imprimer une arborescence
    Par abracadabra75 dans le forum Logiciel - Software - Open Source
    Réponses: 21
    Dernier message: 21/11/2005, 16h29
  4. lecteur mp3 et arborescence
    Par invite21126052 dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 29/06/2005, 14h31