Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour les amis alors voila mon problème :
je me suis inspiré des exemples sur internet pour faire un formulaire d'identification, j'avais le formulaire et le code php separé dans 2 fichiers et tout marchait très bien. MAIS car il y a toujours un 'mais' j'ai voulu utilisé les sessions et la tout plante, enfin tout plante...
J'ai toujours mon formulaire mais cette fois ci en un seul fichier avec le code php et peu importe ce que je rentre en login et mdp, au clic sur le bouton submit la page se recharge et les champs se vident.
J'ai du loupé un truc car je n'ai pas tout compris sur les sessions...
voici mon code :
// Destruction de la session ?
if ((isset($_GET['action'])) && ($_GET['action'] == 'logout'))
{
$_SESSION = array();
session_destroy();
session_start();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Identification</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
$_SESSION['login'] = '';
$_SESSION['password'] = '';
mysql_connect("localhost", "root", "");
mysql_select_db("joomla");
$delai=3;
$url='http://127.0.0.1/joomla/index.php?option=com_content&view=article&id=51&Itemid=55';
if (isset($_POST['submit']))
{
// bouton submit pressé, je traite le formulaire
$log = (isset($_POST['login'])) ? $_POST['login'] : '';
$mdp = (isset($_POST['mot_de_passe'])) ? $_POST['mot_de_passe'] : '';
$result = mysql_query( "SELECT nom, mdp FROM `membre` WHERE `nom` = '$log' AND `mdp` = '$mdp'");
$row = mysql_fetch_assoc($result);
if ($log=="test" AND $mdp == "123") // Si le technicien se connecte
{
// On le redirige vers la page technicien.php
$_SESSION['login'] = "test";
$_SESSION['password'] = "123";
header('Location: technicien.php');
}
else if($log == $row["nom"] AND $log !="" AND $mdp == $row["mdp"] AND $mdp !="") //si le client se connecte
{
//on le redirige vers la page client.php
$_SESSION['login'] = $log;
$_SESSION['password'] = $mdp;
header('Location: client.php');
}
else// Sinon, on affiche un message d'erreur
{
?>
<SCRIPT language="Javascript">alert('Identifiant et/ou mot de passe incorrect !');</SCRIPT>
<?php
header("Refresh: $delai;url=$url");
}
};?>
<?php
if (!isset($_POST['submit']))
{?>
<form id="contact" action="" method="post"> <fieldset style="text-align: center;"><legend>Identifiant / mot de passe</legend>
<p><label style="display: block; width: 105px; float: left;" for="nom">Identifiant :</label><input id="id" name="login" type="text" /></p>
<p style="text-align: center;"><label style="display: block; width: 105px; float: left;" for="mdp">Mot de passe :</label><input id="mdp" name="mot_de_passe" type="password" /></p>
</fieldset>
<div style="text-align: center;"><input name="Submit" type="submit" value="Envoyer !" /></div>
</form><form action="login.php" method="post"><span style="color: #ff0000;">Attention : champs sensible à la casse !</span><br /></form>
<?php
};
?>
</body>
</html>
Dernière modification par ziko (27-12-2010 09:57:22)
Hors ligne
Saluton,
Déjà, si tu veux piloter ton développement, évite de bloquer les messages d'erreur avec @, voire positionne correctement error_reporting.
Là, à première vue, je ne comprends pas ce qui pourrait expliquer ce dont tu parles, mais je sors d'une gastro alors je suis un peu dans le gaz.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Salut,
En ayant regardé rapidement : Submit != submit
A+
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Alors la, chapeau mcAllan, c'est clair net et précis, problème résolu.
Navré de vous avoir fait lire tout se code juste pour un pb de Majuscule.
MK : en fait j'ai mis le @ pour bloquer les notices qui me disent que $log et $mdp ne sont pas définis.
Et devant session_start(); qui me dis qu'une séssion est déjà crée.
Ça aura quel effet plus tard si je continu à développer comme ca ?
Par contre maintenant lorsque un client se connecte, en récupérant son id dans la BDD, je voudrais pouvoir créer un lien du genre profil.php?id=3
Avec 3 = l'id du client, afin que chaque client soit rediriger vers sa propre page profil
est-ce possible ? comment s'appel se genre de redirection pour que je puisse me renseigner ?
Merci encore pour vos réponses !
Dernière modification par ziko (27-12-2010 14:25:06)
Hors ligne
en fait j'ai mis le @ pour bloquer les notices qui me disent que $log et $mdp ne sont pas définis.
Et devant session_start(); qui me dis qu'une session est déjà crée.Ça aura quel effet plus tard si je continu à développer comme ca ?
Excellente question.
Que crois-tu qu'il peut se passer si tu supprimes les diodes du tableau de bord de ta voiture qui t'indiquent un défaut d'huile, ou de freinage ?
Par contre maintenant lorsque un client se connecte, en récupérant son id dans la BDD, je voudrais pouvoir créer un lien du genre profil.php?id=3
Avec 3 = l'id du client, afin que chaque client soit rediriger vers sa propre page profil
est-ce possible ? comment s'appelle se genre de redirection pour que je puisse me renseigner ?
En fait là, il ne s'agit pas de redirection mais de passage de paramètre par l'url, que tu récupères dans profil.php avec $_GET['id'], mais autant continuer avec une variable de session pour passer l'id à profil.php.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
En effet, très bonne réponse pauvre voiture...
Donc si j'ai bien compris pour le passage de paramètre je dois faire un truc qui ressemble à ca :
OU
$id = ($_GET['id']);
et dans le if qui détermine si c'est un client qui se connecte je fais :
est possible ?
Hors ligne
Possible, oui, mais souhaitable ???
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
nom est unique, id l'est aussi ?
Le principe de passer une variable par l'url (ou par session) pour la récupérer et afficher les bonnes informations est en général de passer la clé primaire de l'enregistrement.
Cela te fait gagner des gains de performances (la clé primaire est indexée) chose qui ne se fait pas avec n'importe quel champs (sauf si tu l'indexe toi même).
Hors ligne
Hmm non ça ne marche pas, ça marque carrément : client.php?id=<?php echo $id ?> dans la barre d'adresse.
Je crois que je mélange un peu tout :
en faisant
dans login.php j'obtient 51 qui est l'id de mon article (j'utilise joomla). Donc c'est pas la bonne solution
Du coup j'ai essayé avec
sauf que la ça n'affiche absolument rien.
Tu pourrais m'éclaircir un peu stp ?
Edit : xTG, oui id est aussi unique, clé primaire, auto-incrémente
Dernière modification par ziko (27-12-2010 16:22:25)
Hors ligne
Problème résolu !
Je laisse la solution si jamais quelqu'un a le même pb :
login.php
client.php
Merci beaucoup pour votre aide, ca m'a vachement aidé.
Hors ligne
Quand je te disais que j'étais dans le gaz....
header() étant une fonction PHP, l'appel à PHP au sein de la fonction posait, a minima, problème.
Ceci dit, passer un identifiant en clair via le net c'est quand même assez kamikaze, qu'en penses-tu ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Oui tu as raison, c'est pour ca que je vais passer un id + le nom du client que lui seul est censé connaitre. Ça renforce un petit peu la sécurité non ?
Hors ligne
Merci beaucoup tout marche parfaitement, vous êtes au top !!!
Hors ligne
tout marche parfaitement, vous êtes au top !!!
Ça nous représente plutôt bien ça, comme formule...
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Salut a tous,
plutôt que d'ouvrir une nouvelle discussion sur le même thème (ou presque), je poursuis celle ci.
j'ai ma page formulaire (login-password) qui va vérifier dans ma base de données et permet (ou pas) l'accès aux pages privées. là variable de session MM_Username retient automatiquement le login de l'utilisateur.
le système fonctionne bien et je ne pense pas le changer.
mais j'aimerais pouvoir garder en mémoire de session l'id unique de l'utilisateur. qu'il faut donc aller chercher dans la base de donnée, juste a coté du login, au moment de la connexion.
et là je bloque. l'aller se passe bien (vérification du login-pw vers la bdd), mais pas le retour (prise en mémoire de la valeur id de la bdd vers une variable de session).
quels sont les codes actuels dont vous avez besoin pour me conseiller (je veux pas vous flooder avec des codes inutiles) ?
Hors ligne
En fait, tout est là
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1