Si le nom d'utilisateur & Mot de passe Sont Corrects, Commencez la Session de
Je suis en train de travailler sur la base d'un système de connexion qui permet d'inscription /inscrivez-vous dans le stockage des utilisateurs dans une base de données MySQL. Je l'ai donc les gens peuvent s'inscrire, il stocke le nom d'utilisateur et un mot de passe haché dans la DB. Quand quelqu'un se connecte, il affiche un message de succès ou un message d'erreur en fonction de si le nom d'utilisateur et le mot de passe associé.
Mon problème réside dans la fonction de connexion. J'ai besoin de créer la session de l'utilisateur et le rediriger vers le connecté dans la section réservée du site, au lieu d'afficher le message de réussite qui est actuellement là-bas. Je ne suis pas sûr de la façon de le faire...
Voici mon code:
Connexion /S'Inscrire Fonctions
function login($username, $password) {
$userpass = sha1($password);
$result = mysqli_query($con, "SELECT * FROM members WHERE username='$username' AND password='$userpass'");
while($row = mysqli_fetch_array($result)) {
$success = true;
}
if($success == true) {
echo 'Success!';
} else {
echo '<div class="alert alert-danger">Oops! It looks like your username and/or password are incorrect. Please try again.</div>';
}
} //END LOGIN FUNCTION
function register($username, $password) {
$userpass = sha1($password);
//Check if Username Exists
$result = mysqli_query($con,"SELECT * FROM members WHERE username='$username'");
while($row = mysqli_fetch_array($result)) {
$userexist = 1;
}
if($userexist > 0) {
echo '<div class="alert alert-danger">Sorry, it looks like that username is already taken.</div>';
} else {
$newmember = "INSERT INTO members SET username='$username', password='$userpass'";
if(mysqli_query($con,$newmember)) {
echo '<div class="alert alert-success">Congrats! You can now log in using your username and password</div>';
}
}
}
- si le succès de l'utiliser pour rediriger
header('Location: http://domain.com/pagetoredirectto');
- Un très brut methode consiste à insérer un
meta refresh
dans votre code HTML. - Merci pour vos commentaires. J'aurais dû être plus précis... c'est pas de l'actualiser, je suis inquiet au sujet tellement que la création d'une session de l'utilisateur, si le nom d'utilisateur et le mot de passe correspondent.
- Êtes-vous demander à propos de
session_start()
? - Aussi, ne pas
SELECT * FROM members
lorsque vous avez uniquement besoin de vérifier son existence.SELECT COUNT(*) FROM members WHERE condition
fera. - Merci, session_start était ce que je cherchais. Ainsi que usman allam réponse ci-dessous. Merci pour vos commentaires!
Vous devez vous connecter pour publier un commentaire.
penser comme cela
Il dépend beaucoup de la façon dont vous êtes structurer le reste de votre code. Si vous êtes simplement en formant des pages HTML et en ajoutant des fonctions PHP comme et où, vous pourriez être en mesure d'utiliser quelque chose d'aussi simple que cela dans divers endroits dans votre code:
Vous devez faire en sorte de connexion retourner true ou false. Ensuite, votre structure de routage peut prendre différentes décisions fondées sur $loggedIn, et vos pages peut montrer différentes mises en page et le contenu.
Ce n'est pas un grand style à adopter en termes de style de programmation, mais il peut vous donner une idée. Si vous ajoutez plus de détails sur la façon de structurer votre code, vous devriez obtenir une meilleure réponse