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 :

Passage paramètre formulaire


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Août 2011
    Messages : 103
    Points : 49
    Points
    49
    Par défaut Passage paramètre formulaire
    Ma question est peut être bête mais tant pis !
    En faite j'ai un formulaire d'authentification qui si les informations sont correcte ouvre la page Accueil et dans cette page je voudrai afficher le nom et prénom saisie dans le formulaire.
    J'ai recherché sur internet mais les exemples sont avec un appel de la page dans le paramètre action du formulaire mais moi j'ai rien dans cette action.

    Connexion.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
     
    <?php
    // inclut les variables de connexion
    include_once("./mysql.php");
    // test de connexion
    $connect = mysql_connect($host,$login,$mdp);
    if ( ! $connect )
    die ("connection impossible");
    //test de base de données
    $mabasededonnee=$db;
    mysql_select_db($mabasededonnee) or die ("Base de données inconnue");
     
    // test si les champs sont défini
    if ((isset($_POST['prenom'])) && (isset($_POST['nom'])) && (isset($_POST['password']))) {
    	$prenom = $_POST['prenom'];
    	$nom = $_POST['nom'];
    	$password = $_POST['password'];
    	//test si les champs sont vides
    	if ((!empty($prenom)) && (!empty($nom)) && (!empty($password))) {
    		$sql = 'select * from FPDF_utilisateurs where prenom='."'".$prenom."'".' and nom='."'".$nom."'".' and password='."'".$password."'" ;
    		//echo $sql;
    		//éxécution requête
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		// nb de lignes du résultat de la requête
    		$existe = mysql_num_rows($req);
    		// si l'utilisateur n'éxiste pas
    		if ($existe == 0) {
    			$erreur = 'Identifiant inconnu';
    		}
    		// si il éxiste redirection vers la page Accueil
    		else {
    			header('Location: accueil.php');
    		}
    	}
    	// si l'in des champs est vide
    	else {
    		$erreur = 'Un des champs est vide';
    	}
    }
    ?>
    <html>
    	<head>
    	<title> Connexion </title>
    	</head>
    	<body>
    		<h1> Authentification </h1>
    		<form action="" method="post">
    			<p>Prénom : <input type="text" name="prenom" maxlength="30" size="30"></p>
    			<p>Nom : <input type="text" name="nom" maxlength="30" size="30"></p>
    			<p>Mot de passe : <input type="password" name="password" maxlength="30" size="30"></p>
    			<p> <input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    			</p>
    		</form>
    		<?php if (isset($erreur)) echo $erreur; ?>
    	</body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html>
    	<head>
    	<title> Accueil </title>
    	</head>
    	<body>
    		<h1> Passez votre commande </h1>
     
    	</body>
    </html>

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Je suis pas sur de comprendre ce que tu veux exactement, mais un <form ...> sert à envoyer les données d'un formulaire à une page de ton site que tu dois définir dans action. action doit donc recevoir en paramètre ta page d'accueil de ton site dans laquelle tu fais le test.

    Dans ton exemple, c'est la même page qui affiche le formulaire et qui traite les données reçues. C'est tout a fait faisable, mais alors d'une part, tu remet le nom de ta page dans "action", et d'autre part, tu dois faire un traitement qui distingue si les parametres sont remplis ou non, de sorte à afficher soit le formulaire d'identification, soit ce que tu as a affiché une fois identifier.

    De la façon dont c'est fait, tu auras toujours ton formulaire d'authentification, même si tu soumet ton formulaire.

  3. #3
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    au passage ... avec ton code tu ouvres une belle porte pour l'injection sql
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Août 2011
    Messages : 103
    Points : 49
    Points
    49
    Par défaut passage paramètre formulaire
    J'ai revu mon code sa marche mais le seul truc c'est que je n'arrive pas à afficher la variable $erreur pourtant je lui affecte bien une chaine de caractère et je teste dans index.php si celle si existe.

    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
     
    <html>
    	<head>
    	<title> Connexion </title>
    	</head>
    	<body>
    		<h1> Authentification </h1>
    		<form action="accueil.php" method="post">
    			<p>Prénom : <input type="text" name="prenom" maxlength="30" size="30"></p>
    			<p>Nom : <input type="text" name="nom" maxlength="30" size="30"></p>
    			<p>Mot de passe : <input type="password" name="password" maxlength="30" size="30"></p>
    			<p> <input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    			</p>
    		</form>
    		<p> <?php if (isset($erreur)) echo $erreur;?></p>
    	</body>
    </html>
    accueil.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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    <?php
    // inclut les variables de connexion
    include_once("./mysql.php");
    // test de connexion
    $connect = mysql_connect($host,$login,$mdp);
    if ( ! $connect )
    die ("connection impossible");
    //test de base de données
    $mabasededonnee=$db;
    mysql_select_db($mabasededonnee) or die ("Base de données inconnue");
     
    // test si les champs sont défini
    if ((isset($_POST['prenom'])) && (isset($_POST['nom'])) && (isset($_POST['password']))) {
    	$prenom = $_POST['prenom'];
    	$nom = $_POST['nom'];
    	$password = $_POST['password'];
    	//test si les champs sont vides
    	if ((!empty($prenom)) && (!empty($nom)) && (!empty($password))) {
    		$sql = 'select * from FPDF_utilisateurs where prenom='."'".$prenom."'".' and nom='."'".$nom."'".' and password='."'".$password."'" ;
    		//echo $sql;
    		//éxécution requête
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		// nb de lignes du résultat de la requête
    		$existe = mysql_num_rows($req);
    		// si l'utilisateur n'éxiste pas
    		if ($existe == 0) {
    			$erreur = 'Identifiant inconnu';
    			header('Location: index.php');
    		}
    	}
    	// si l'in des champs est vide
    	else {
    		$erreur = 'Un des champs est vide';
    		header('Location: index.php');
    	}
    }
    ?>
    <html>
    	<head>
    	<title> Accueil </title>
    	</head>
    	<body>
    		<h1> Passez votre commande </h1>
    		<p> Vendeur : <?php echo $prenom.' '.$nom ?> </p>
    		<form>
    		<table>
    		<tr>
    			<td width=20>
    				ID
    			</td>
    			<td width=150>
    				Intitulé
    			</td>
    			<td width=50>
    				Prix
    			</td>
    			<td width=50>
    				Quantité
    			</td>
    		</tr>
    		<?php 
    			$sql = 'select * from FPDF_articles';
    			$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    			$nb_articles = mysql_num_rows($req);
    			if ($nb_articles == 0) { ?>
    				<p> Aucun articles dans la base<p>
    			<?php }
    			else {
    				while ($articles = mysql_fetch_array($req)) {
    					echo '<tr><td>'.$articles['id'].'</td>
    						<td>'.$articles['intitule'].'</td>
    						<td>'.$articles['prix'].'</td>
    						<td><input type="text" name="text'.$articles['id'].'" value="0" size="3" maxlength="3"></td></tr>';
    				}
    			} ?>
    		</table>
    		</br>
    		<input type="submit" name="envoyer" value="Valider commande">
    		</form>
    	</body>
    </html>
    Quand à t'as remarque ledisciple, c'est un tp que je dois réaliser et on n'as pas vu encore les injections sql.

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Halala, ils devraient commencer les cours par l'utilisation de framework ou de template, histoire d’arrêter de mélanger le PHP, le HTML et le JS... Enfin...

    Les variables PHP ne sautent pas d'une page à l'autre... Quand tu change de page, considère que tu démarre un nouveau programme et que toutes tes variables sont perdues...

    Pour passer les variables d'une page à l'autre, t'as plusieurs solution :

    -Soit tu utilise une variable de session (ou variable superglobale).

    Une variable de session est utilisable lorsque tu démarre une session avec session_start() (a mettre en tout premier sur ta page), et s'utilise comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['nom_de_ta_variable'] = valuer_de_la_variable;
    avec cette méthode, $_SESSION['nom_de_ta_variable'] reste disponible tout au long de la navigation ou jusqu'a expiration de la session.

    - Soit tu passe ta variable directement dans l'URL de la page que tu appel (équivalent GET du formulaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="./accueil.php?variable=<?php echo $valeur; ?>">lien</a>
    - soit directement dans le formulaire (GET ou POST), avec un champ de type hidden :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="POST" action="./accueil.php"> ... <input type="hidden" name="nom_variable" value="<?php echo $valeur; ?>"> ...  </form>

Discussions similaires

  1. Passage paramètre en formulaire
    Par Arnaud F. dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/10/2006, 11h03
  2. [JSP]Pb passage de paramètres formulaire
    Par arnapou dans le forum Servlets/JSP
    Réponses: 21
    Dernier message: 12/07/2006, 15h21
  3. [SQLSERVER]Pb passage paramètre procédure stockée
    Par galinijay dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/08/2005, 11h59
  4. [JSP] Problème passage paramètre
    Par besco dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/09/2004, 10h15
  5. Fenêtre enfant MDI : passage paramètre à la création
    Par Orangina dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/07/2004, 11h55

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