|
|
|
|
Bonjour,
je voudrais créer un espace utilisateur sur mon site internet (je parle d'un site internet pro pas perso) et je ne sais pas trop par quoi commencer...
pour info : les utilisateurs se sont inscrits sur le site via un formulaire d'inscription qui écrit les données dans la bdd mysql.
mon collègue à créer un code pour le login mais je n'arrive pas à faire en sorte que l'utilisateur ayant inscrit son nom et son password ne soit pas logué s'il y a une erreur... je sais pas si on me suit...
j'ai le code suivant sur la page de login avant le html :
<?php
if(isset($_COOKIE["cookie_user"]))
{
$cooki=$_COOKIE["cookie_user"];
?>
Bonjour <?php echo $cooki; ?>
<?
}
else
{
?>
<form action="candidats\index.php" method="post" name="login" id="log2">
<div align="right">
<input type="text" name="user" class="login">
<input type="password" name="mdp" class="login">
<INPUT TYPE=checkbox name="cookie" value="1">
<input type="submit" name="Submit" value="Ok" class="login">
</div>
</form>
<?php } ?>
Configuration: Windows XP Internet Explorer 6.0
Salut,
<form action="candidats\index.php" method="post" name="login" id="log2"> tout est là : il te faut définir un script de vérification dans ta table des données de l'utilisateur avant de le rediriger vers l'index, si les infos données son bonnes, vers la fenêtre de login le cas échéant. en gros il faut que tu le réécrives de cette manière : <form action="candidats\verification.php" method="post" name="login" id="log2"> et ton fichier verification.php en pseudo code vas ressembler à ça : récupération du login et du mdp vérification du log et du mdp dans la base de donnée si c'est ok -> aller sur la page index.php sinon -> retour sur la page de login |
Bon alors j'ai réussi à faire la vérification du login et du mot de passe par rapport à la base de données. (même le cookie fonctionne)...
<?php include 'connexion.php'?>
<?php
$user = isset($_POST['user']) ? $_POST['user'] : '';
$sqlrequest = mysql_query("select user from login where user LIKE ('%$user%');") or die (mysql_error());
?>
puis code dans ma page : <?php while(list($user)=mysql_fetch_array($sqlrequest)){ ?>
<td height="109"> <p class="boitecandidats">Bienvenue dans votre
espace (<?php echo $user ; ?>).<br>
enfin le code après html : <?php } mysql_close(); ?> avec ce code je récupère bien le nom mais ça me créé un tableau avec TOUT les noms lol... j'ai l'impression que c'est le while(list qui ne va pas... merci par avance pour vos réponses Cordialement, Riwalenn |
Salut, je pense qu'il serait intéressant de savoir à quoi ressemble le contenu de la variable $user avant de l'injecter dans ta requête mysql.
|
En fait, c'est pas ta requete en elle même qui est mauvaise, encore que je pense que mettre les % ne va pas : il te suffit d'avoir 2 noms très proches (à une ou deux lettres près) et tu te retrouves avec plusieurs user possibles.
if (isset ($_POST['user'])
{
// là tu met en ta requete mysql et l'affichage des données correspondantes
}
else
{
// la variable $_POST['user'] n'existe pas, à toi de voir ce que tu veux faire dans ce cas : retour sur la fenêtre de log, pas d'affichage de nom tout simplement, ...
}
comme ça, ça te permet de gérer de manière simple le cas où t'as qq'un qui essaye d'arriver sur la page sans être passé au préalable par la case départ, à savoir la fenêtre de log. Dans ce cas, si tu veux le rediriger vers la page de login : header("Location:adresse-de-ta-page.php");
dans ce cas, attention : majuscule à respecter strictement à "Location", d'autre part, au moment où php exécutera la fonction header(), il NE doit SURTOUT PAS y avoir eu d'affichage au préalable (genre message d'erreur, code html, ...) sinon il ne va rien faire que de te bouser dans les bottes. Voiloù.@+ |
Je comprends pas trop... j'ai l'impression que le code que tu me donnes est le même que celui que j'ai sur ma page de vérification :
<?php
include "connexion.php";
//cryptage MD5 du mot de passe pour comparer avec celui dans la base de donnée
$mdp=md5($_POST['mdp']);
$sqlrequest="select * from login where user='".$_POST['user']."' and pwd='".$mdp."';";
$results= mysql_query($sqlrequest);
$nbr_rp=mysql_num_rows($results);
$reponse=mysql_fetch_array($results);
if($nbr_rp!=0)
{
if($reponse['level']==1)
{
if(isset($_POST['cookie']))
{
setCookie("cookie_user",$_POST['user'].';'.$mdp,NULL,NULL,NULL,FALSE);
}
header("Location: bravo.php");
}
if($reponse['level']==2)
{
if(isset($_POST['cookie']))
{
setCookie("cookie_user",$_POST['user'].';'.$mdp,NULL,NULL,NULL,FALSE);
}
header("Location: candidats/index.php");
}
if($reponse['level']==3)
{
if(isset($_POST['cookie']))
{
setCookie("cookie_user",$_POST['user'].';'.$mdp,NULL,NULL,NULL,FALSE);
}
header("Location: entreprises/index.php");
}
}
else
{
header("Location: index.php");
}
?>
ça va pas devenir compliqué si je mets 2 fois le même code ?... moi ce que je veux c'est pouvoir afficher le nom de l'utilisateur sur ma page finale (sa page de de profil par ex)... j'suis un peu perdue là je dois avouer... Cordialement, Riwalenn |
Salut, je ne savais pas du tout ce que tu avais fait de ton côté puisque je ne partait que de quelques fragments de codes. En effet, ce que je t'ai mis ressemble à ce que tu as sur ta page de vérification. Dans ce cas, garde ce que tu as fait.
|
Alors j'ai fait un fichier login à part pour m'y retrouver :
<html>
<head>
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javaScript" src="effacer.js">
</script>
<link href="includes/styleglobal.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="global_form_nav_espace">
<form action="candidats\index.php" method="post" name="login" onsubmit="return control();" >
<fieldset>
<legend class="global_invisible">Votre identification</legend>
<label for="global_form_nav_login"><input type="text" name="user" value="Code d'accès" class="text" onfocus="efface('connect','login','password1','Code d\'accès','******')" title="code d'accès" onmouseover="window.status='Code d\'accès'" onmousedown="window.status='Code d\'accès'" onkeydown="window.status='Code d\'accès'" />
<label for="global_form_nav_pass"><input type="password" name="mdp" value="******" onfocus="efface('connect','password1','login','******','Code d\'accès')" title="Mot de Passe" onmouseover="window.status='Mot de Passe'" onmousedown="window.status='Mot de Passe'" onkeydown="window.status='Mot de Passe'" />
<INPUT TYPE=checkbox name="cookie" value="1">
<input type="submit" name="Submit" value="Ok" id="global_form_nav_submit">
</fieldset>
</form>
</div>
</body>
</html>
et donc j'ai bien le nom de l'utilisateur sur ma page d'entrée de l'utilisateur sans avoir ce tableau avec tous les logins : <?php while(list($user)=mysql_fetch_array($sql)){ ?>
<td height="109"> <p class="boitecandidats">Bienvenue dans votre
espace (<?php echo $user ; ?>).
seulement, si je navigue sur d'autres page et que je reviens sur ma page candidats, à ce moment-là j'ai de nouveau l'erreur, c'est-à-dire un tableau qui se répète avec tous les utilisateurs dedans... En gros ça fonctionne sans ma page de vérification, donc pas bon lol Cordialement, Riwalenn |
Comment créer une page de connexion avec plusieurs niveaux d'accès, par exepmle avec plusieurs utilisateurs:
|
Salut les mec , donc j'ai un petit bug !! pour mon site persO !! j'ai mi le script suivant sur mon site perso ( c'est un code d'indentificatiopn avec mots de passe ) mais le probleme c'est que je l'ai mis sur ma page d'aceuil mais on peut quand meme visister les autre sous page sans s'identifié !! blème NON ?? aider moi svp merci davance !! |
Oups j'ai oublier de mettre le script !! : <html>
|
Salut les mec , donc j'ai un petit bug !! pour mon site persO !! j'ai mi le script suivant sur mon site perso ( c'est un code d'indentificatiopn avec mots de passe ) mais le probleme c'est que je l'ai mis sur ma page d'aceuil mais on peut quand meme visister les autre sous page sans s'identifié !! blème NON ?? aider moi svp merci davance !! |