Redirection si non connecté [PHP]
emiliengbd
Messages postés
94
Statut
Membre
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je cherche un moyen de rediriger mon utilisateur vers ma page : "connexion.php" s'il essaye de se rendre sur une page qui a besoin d'une connexion, ex: (monprofil.php).
Actuellement ce qui se passe quand il rejoint "monprofil.php" (quand non connecter) c'est qu'une page blanche apparait puis, plus rien.
De la même manière, si mon utilisateur est connecté et qu'il essaye de rejoindre la page "connexion.php" j'aimerai qu'il soit redirigé vers la page "monprofil.php"
En gros j'essaye de trouver un moyen pour vérifier si mon utilisateur est bien connecter à mon site web.
Merci d'avance.
je cherche un moyen de rediriger mon utilisateur vers ma page : "connexion.php" s'il essaye de se rendre sur une page qui a besoin d'une connexion, ex: (monprofil.php).
Actuellement ce qui se passe quand il rejoint "monprofil.php" (quand non connecter) c'est qu'une page blanche apparait puis, plus rien.
De la même manière, si mon utilisateur est connecté et qu'il essaye de rejoindre la page "connexion.php" j'aimerai qu'il soit redirigé vers la page "monprofil.php"
En gros j'essaye de trouver un moyen pour vérifier si mon utilisateur est bien connecter à mon site web.
Merci d'avance.
A voir également:
- Redirection si non connecté [PHP]
- Appareil connecté facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment savoir qui est connecté sur mon wifi - Guide
- Expert php pinterest - Télécharger - Langages
- Clavier physique non connecté - Guide
1 réponse
Bonjour,
Il te faut utiliser les SESSION
Lorsque l'utilisateur se connecte .. tu créés une variable de session,
par exemple
puis dans tes différentes pages.. tu vérifies que cette variable existe
sinon tu rediriges
NB : Tu n'oublieras pas, bien entendu, d'activer les sessions sur toutes tes pages
Il te faut utiliser les SESSION
Lorsque l'utilisateur se connecte .. tu créés une variable de session,
par exemple
$_SESSION['id_user'] = $id_du_membre;
puis dans tes différentes pages.. tu vérifies que cette variable existe
sinon tu rediriges
if(empty($_SESSION['id_user'])){
//redirection
header('location : index.php');
exit();
}
NB : Tu n'oublieras pas, bien entendu, d'activer les sessions sur toutes tes pages
session_start();
Voici le code de "connexion.php", peut tu me donner ton code adapté à celui de ma page s'il-te-plait ?
<?php session_start(); $bdd = new PDO('mysql:dbname=MaBaseDeDonne;host=MonHost', monNomUtilisateur', 'MonMotdePasse'); if(isset($_POST['formconnexion'])) { $mailconnect = htmlspecialchars($_POST['mailconnect']); $mdpconnect = sha1($_POST['mdpconnect']); if(!empty($mailconnect) AND !empty($mdpconnect)) { $requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND motdepasse = ?"); $requser->execute(array($mailconnect, $mdpconnect)); $userexist = $requser->rowCount(); if($userexist == 1) { $userinfo = $requser->fetch(); $_SESSION['id'] = $userinfo['id']; $_SESSION['pseudo'] = $userinfo['pseudo']; $_SESSION['mail'] = $userinfo['mail']; header("Location: profil.php?id=".$_SESSION['id']); } else { $erreur = "Mauvais mail ou mot de passe !"; } } else { $erreur = "Tous les champs doivent être complétés !"; } } ?> <html> <head> <title>Se connecter</title> <meta charset="utf-8"> </head> <body> <div align="center"> <h2>Connexion</h2> <br /><br /> <form method="POST" action=""> <input type="email" name="mailconnect" placeholder="Mail" /> <input type="password" name="mdpconnect" placeholder="Mot de passe" /> <br /><br /> <input type="submit" name="formconnexion" value="Se connecter !" /> </form> <?php if(isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } ?> <p>Vous n'avez pas de compte ? Cliquez <a href="register.php" rel="nofollow noopener noreferrer" target="_blank">ici</a></p> </div> </body> </html>Merci
Je débute en PHP.
et donc par exemple, utiliser les variables que tu as déjà créé
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et ne plus utiliser le rowcount mais plutôt faire un fetchAll du résultat de la requête puis un COUNT dessus.
$sql = "SELECT * FROM membres WHERE mail = ? AND motdepasse = ?"; $datas = array($mailconnect, $mdpconnect); try{ $requser = $bdd->prepare($sql); $requser->execute($datas); }catch(Exception $e){ echo "erreur : ".$e->getMessage(); } //on stocke le resultat de la requete dans un array $resultats = $requser->fetchAll(); //on compte le combre de résultats si $resultat n'est pas vide $userexist = !empty($resultats) ? count($resultats) : 0;Tu peux jeter un oeil ici pour comprendre comment je fait pour "compter"
http://www.manuelphp.com/php/language.operators.comparison.ternary.php
.