Probleme session_start();
Fermé
CarpeDiem*
Messages postés
6
Date d'inscription
mercredi 12 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
-
Modifié par CarpeDiem* le 12/09/2012 à 12:00
CarpeDiem* Messages postés 6 Date d'inscription mercredi 12 septembre 2012 Statut Membre Dernière intervention 12 septembre 2012 - 12 sept. 2012 à 19:29
CarpeDiem* Messages postés 6 Date d'inscription mercredi 12 septembre 2012 Statut Membre Dernière intervention 12 septembre 2012 - 12 sept. 2012 à 19:29
A voir également:
- Probleme session_start();
- A session had already been started - ignoring session_start() ✓ - Forum PHP
- Une session php a été créée par un appel de fonction session_start(). cela interfère avec l’api rest et les requêtes de boucle (loopback). la session devrait être fermée par session_write_close() avant d’effectuer toute requête http. ✓ - Forum PHP
- PROBLEME avec fonction SESSION - Forum Programmation
8 réponses
0x40
Messages postés
65
Date d'inscription
vendredi 7 septembre 2012
Statut
Membre
Dernière intervention
14 septembre 2012
41
12 sept. 2012 à 12:22
12 sept. 2012 à 12:22
Salut,
Déjà tu peux supprimer le exit qui ne sert à rien, si tu dois afficher le bas de la page et que tu es dans la condition elle ne s'affichera pas...
Sinon à quel moment tu attribut une valeur à $_SESSION['ID_Utilisateur'] ? A quel moment tu fais une requête SQL ?
De plus ta condition vérifie uniquement si la variable $_SESSION n'existe pas, et c'est bel et bien toujours le cas !
Déjà tu peux supprimer le exit qui ne sert à rien, si tu dois afficher le bas de la page et que tu es dans la condition elle ne s'affichera pas...
Sinon à quel moment tu attribut une valeur à $_SESSION['ID_Utilisateur'] ? A quel moment tu fais une requête SQL ?
De plus ta condition vérifie uniquement si la variable $_SESSION n'existe pas, et c'est bel et bien toujours le cas !
CarpeDiem*
Messages postés
6
Date d'inscription
mercredi 12 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 12:25
12 sept. 2012 à 12:25
dans connexion.php
j'ai fais exprès de vérifier que la sessions car je peux mettre autres chose cela reviendra au même non ?
Si le pseudo n'est pas reconnue c'est que l'email non plus ... ?
session_start(); $_SESSION['ID_Utilisateur'] = $ID_Utilisateur; } else {
j'ai fais exprès de vérifier que la sessions car je peux mettre autres chose cela reviendra au même non ?
Si le pseudo n'est pas reconnue c'est que l'email non plus ... ?
0x40
Messages postés
65
Date d'inscription
vendredi 7 septembre 2012
Statut
Membre
Dernière intervention
14 septembre 2012
41
Modifié par 0x40 le 12/09/2012 à 12:44
Modifié par 0x40 le 12/09/2012 à 12:44
Dans vérif.php :
Il y a un session_start() ça c'est très bien mais dans connexion.php il y est encore or c'est complètement inutile, voir même faux !
Session_start(); doit être placé avant tout code HTML ou condition PHP !
J'ai du mal à comprendre votre problème ce n'est pas très claire, de plus avec des morceaux de code...
session_start(); if(!isset($_SESSION['ID_Utilisateur'])) { echo 'Vous n\'êtes pas autoris' à acceder à cette zone'; include('connexion.php'); exit; }
Il y a un session_start() ça c'est très bien mais dans connexion.php il y est encore or c'est complètement inutile, voir même faux !
Session_start(); doit être placé avant tout code HTML ou condition PHP !
J'ai du mal à comprendre votre problème ce n'est pas très claire, de plus avec des morceaux de code...
CarpeDiem*
Messages postés
6
Date d'inscription
mercredi 12 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 13:42
12 sept. 2012 à 13:42
je vous donne les codes entier :
zonemembre.php :
connexion.php
verif.php est déjà entier plus haut, mon problème c'est que je veux que les utilisateur passe directement par la case connexion qu'ils ne peuvent pas faire directement : http://urldusite/zonemembre.php3
zonemembre.php :
<?php require('verif.php'); ?> <html> <head> <title>FamilleCarpeDiem</title> <link rel="stylesheet" type="text/css" href="style1.css" /> </head> <body bgcolor="#FFFFFF" text="#000000"> <p align="center"><b><font face="Verdana" size="3">Famille CarpeDiem </font></b></p> <p align="center"> </p> <p align="center"><font size="2" face="Verdana"> Voici la galerie<br><br> Bonjours <b><? echo "$Nom_Utilisateur"; ?></b><br><br> :)<br> <a href="photo.php3?id=<? echo "$id"; ?>">Galerie</a><br> <br><br>
connexion.php
<?php if(isset($_COOKIE["ID_UTILISATEUR"])) { echo '<script language="Javascript"> <!-- document.location.replace("zonemembre.php3"); // --> </script>'; session_start(); $_SESSION['ID_Utilisateur'] = $ID_Utilisateur; } else { // Formulaire visible par défaut $masquer_formulaire = false; // Une fois le formulaire envoyé if(isset($_POST["BT_Envoyer"])) { // Vérification de la validité des champs if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"])) { $message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n"; $message .= "L'utilisation de l'underscore est autorisée"; } elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"])) { $message = "Votre mot de passe doit comporter au moins 6 caractères"; } else { // Connexion à la base de données // Valeurs à modifier selon vos paramètres configuration mysql_connect("#", "#", "#"); mysql_select_db("#"); // Sélection de l'utilisateur concerné $result = mysql_query(" SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active FROM Comptes_Utilisateurs WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "' "); // Si une erreur survient if(!$result) { $message = "Une erreur est survenue lors de la tentative de connexion"; } else { // Si aucun utilisateur n'a été trouvé if(mysql_num_rows($result) == 0) { $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas"; } else { // Récupération des données $row = mysql_fetch_array($result); // Si le compte n'a pas été activé if($row["Compte_Active"] == 0) { $message = "Votre compte utilisateur n'a pas été activé"; } else { // Vérification du mot de passe if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"]) { $message = "Votre mot de passe est incorrect"; } else { // Définition du temps d'expiration des cookies $expiration = empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 90 * 24 * 60 * 60; // Création des cookies setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/"); setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/"); // Fermeture de la connexion à la base de données mysql_close(); // Redirection de l'utilisateur header("Location: zonemembre.php3"); } } } } // Fermeture de la connexion à la base de données mysql_close(); } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="content-language" content="fr" /> <link href="style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" /> <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script> <script type="text/javascript" src="js/jquery-easing-1.3.pack.js"></script> <script type="text/javascript" src="js/jquery-easing-compatibility.1.2.pack.js"></script> <script type="text/javascript" src="js/coda-slider.1.1.1.pack.js"></script> <script type="text/javascript" src="js/js.js"></script> <!--[if lt IE 10]> <style> .cadre {behavior: url(js/PIE.php);} </style> <![endif]--> </head> <body> <div id="conteneur"> <!-- *************************************** HEADER **************************************** --> <div id="header"> <div id="header_haut"> <a href=""><img src="images/souscrire.png" width="100" height="17" alt="" /></a> </div> <marquee id="scroller" scrollamount="1" direction="up" width="200" height="50" onmouseover="javascript:scroller.stop()" onmouseout="javascript:scroller.start()"> Famille Carpediem est en version 0.1 la partie login est ouverte !<br> </marquee> <ul id="menu_header"> <li id="ici"><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> <li><a href="#" title="">Rubrique</a></li> </ul> <!--Champs login !--> <form action="" method="post"> <div> <div align=right> </div></center></div> </form> <!----Fin !---> <a id="twitter" href="#"></a> </div> <!-- *************************************** HEADER **************************************** --> <!-- *************************************** CONTENU **************************************** --> <div id="contenu"> <div id="cadre"> <div class="cadre"> <!-- Place Cadre 1 !--> </div> <div class="cadre"> <?php if(isset($message)) { ?> <p><?php echo $message; ?></p> <?php } if($masquer_formulaire != true) { ?> <form action="http://<?php echo $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post"> <p> Nom d'utilisateur :<br> <input type="text" name="TB_Nom_Utilisateur" /><br> </p> <p> Mot de passe : <br><input type="password" name="TB_Mot_de_Passe" /> </p> <p> <input type="checkbox" name="CB_Connexion_Automatique" /> Se connecter automatiquement à chaque visite </p> <p> <input type="submit" name="BT_Envoyer" value="Envoyer" /> </p> </form> <?php } ?> </div> </div> <div class="clear"></div> </div>
verif.php est déjà entier plus haut, mon problème c'est que je veux que les utilisateur passe directement par la case connexion qu'ils ne peuvent pas faire directement : http://urldusite/zonemembre.php3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
0x40
Messages postés
65
Date d'inscription
vendredi 7 septembre 2012
Statut
Membre
Dernière intervention
14 septembre 2012
41
12 sept. 2012 à 16:14
12 sept. 2012 à 16:14
J'ai un peu tout modifié, j'ai fais ça sans tester mais en théorie ça fonctionne ><
Je m'explique un peu j'ai réduit le tout à 2 pages, dans zonemembre, on vérifie que l'utilisateur à une variable session "ID", si c'est le cas il peut voir la page il est donc connecté sinon une include de connexion est faite affichant le formulaire de connexion.
Si l'utilisateur entre les bons identifiants il faudra ajouté les variables SESSION du style ID, Username par exemple afin de les utilisés pour dire un coucou au membre...
zonemembre.php :
Je m'explique un peu j'ai réduit le tout à 2 pages, dans zonemembre, on vérifie que l'utilisateur à une variable session "ID", si c'est le cas il peut voir la page il est donc connecté sinon une include de connexion est faite affichant le formulaire de connexion.
// Création des cookies setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/"); setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/"); /* ICI Déclaration de toutes les variables sessions Ex. $_SESSION['ID_Utilisateur'] = '1'; $_SESSION['Nom_Utilisateur'] = "0x40"; $_SESSION['Pass_Utilisateur'] = "aefrfg/4rrd7797rdv9g7rfd"; */ // Fermeture de la connexion à la base de données mysql_close();
Si l'utilisateur entre les bons identifiants il faudra ajouté les variables SESSION du style ID, Username par exemple afin de les utilisés pour dire un coucou au membre...
zonemembre.php :
http://pastebin.com/kCLPWi4i</code>
connexion.php :http://pastebin.com/p5pLHbyX</code>
J'ai également une fonction simulant une connexion connected( true/false) qui produit le même effet qu'une connexion via le formulaire.
CarpeDiem*
Messages postés
6
Date d'inscription
mercredi 12 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 16:35
12 sept. 2012 à 16:35
je te remercie mais je ne comprend pas dans ton poste :
"https://pastebin.com/p5pLHbyX</code>"
pour zonemembre et connexion
et donc ca :
"
c'est pour zonemembre en faite ?
pour leur dire un petit coucou un
"https://pastebin.com/p5pLHbyX</code>"
pour zonemembre et connexion
et donc ca :
"
// Création des cookies setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/"); setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/"); /* ICI Déclaration de toutes les variables sessions Ex. $_SESSION['ID_Utilisateur'] = '1'; $_SESSION['Nom_Utilisateur'] = "0x40"; $_SESSION['Pass_Utilisateur'] = "aefrfg/4rrd7797rdv9g7rfd"; */ // Fermeture de la connexion à la base de données mysql_close();</code>
c'est pour zonemembre en faite ?
pour leur dire un petit coucou un
<? echo "$Nom_Utilisateur"; ?>suffira ^^
CarpeDiem*
Messages postés
6
Date d'inscription
mercredi 12 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 17:14
12 sept. 2012 à 17:14
j'ai tenté ta solution et sans être connecter j'ai recu a arriver a ma zonemembre... :'(
CarpeDiem*
Messages postés
6
Date d'inscription
mercredi 12 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 19:29
12 sept. 2012 à 19:29
deplus je pensé que crée un 3 fichier avec ce qu'il y avait dans verif. permet un gain de temps c'est faux ?