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 :

transmission de variable dans POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut transmission de variable dans POST
    Re ;
    formulaire page index.php:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <!DOCTYPE html>
    <HTML>
    <head>
    	<!--Pour forcer le navigateur à afficher en mode IE9, sans quoi il peut passer en mode quirks.-->
    	<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    	<meta charset="utf-8" />
    	<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <!-- application dynamique  -->
    	<link rel="shortcut icon" href="image/favs3g.ico" />
    	<link rel="stylesheet" media="screen" type="text/css" href="css/style_div.css"> 
    	<title> Identification</title>
    </head>
    <body>
     
     
    	<div class="entete">
    			<div class="date">
    				        <?php
    						$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
    						$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
    						$heure_courante = date ("H:i");
    						$dateDuJour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y")."     ".$heure_courante;
    						echo "Date:   ". $dateDuJour;
     
    						?> 
     
    			</div>
    			<div class="h1">
    				<h1> S-3-G: Identification </h1>
    		</div>
    	</div>
    		<div class="contenu"> 
    		<?php 
    			  if(isset($message))
    			  {
    			  echo $message;
    			  }
    		?>
    		<form class="form" action="http://localhost/s3g/codephp/valid.php" method="poste" " autocomplete='off'>
     
    			<p class="labelident"><label for="ident">Identifiant:</label> 
    					<input type="text" name="ident" value="" size="28" maxlength="23" id="ident" autofocus/>
     
    			</p>
    			<p class="labelpass"><label for="pass">Mot de passe:</label> 
    					<input type="password"  name="pass" value="" size="28" maxlength="23" id="pass"/>
     
    			</p>
     
    			<p class="buttons">
    				<button type="submit" name="sident" value="envoyer" >Connexion</button>
    			</p>
     
     
    		</form>
    	</div> 
    <footer class="pied">
    	<p> Copyright © s3g - Conception kacinet <p>
    </footer>
     
    </body>
     
    </html>
    page : valid.php
    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
    24
    25
    26
    27
    28
    <?php
    header('Content-type: text/html; charset=UTF-8');
    // On récupère les champs du formulaire, et on arrange leur mise en forme
     
    	if(isset($_POST['sident'])) // on verrifier que l'utilisateur a cliquer sur le bouton conexion
    				{
    				// on affecte les variables
    					$ident = $_POST['ident'];
    					$pass  = $_POST['pass'];
    				echo".$ident.";		// pour voir si les donées sont bien transmis	
     
    				if (isset($ident)) $ident=trim(htmlspecialchars(stripslashes($ident))); 
    										// trim()  enlève les espaces en début et fin de chaine
    										// htmlspecialchars() permet de transformer les balises XHTML en entités HTML.	
    				if (isset($pass)) $pass=trim(htmlspecialchars(stripslashes($pass)));
    										// stripslashes()  retire les backslashes ==> \' devient '
     
     
    				}
    	// Après la mise en forme et l'affectation, on vérifie la validité des champs
    	 if (empty($ident))
    			{ // L'utilisateur n'a pas rempli le champ pseudo
    			$message="Veuillez renseigner le champ identifiant...";
    			echo".$message.";
     
    			//header ('location: ../index.php');
     
    			}
    sujet de mon post:
    quand je clique sur connexion en laissant le champs identifiant vide j'ai le message ".Veuillez renseigner le champ identifiant..." alors comment le faire apparaitre sur mon formulaire sous le champs identifiant?
    l'echo de la variable $ident ne m'affiche rien lors du teste?
    j'ai activé la variable globals (on).
    une aide sera la bienvenue

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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
    Par défaut
    Euh tu affiches pas ta variable là.
    Met directement :
    Pour utiliser les points c'est pour concaténer ta variable à du commentaire du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Ma variable identifiant vaut ".$ident." . Le test fonctionne";
    Puis j'ai jamais trop compris le fait de vérifier si le bouton a été appuyé ? Tu devrais plutot vérifier que ton champ login est bien rempli + le champs mot de passe.

    if((!empty($_post ....

    Ce que je propose :
    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
    24
    <?php
    header('Content-type: text/html; charset=UTF-8');
    // On récupère les champs du formulaire, et on arrange leur mise en forme
     
    	if((!empty($_POST['ident']))&&(!empty($_POST['pass']))) // Vérification que les champs ne sont pas vides
    	{
     
    		echo $_POST['ident'] ;	// pour voir si les donées sont bien transmis	
     
    		$ident=trim(htmlspecialchars(stripslashes($_POST['ident']))); 
    			// trim()  enlève les espaces en début et fin de chaine
    			// htmlspecialchars() permet de transformer les balises XHTML en entités HTML.	
    		$pass=trim(htmlspecialchars(stripslashes($_POST['pass'])));
    			// stripslashes()  retire les backslashes ==> \' devient '
    	}
    	// Direct on regarde si c'est vide
    	else
    	{ // L'utilisateur n'a pas rempli le champ pseudo
    		$message="Veuillez renseigner le champ identifiant / mot de passe...";
    		echo $message ;
    		//header ('location: ../index.php');
     
    	}
    ?>
    Au lieu d'affecter tes variables poste et les vérifier plus tard, je propose un contrôle direct avec les !empty, ainsi si c'est vide, tu passes direct dans le else et affiche Erreur mot de passe ou identifiant.
    Ensuite, si ca passe la première condition, c'est que forcément tes variables sont affectés et non vides (pas besoin de refaire des isset derrière ...)

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    j'ai activé la variable globals (on).
    Et bien il valait mieux pas.
    La mettre à Off rend les choses plus sécurisées.
    Puis ce n'est pas global, mais register_global.

    La grosse insécurité que cela provoque quand on l'active, c'est de transformer chaque éléments des tableaux super globaux en variables.
    Dans ton exemple $ident et $pass seront automatiquement créés.


    Le mieux serait de créer u tableau où tu affecterais chaque message d'erreur selon la nature de l'erreur lors des différentes vérification.
    A la suite de ça, il suffit de vérifier si l'élément existe ou pas.
    Exemple :
    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
    24
    25
    26
    27
    28
    29
    <?php
    // Traitements/vérifications
    $erreurs_msg = array();
     
    // on verrifi que l'utilisateur a cliquer sur le bouton connexion
    if (isset($_POST['sident'])) {
        // on affecte les variables
        $ident = $_POST['ident'];
        $pass = $_POST['pass'];
     
        // On vérifie que les élément sont valides
        if (empty($ident )) {
            $erreurs_msg['ident'] = 'Veuillez saisir un Identifiant valide.';
        }
     
        if (empty($pass)) {
            $erreurs_msg['pass'] = 'Veuillez saisir un de passe valide.';
        }
    }
     
     
    // Partie Interface / HTML
    if (!empty($erreurs_msg['ident'])) {
        echo $erreurs_msg['ident'].'<br />';
    }
     
    if (!empty($erreurs_msg['pass'])) {
        echo $erreurs_msg['pass'].'<br />';
    }

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Re ; bob633 j'ai essaye ton code mais rien ne s'affiche.
    RunCodePhp:
    j'ai activé register_globals pour permettre le passage des données du formulaire a la page valid.ph via la variable POST en détriment de la sécurité.
    si je désactive register_globals comment dois-je faire pour transmettre les données du formulaires.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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
    Par défaut
    Citation Envoyé par redoran Voir le message
    Re ; bob633 j'ai essaye ton code mais rien ne s'affiche.
    RunCodePhp:
    j'ai activé register_globals pour permettre le passage des données du formulaire a la page valid.ph via la variable POST en détriment de la sécurité.
    si je désactive register_globals comment dois-je faire pour transmettre les données du formulaires.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form class="form" action="http://localhost/s3g/codephp/valid.php" method="poste" " autocomplete='off'>
    C'est faut, met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form class="form" action="valid.php" method="post" " autocomplete='off'>
    C'est parce que ton method fonctionne pas que tu récupére rien dans tes $_POST ... Alors que quand tu fait ton isset de ta variable, ca fonctionne car pas de données en POST

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    J'avais pas vu l'erreur sur poste
    Mais il y a encore une quote " de trop.
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form class="form" action="valid.php" method="post" autocomplete="off">
    si je désactive register_globals comment dois-je faire pour transmettre les données du formulaires.
    C'était surement dû à cette erreur de syntaxe c-dessus.
    En tout cas register_global n'agit pas sur la manière de transmettre les données, il agit uniquement dans la manière où elles seront obtenues.
    Si à On : Tous les éléments deviendront des variables.
    Si à Off : Il faudra exploiter les tableaux super globaux (comme $_GET, $_POST) pour récupérer les données.

  7. #7
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Re; bob633
    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part

    <form class="form" action="http://localhost/s3g/codephp/valid.php" method="poste" " autocomplete='off'>

    C'est faut, met :

    c'est une mesure de sécurité qui veut dire que le formulaire été bien posté de mon site www.monsite.com que j'ai changer en localhost du moment que je travail en local.
    j'ai meme changer en action="valid.php" résultat : erreur not found....
    c'est normale parce que le fichier se trouve a ./codephp/valid.php

    RunCodePhp : meme j'ai enlevé le (" ) résultat affiche toujours une page blanche ( champs remplis ou non).

Discussions similaires

  1. [AJAX] Utiliser une variable dans $.post()
    Par vinze60 dans le forum AJAX
    Réponses: 2
    Dernier message: 14/01/2012, 13h55
  2. recuperation string+variable dans post
    Par ramdamriddim dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2009, 14h58
  3. transmission de variable dans un lien
    Par Bathou dans le forum Langage
    Réponses: 4
    Dernier message: 04/06/2008, 10h38
  4. transmission de variable dans url
    Par heteroclite dans le forum Langage
    Réponses: 13
    Dernier message: 15/09/2006, 20h29
  5. Problème dans transmission de variables dans anim
    Par baleiney dans le forum Flash
    Réponses: 1
    Dernier message: 13/08/2006, 10h26

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