IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Rediriger page si pas connecté


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut Rediriger page si pas connecté
    Bonjour,
    sur mon site, j'ai des sessions.

    J'arrive donc sur mon formulaire de connexion en premier. Si je suis connecté j'ai accès aux autres pages et si ne ne suis pas connecté, je n'ai pas accès au contenu des autres pages ... Jusu'a là ok.
    Exemple:
    www.test.com > J'arrive sur mon formulaire de connexion.

    www.test.com/exemple > Quand je suis connecté, je suis redirigé vers cette page.
    Par contre, si je ne suis pas connecté et que je tape dans le navigateur www.test.com/exemple, j'arrive quand même sur cette pas sans le contenu bien sur, sur cette page je n'ai que le bouton déconnexion. Quand je clic sur le bouton déconnexion, je reviens vers ma page de connexion.

    J'aimerais que quand je tape www.test.com/exemple, si je ne suis pas connecté que j'arrive sur ma page connexion et pas sur la page exemple sans contenu.

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    session_start();
     
    require('src/connection.php');
    ?>
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>Test</title>
    	<link rel="stylesheet" type="text/css" href="design/default.css">
    </head>
    <body>
     
    	<?php if(isset($_SESSION['connect'])){ ?>
     
    	<header>
    		<h1>TEST</h1>
    	</header>
     
    	<ul id="nav">
    			<li><a href="exemple.php">EXEMPLE</a></li>
    			<li><a href="test1.php">TEST1</a></li>
    			<li><a href="test2.php">TEST2</a></li>
    			</ul>
     
    <?php } else { header('location: connection.php'); ?>
    <?php } ?>
     
    <p id="info"><a href="deconnection.php">Déconnexion</a></p>
     
    </body>
    </html>

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    C'est bizarre que tu n'aies pas ce message d'erreur avec ton code actuel ?

    Warning: Cannot modify header information - headers already sent by etc...
    Tu n'as pas activé tes warnings ?

    Bref, tu n'es pas loin du compte à part ça, donc bravo.
    Il faut juste mettre la condition de redirection de ta page en tout premier, avant la moindre ligne qui pond du HTML.
    Ce qui donnera dans ton cas :
    Et j'en ai profité aussi pour mettre toute ta page HTML dans le if(connect), c'est plus simple à lire et plus logique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    session_start(); 
    require('src/connection.php');
    if(empty($_SESSION['connect'])){
       header('location: connection.php');
       exit;
    }
    else{
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>Test</title>
    	<link rel="stylesheet" type="text/css" href="design/default.css">
    </head>
    <body>
    	<header>
    		<h1>TEST</h1>
    	</header>
    	<ul id="nav">
    		<li><a href="exemple.php">EXEMPLE</a></li>
    		<li><a href="test1.php">TEST1</a></li>
    		<li><a href="test2.php">TEST2</a></li>
    	</ul>
    	<p id="info"><a href="deconnection.php">Déconnexion</a></p>
    </body>
    </html>
    <?php }  ?>
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pas besoin du else, car on a une redirection avec exit dans le if.


    J'utilise le principe dans mon tuto :

    Dernière modification par Invité ; 25/04/2018 à 13h46.

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut
    Bon voilà,
    j'ai un peu fait ce que vous m'avez dit mais ...
    Je n'arrive pas ou ce n'est peut-être pas possible ?
    Voici le code du fichier "connexion.php" (fichier accessible par tout le monde) et le code "exemple.php" (accessible uniquement si connecté).
    Tout est ok sauf si je tape dans mon navigateur www.test.com/exemple.php (page accessible que si je suis connecté mais ici je ne suis donc pas connecté et je tape directement l'adresse dans mon navigateur) j'arrive donc à ma page blanche "exemple" donc sans mon code et j'ai inséré un lien "Veuillez-vous connecter !" pour rediriger vers la page connexion manuellement je vais dire mais n'est il pas possible que quand je tape dans mon navigateur www.test.com/exemple.php je reviens automatiquement (si je ne suis pas connecté) sur la page de connexion et non sur la page blanche www.test.com/exemple.php ? Je ne vois vraiment pas

    Code connetion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?php
    session_start();
     
    // Connexion
    require('src/connection.php');
     
    if(isset($_SESSION['connect'])){
    	header('location: exemple.php');
     
    }
     
     
     
    if (!empty($_POST['email']) && !empty($_POST['password'])){
     
     
     
    	// VARIABLES	
    	$email 				= $_POST['email'];	
    	$password 			= $_POST['password'];
    	$error				= 1; 
     
     
     
     
     
    	//
    	$req = $db->prepare('SELECT * FROM users WHERE email = ?');
     
    	$req->execute(array($email));
     
    	while($user = $req->fetch()){
     
    		if ($password == $user['password']){
    			$error = 0;
    			$_SESSION['connect'] = 1;
    			$_SESSION['pseudo'] = $user['pseudo'];
    			header('location: connection.php?success=1');
     
    		}	
     
    			if($error == 1){
    			header('location: connection.php?error=1');
    		}
     
    		}
     
     
    		}
     
     
     
    ?>
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>Connexion</title>
    	<link rel="stylesheet" type="text/css" href="design/default.css">
    </head>
    <body>
    	<header>
    		<h1>CONNEXION</h1>
    	</header>
    ..................
    ..................
    ..................
    </body>
    </html>


    Code exemple.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?php
    session_start();
     
    require('src/connection.php');
     
    ?>
     
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>Test</title>
    	<link rel="stylesheet" type="text/css" href="design/default.css">
    </head>
    <body>
     
    	<?php if(isset($_SESSION['connect'])){ ?>
     
     
    	<header>
    		<h1>ENCODAGE</h1>
    	</header>
     
    	<ul id="nav">
    			<li><a href="exemple.php">EXEMPLE</a></li>
    			<li><a href="test1.php">TEST1</a></li>
    			<li><a href="test2.php">TEST2</a></li>
    			</ul>
     
    <p id="info"><a href="deconnection.php">Déconnexion</a></p>
     
     
    <?php } else { header('location: connection.php'); ?> 
     
    <p id="info"><a href="connection.php">Veuillez-vous connecter !</a></p>
     
    <?php } ?>
     
    </body>
    </html>
    J'ai bien mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php } else { header('location: connection.php'); ?>
    à la fin de mon fichier exemple.php mais je ne suis pas redirigé ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Non, tu ne tiens pas compte des corrections.

    As-tu suivi mon lien ?...

    Le code de Dendrite est à mettre en haut de ta page exemple.php.
    Et de toute autre page à protéger.

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut
    Autant pour moi, je ne bosser pas sur le bon fichier,
    Ça marche parfaitement.
    Merci à vous

  7. #7
    Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Désoler de m'incrusté ...
    Bonjour a tous

    J'ai aussi un peut le même problème sauf que j'ai ça comme code ... et je voudrais que la page se redirige directement vers la page login.php

    public static function details(){

    $d = false;

    if(isset($_COOKIE['ib_ct'])) {

    $ib_ct = $_COOKIE['ib_ct'];

    $d = ORM::for_table('crm_accounts')->where('token',$ib_ct)->find_one();

    if(!$d){
    ib_die('Vous êtes déconnecté. <a href="'.U.'client/login/">Cliquez ici pour vous identifier.</a>');
    }


    } else {

    ib_die('Vous êtes déconnecté. <a href="'.U.'client/login/">Cliquez ici pour vous identifier.</a>');

    }

    return $d;

    }

    quelqu'un a une idée ?
    merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redirection page login si pas connecté
    Par thepooh dans le forum MVC
    Réponses: 16
    Dernier message: 10/07/2008, 14h37
  2. Réponses: 4
    Dernier message: 28/09/2006, 13h37
  3. [JSP] page html pas générée entièrement
    Par enocet dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/04/2005, 14h50
  4. [web] rediriger page
    Par nonolepetitmalin dans le forum Web
    Réponses: 4
    Dernier message: 14/02/2003, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo