Script PHP de connexion ne marche pas
Thomas38340
Messages postés
200
Statut
Membre
-
Garth -
Garth -
Bonjour, je voudrais ecrire un script autorisant le membre "username" a acceder a la page demandée si il est connecté, dans le cas ou il ne serais pas inscris, le rediriger directement sur une autre page. De meme quand il tape la page protégée dans l'URL : si il est connecté, il y accede, sinon => page de connexion.
J'ai ecris un début mais je ne sais pas comment formuler la suite :
<?php
//Si l'utilisateur est connecté, on affiche les identifiants
if(isset($_SESSION['username']))
{
}
//sinon on le redirige a la page de connexion automatiquement
{
else
}
?>
J'ai ecris un début mais je ne sais pas comment formuler la suite :
<?php
//Si l'utilisateur est connecté, on affiche les identifiants
if(isset($_SESSION['username']))
{
}
//sinon on le redirige a la page de connexion automatiquement
{
else
}
?>
A voir également:
- Script PHP de connexion ne marche pas
- Gmail connexion - Guide
- Script vidéo youtube - Guide
- Heure de connexion whatsapp qui ne changé pas - Accueil - WhatsApp
- Site inaccessible n'autorise pas la connexion - Guide
- Connexion chromecast - Guide
1 réponse
Salut,
pour utiliser les variables de session il faut mettre session_start(); en début de code(strictement en début, parfois en sautant une ligne ça peut ne pas marcher)
Pour afficher la variable fonction echo ();
pour la redirection il faut utiliser la fonction header('location:mon_url');
http://php.net/manual/fr/function.header.php
Donc ça pourrait donner ceci :
Mieux encore mettre tout ça en fonction externe pour pas avoir à retaper et aérer le code de chaque page:
C'est mieux encore si vous faites une page spécifique plutôt que la page de connection pour un utilisateur qui voudrait se connecter sans avoir sa session(donc sans s'être identifié) avec un texte genre:
<h2 style="color:red;background-color:#000;">
INTERDIT, VOUS DEVEZ ETRE UN MEMBRE ENREGISTRE ET VOUS CONNECTER POUR AVOIR ACCES A CES PAGES
</h2>
<a href="connection.html">Allez en page de connection</a>
<a href="inscription.html">S'inscrire</a>
<!------------ON rigole pas avec la sécurité ------->
Vu que si la personne a pas de session et qu'elle se retrouve sur les pages des membres c'est qu'elle essaye de tricher pour passer outre l'identification. Ou alors d'envoyer un message dans l'url(en $_GET) pour avertir qu'il doit s'identifier pour se connecter.
Comme ceci
header('Location: page_de_connection.php?avertissement=Vous devez vous connecter pour accéder aux pages membres');
Et bien sûr récupérer le message et l'afficher:
if(isset($_GET['avertissement']) && !empty($_GET['avertissement'])){
echo $_GET['avertissement'];
}
pour utiliser les variables de session il faut mettre session_start(); en début de code(strictement en début, parfois en sautant une ligne ça peut ne pas marcher)
Pour afficher la variable fonction echo ();
pour la redirection il faut utiliser la fonction header('location:mon_url');
http://php.net/manual/fr/function.header.php
Donc ça pourrait donner ceci :
<?php
session_start();
//Si l'utilisateur est connecté, on affiche les identifiants
if(isset($_SESSION['username']) && !empty($_SESSION['username']))
{
echo "Bienvenue ".$_SESSION['username'];
}else // petit soucis dans la place du else : corrigé
{
//sinon on le redirige a la page de connexion automatiquement
header('Location:page_de_connection.php');
exit();/* une sécurité de plus même si elle sert à rien */
}
?>
Mieux encore mettre tout ça en fonction externe pour pas avoir à retaper et aérer le code de chaque page:
<?php
//--------- fonctions_utiles.php
//-------------------- FONCTIONS UTILES
function echec(){
session_unset();
session_destroy();
header('Location: page_de_connection.php');
exit();
}
function test_session($sess){
if (isset($sess)) && !empty($sess)){
echo $sess;
}else{
echec();
}
}
?>
Ce qui donnes pour votre page(et toutes les autres où la session doit être utilisée)
<?php
session_start();
include('fonctions_utiles.php');
test_session($_SESSION['username']);
?>
C'est mieux encore si vous faites une page spécifique plutôt que la page de connection pour un utilisateur qui voudrait se connecter sans avoir sa session(donc sans s'être identifié) avec un texte genre:
<h2 style="color:red;background-color:#000;">
INTERDIT, VOUS DEVEZ ETRE UN MEMBRE ENREGISTRE ET VOUS CONNECTER POUR AVOIR ACCES A CES PAGES
</h2>
<a href="connection.html">Allez en page de connection</a>
<a href="inscription.html">S'inscrire</a>
<!------------ON rigole pas avec la sécurité ------->
Vu que si la personne a pas de session et qu'elle se retrouve sur les pages des membres c'est qu'elle essaye de tricher pour passer outre l'identification. Ou alors d'envoyer un message dans l'url(en $_GET) pour avertir qu'il doit s'identifier pour se connecter.
Comme ceci
header('Location: page_de_connection.php?avertissement=Vous devez vous connecter pour accéder aux pages membres');
Et bien sûr récupérer le message et l'afficher:
if(isset($_GET['avertissement']) && !empty($_GET['avertissement'])){
echo $_GET['avertissement'];
}