Bonjour,
J'essaie de passer des varaible dans un formulaire mais certaines choses de passent pas. Je m'explique:
Pour accéder accéder, il faut vérifier que l'utilisateur est identifié, si ce n'est pas le cas, l'utilisateur est renvoyé sur une page d'identification : www.nomdomaine.com/login.php?back= [...] ntifiant=2
Back est la page à laquelle l'utilisateur souhaitait accéder avant la vérification de son login. Les variables sont donc récupérées avec $_GET. L'utilisateur remplit donc le formulaire avec un login et mot de Passe via un formulaire, Les valeurs sont à ce moment précis renvoyée avec la méthode POST (et non plus avec la méthode GET). La page de login est rechargé et renvoie sur back si c'est ok ou recharge le formulaire sinon. On note cependant que les varibla back et identifiant doivent aussi être passée grâce à ce formulaire. Voici un résumé du code:
---------------------------------------------------------------
//Dans un premier temps, seul l'id et le back sont transmis à cette page avec la méthode GET
//Dans un deuxième temps (après l'identification) les infos sont passées avec la méthode POST
if (isset($_GET['back'])) { $back=$_GET['back'];}
if (isset($_GET['identifiant'])) {$id=$_GET['identifiant'];}
if (isset($_POST['back'])) {$back=$_POST['back'];}
if (isset($_POST['identifiant'])) {$id=$_POST['identifiant'];}
if (isset($_POST['login'])) {$login=$_POST['login'];}
if (isset($_POST['password'])) {$password=$_POST['password'];}
if (isset($_POST['send'])) {$send=$_POST['send'];
// On détruit les GET vu qu'on va utiliser la methode post pour le formulaire (surtout valable lors du premier chargment de la page)
unset($_GET['id']);
unset($_GET['back']);
include("confidentiel/fonctions.php" );
connexion();
$error_login=false;
//Il faut gérer deux choses:
//- si la combinaision login/password exsite dans la base
//- Si c'est le cas, il faut voir si l'utilisateur en question a le droit d'accéder à cette page (ie a le bon id)
if ($send!='')
{
//Ici a lieu l'ananlyse de l'identifcation
}
mysql_close();
echo ParseTpl(makeUp('../style/bandeau','login','../style/','../'));
if($error_login)
{
echo "<p class=\"centre\">Erreur de Login ou de password !</p>";
}
else //L'utisateur existe ($error_login=false -> la combinaison login/mot de passe est correct) mais il n'a pas le droit d'accéder à la page
{
echo "<p class=\"centre\">Désolé mais tu n'es pas autorisé à accéder à cette page !</p>";
}
?>
<form action="login.php" method="post">
<fieldset>
<legend class=legend>Identification</legend>
<table style="background:none;border-width:0;width:10%;margin-left:40% ; margin-right:40%">
<tr>
<td>Nain: </td>
<td><input class=textForm type="text" name="login" /> </td>
</tr>
<tr>
<td>Pass:</td>
<td><input class=textForm type="password" name="password" /></td>
</tr>
<tr>
<td class="centre" colspan="2">
<?php
if($error_login)
{
echo "<input type=\"hidden\" name=\"back\" value=\"$back\" />";
}
else
{
echo "<input type=\"hidden\" name=\"back\" value=\"$back\" />\n"
."<input type=\"hidden\" name=\"id\" value=\"$identification\" />";
}
?>
<input type="hidden" name="send" value="1" />
<input class=inputButton type="submit" value="OK" />
</td>
</tr>
</table>
</fieldset>
</form>
</body>
</html>
---------------------------------------------------------------------
Le pb, c'est que je récupère parfois des valeur vides dans le fomulaire (soit au premier chargment de la page (id et back récupérés avec GET, soit après un ou plusieurs chargement du formulaire (id et back renvoyés avec la méthode POST).
Je crois bien que j'ai un pb avec les méthodes GET et POST (ou alors c'est un pb qui m'échappe et c'est pour ça que je pose la question ici pour voir si qqun peut éclairer ma lanterne
Message édité par cakeman le 08-06-2004 à 10:08:33
---------------
Qui ne s'est jamais perdu dans les voies impénétrables de l'informatique !