Récupération de variables d'un formulaire

Eléphanteau du PHP | 48 Messages

11 juin 2009, 09:33

Bonjour,

Voilà mon problème (j'ai eu beau cherché sur Internet, testé un max de solutions proposées, mais rien ne fonctionne... Donc j'ai dû me planter...)
Le principe est le suivant :
Je sécurise une page avec un login et un mot de passe à rentrer (nous sommes 2 à y accéder).
Une fois les logins et mdp rentrés, ca m'ouvre ma page d'administration (jusque là pas de problème).

Je voudrais simplement afficher un "Bonjour nom_de_l_utilisateur" dans cette page et c'est là que ca bugue. Pouvez-vous m'aiguiller ?

Voilà mes pages.

Page login.php
<?php
if ($Message == "Invalide")
{ print ("<p align=\"center\"><b>Le Login et le mot de passe ne sont pas valides !</b></p>\n");
}
print ("<form action=\"Log.php\" method=\"post\">\n");
print ("&nbsp;&nbsp;Login : <input type=\"text\" name=\"login\" size=\"20\"><br>\n");
print ("&nbsp;&nbsp;Password : <input type=\"password\" name=\"mdp\" size=\"20\">\n");
print ("<input type=\"submit\" name=\"submit\" value=\"Valider\">\n");
?>
Page admin.php (la partie où ca coince)
Le login rentré dans la page login.php correspond au username de la table agent.
Normalement je récupère la donnée du formulaire via $test=$_POST['login'] et donc ma requête devrait sélectionner l'agent dont le login a été rentré.
Mais quand j'affiche la page admin, ca me met juste "Bonjour"...
<?php
		include("connect.php");
		include("connexion.php");
		$connexion = Connexion (NOM, PASSE, BASE, SERVEUR);
		$test=$_POST['login'];
		$sql = "SELECT username, prenomagent,nomagent FROM agent WHERE username='$test'";
		$resultat = mysql_query ($sql, $connexion) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
		while ($tabagent = mysql_fetch_array($resultat, MYSQL_ASSOC)) {
		echo "Bonjour ".($tabagent['prenomagent']." ".$tabagent['nomagent']);
		}
		?>
		

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 juin 2009, 09:49

Bonjour,

Quand tu dis que tu affiches la page admin, c'est que tu l'appelles directement dans l'URL ?

En fait où est la relation entre les 2 pages ? Comment passes-tu de l'une à l'autre ?

Eléphanteau du PHP | 48 Messages

11 juin 2009, 10:01

J'ai omis une page log.php ... :roll:
<?php
if ((($login == "X") or ($login == "Y")) && ($Mdp == "motdepasse")) //Login et Password
{ header ("Location: page_admin.php"); 
 exit; 
}
else
{ header ("Location: login.php?Message=Invalide");
 exit;
}
?>

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 juin 2009, 10:13

Voilà en fait tu as 3 pages en tout apparemment. La page log.php perd l'information puisque tu ne la transmets plus une fois la redirection effectuée.

Tu dois utiliser les sessions pour que tes données restent disponibles sur la page admin.

Eléphanteau du PHP | 48 Messages

11 juin 2009, 10:20

Euh... Et ca marche comment ? :roll:
Désolé d'être nul, j'apprends le php petit à petit...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 juin 2009, 10:41

Jette un oeil ici http://www.phpdebutant.org/article47.php

c'est à peu près ce que tu veux faire. Particulièrement la page login et verif du tuto.

Eléphanteau du PHP | 48 Messages

11 juin 2009, 10:47

C'est bon Charabia ! J'y suis arrivé à force de bidouilles !

Merci de ton aide en tout cas !

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 juin 2009, 10:51

De rien ;) N'oublie pas de marquer comme résolu !

Mais attention aux bidouilles qui peuvent vite devenir une vraie galère ! Tu t'es débrouillé sans les sessions ?

Eléphanteau du PHP | 48 Messages

11 juin 2009, 11:08

Bon en fait, je reviens à la charge pour un petit problème...

Les sessions fonctionnent pour nos logins mais si on met un autre user, ca dit login et mot de passes invalides (ca ok) mais du coup on peut plus se connecter du tout même avec notre login...

Ou est l'erreur, je suis sur que c'est tout con...
Voilà les changements que j'ai fait.

Page log.php
<?php 
session_start(); //doit être appelée avant toute utilisation des sessions 
$_SESSION['login']=$login; 
if ((($login == "X") or ($login == "Y")) && ($Mdp == "motdepasse")) 
{ header ("Location: page_admin.php"); 
 exit; 
}
else
{ header ("Location: login.php?Message=Invalide");
 exit;
}
?>
page admin.php

Au tout début
<?php 
     session_start(); 
     if(isset($_SESSION['login'])) 
     { 
	 $_SESSION['login'] = $login;
          unset($_SESSION['login']); 
     } 
?> 
Puis dans le body
<?php
		include("connect.php");
		include("connexion.php");
		$connexion = Connexion (NOM, PASSE, BASE, SERVEUR);
		$sql = "SELECT username, prenomagent,nomagent FROM agent WHERE username='$login'";
		$resultat = mysql_query ($sql, $connexion) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
		while ($tabagent = mysql_fetch_array($resultat, MYSQL_ASSOC)) {
		echo "<font face=\"Freestyle Script\" size=\"6\" color=#0099CC><i>Bonjour ".($tabagent['prenomagent']." ".$tabagent['nomagent'])."</i></font>";
		}
		?>


Edit :

C'est tout bon, mon UNSET était mal placé, c'est pour ça que ça déconnait !