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 :

Redirection très bizarre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut Redirection très bizarre
    Bonjour à tous !

    Tout d'abord je tenais à remercier Yellu pour son aide l'autre jour par rapport à mon script.
    J'ai cependant un nouveau souci...
    Mon espace membre fonctionne bien mis à part le fait que lorsque je me connecte, je ne suis pas redirigée sur la bonne page 9 fois sur 10... Je ne sais pas de quoi cela peut bien venir étant donné que je ne modifie rien dans mon script et que un jour ça fonctionne et le lendemain, cela ne fonctionne plus...
    Voici mes scripts :
    Page : "accueil.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
    <h1>Espace membres</h1>
    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass_md5']) && !empty($_POST['pass_md5']))) {
     
    	$base = mysql_connect ('localhost', 'root', 'root');
    	mysql_select_db ('Cercle ENSCCF', $base);
     
    	// on teste si une entrée de la base contient ce couple login / pass
    	$sql = 'SELECT * FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass_md5'])).'"';
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    	$data = mysql_fetch_array($req);
     
    	mysql_free_result($req);
    	mysql_close();
     
    	// si on obtient une réponse, alors l'utilisateur est un membre
    	if ($data['login'] != NULL) {
    		session_start();
    		$_SESSION['login'] = $_POST['login'];
    		header('Location: espace membre/membre.php');
    		exit();
    	}
    	// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
    	elseif ($data['login'] == NULL) {
    		$erreur = 'Compte non reconnu.';
    	}
    	// sinon, alors la, il y a un gros problème :)
    	else {
    		$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
    	}
    	}
    	else {
    	$erreur = 'Au moins un des champs est vide.';
    	}
    }
    ?>
    <html>
    <body>
    <br />
    <form action="accueil.php" method="post">
    <p class="login"><strong>Login :</strong></p> <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    <p class="mdp"><strong>Mot de passe :</strong></p> <input type="password" name="pass_md5" value="<?php if (isset($_POST['pass_md5'])) echo htmlentities(trim($_POST['pass_md5'])); ?>"><br />
    <input type="submit" name="connexion" value="Connexion">
    </form>
    <a href="inscription.php">S'inscrire</a>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    </body>
    </html>
    Page : "membre.php" qui est dans le dossier "espace membre"
    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
    <?php
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: ../accueil.php');
    	exit();
    }
    ?>
     
    <html>
        <head>
            <meta charset="utf-8" />
            <link rel="stylesheet" href="../style.css" />
    		<title>Accueil</title>
    	</head>
     
    	<body>
            <div id="bloc_page">
                <header>
                    <div id="titre_principal">
                        <img src="../images/logo cerfcle.jpg" alt="Logo du Cercle" id="logo" />
                        <h1>Cercle 2014</h1>
                    </div>
     
                    <nav>
                        <ul>
                            <li><a href="accueil.php">Accueil</a></li>
                            <li><a href="assos.php">Associations & Clubs</a></li>
                            <li><a href="photos.php">Photos</a></li>
                            <li><a href="annales.php">Annales</a></li>
                            <li><a href="partenaires.php">Partenaires</a></li>
                            <li><a href="équipe.php">Équipe</a></li>
                            <li><a href="livredor.php">Livre d'Or</a></li>
                        </ul>
                    </nav>
                </header>
     
                <div id="banniere_image">
                    <div id="banniere_description">
                        Le cube de l'ENSCCF
                    </div>
                </div>
                <div id="separateur">
                </div>
     
                <section>
                    <article>
                    <h1>Bienvenue !</h1>
                    <h3>Tu es perdu ? Tu ne sais plus ce qu'il y a de prévu ? Alors clique <a href="calendrier.php">ici</a> !</h3>
                    </article>
                    <aside>
    					<h1>Mes informations</h1>
    					<p>Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br /></p>
    					<p><a href="../deconnexion.php">Déconnexion</a></p>
    				</aside>
    			</section>
    	</body>
    </html>
    Merci de votre réponse

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Par défaut
    Je pense que cela peut venir de cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion')
    Que renvoie le navigateur dans array $_POST pour la touche connexion ?... (Soulignons que ce n'est pas une zone de saisie)
    Concernant IE, il ne renvoie rien. Je l'ai testé... Le renard et les autres je ne sais pas...
    Faites plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( ! empty($_POST) ) { ......... }
    Voici un excellent article sur la question : http://www.expreg.com/expreg_article...rt=isset_empty

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    J'ai remplacé toutes mes variables isset par !empty et ça fonctionne Merci beaucoup

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Puis-je vous demander autre chose ?

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Par défaut
    Go ahead !

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Mon espace membre est en fait un espace membre à accès restreint comme vous avez pu le constater.
    J'ai donc dans ma base de données l'e-mail des personnes qui ont le droit de s'y connecter ainsi que d'autres données personnelles les concernant.
    Lors de l'inscription les membres n'ont qu'à insérer leur e-mail et choisir un mot de passe.
    Cependant, j'aimerais pouvoir afficher l'intégralité des données personnelles du membre connecté sur la page d'accueil de l'espace membre "membre.php".
    Savez-vous comment je peux faire ceci ?
    Voici la page d'inscription :
    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
                                        	<h1>Inscription à l'espace membres</h1>
    <?php
     
    if (!empty($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
     
    	if ((!empty($_POST['login']) && !empty($_POST['login'])) && (!empty($_POST['pass_md5']) && !empty($_POST['pass_md5'])) && (!empty($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
     
    	if ($_POST['pass_md5'] != $_POST['pass_confirm']) {
    		$erreur = 'Les 2 mots de passe sont différents.';
    	}
    	else {
    		$base = mysql_connect ('localhost', 'root', 'root');
    		mysql_select_db ('Cercle ENSCCF', $base);
     
     
    		$sql = 'SELECT * FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$data = mysql_fetch_array($req);
     
    		if ($data['login'] != NULL && $data['pass_md5'] == NULL) {
    		$sql = 'UPDATE membre SET pass_md5="'.mysql_escape_string(md5($_POST['pass_md5'])).'" WHERE login ="'.mysql_escape_string($_POST['login']).'"';
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    		session_start();
    		$_SESSION['login'] = $_POST['login'];
    		header('Location: espace membre/membre.php');
    		exit();
    		}
    		elseif($data['login'] == NULL) {
    		$erreur = 'Vous n\'êtes pas autorisé à accéder à cet espace membre.';
    		}
    		elseif($data['pass_md5'] != NULL) {
    		$erreur = 'Cette personne possède déjà un compte.';
    		}
    	}
    	}
    	else {
    	$erreur = 'Au moins un des champs est vide.';
    	}
    }
    ?>
    <html>
    <head>
    <title>Inscription</title>
    </head>
     
    <body>
    <form action="inscription.php" method="post">
    <strong>E-mail :</strong> <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    <strong>Mot de passe :</strong> <input type="password" name="pass_md5" value="<?php if (isset($_POST['pass_md5'])) echo htmlentities(trim($_POST['pass_md5'])); ?>"><br />
    <strong>Confirmation du mot de passe :</strong> <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
    <center><input type="submit" name="inscription" value="Inscription"></center>
    </form>
    <?php
    if (isset($erreur)) echo '<br />',$erreur;
    ?>
    </body>
    </html>
    Et la page membre :
    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
    <?php
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: ../accueil.php');
    	exit();
    }
    ?>
     
    <html>
        <head>
            <meta charset="utf-8" />
            <link rel="stylesheet" href="../style.css" />
    		<title>Accueil</title>
    	</head>
    <section>
    <aside>
    					<h1>Mes informations</h1>
    					<p>Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br /></p>
    					<p><a href="../deconnexion.php">Déconnexion</a></p>
    				</aside>
    			</section>
    	</body>
    </html>
    J'ai aussi modifié mes ISSET par des !EMPTY dans la page d'inscription

Discussions similaires

  1. Valeurs de clés négatives très bizarres ...
    Par Christophe Charron dans le forum Requêtes
    Réponses: 15
    Dernier message: 30/03/2006, 10h42
  2. [JDBC] Erreur très bizarre dans ExecuteQuery
    Par boudou dans le forum JDBC
    Réponses: 6
    Dernier message: 17/03/2006, 18h33
  3. différence reload et location + pb très bizarre pour experts
    Par grinder59 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 09/01/2006, 12h05
  4. Problème très bizarre avec COUNT
    Par Nomade95000 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/10/2005, 14h12
  5. Réponses: 4
    Dernier message: 28/09/2002, 00h00

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