Groupe : Membres Messages : 70 |
Bonjours à tous Voici donc mon problème: J'ai fait un système d'inscription pour mes membres, mais je galére sur le login. Je n'arrive pas a reporter les données de ma variable $pseudo. Je m'explique: EDIT : Lbeetls01, un problème avec les tableaux, j'ai du les supprimer... =S Merci de votre aide et de m'expliquer donc pourqoi ces messages d'erreurs? et comment (si c'est pas bien codé) faire pour reporter mes "$pseudo" ??? Merci bonne journée ++ PHP Dev en force |
![]() Groupe : Membres Messages : 134 |
Tu dois mettre "session_start ();" avant TOUT code, quel qu'il soit, c'est-a-dire tu ne doit pas mettre une seule ligne php avant lappel de session ni même une seule ligne de xHtml. Donc je sais pas si tu nous a fourni toute ta page qui traite de la connexion, mais si tu fait un appel du style "include("en_tete.html");" tu dois absolument le mettre aprés ta fonction "session_start ();".
C'est ce que dis ton message d'erreur en fait : "headers already sent" Traduction francaise : "il y a du code avant session_start()"
|
Groupe : Membres Messages : 70 |
Merci de ta réponse, je vais tenter ceci
PHP Dev en force |
Groupe : Membres Messages : 70 |
Bien, même au début de toutes mes pages, j'ai le même message. Pourriez vous SVP m'indiquer un endroit ou je peu bien comprendre le fonctionnement de ceci, en utilisant les sessions et les cookies? Merci en tout cas, ++ PHP Dev en force |
Groupe : Membres Messages : 6 |
Est ce que session_start(); est bien à la premiere ligne de la page ? c'est à dire juste à coté de <?php , car si mes souvenirs sont bons il se peut que ça fasse ça si session_start(); est à la seconde ligne. Je ne suis pas sûr mais tente toujours
|
Groupe : Membres Messages : 70 |
Je tente, je vous tiens au courant, merci
PHP Dev en force |
![]() Groupe : Admins Messages : 2070 |
Je ne sais pas si c'est ce que tu voulais dire Lexion71, mais aussi faire attention de ne pas avoir mis de retour à la ligne, un espace ou quoi que ce soit avant : Code PHP: <?php session_start(); Aussi, j'ai eu le problème dernièrement, si ton fichier est encodé en UTF-8, il faut qu'il soit bien en UTF-8 Sans BOM. Si jamais ouvre le dans NotePad ++ -> Menu "Format" -> "Encoder en UTF-8 (Sans BOM)". |
Groupe : Membres Messages : 70 |
Merci à toi lbeetls01, je code déjà sous NP++ et toujours en ut-8 sans bom. J'ai déjà résolu le problème lier a ma connexion, maintenant, il me faut absolument viré mon message d'erreur. Je vais vous mettre toutes les pages que nécessite la connexion et mon message d'erreur (avec l'index, car j'utilise des include afin de me facilité pour le dév), afin que vous voyer tout le code, et que vous m'aidiez si possible, merci. ------------ index.php --------!!!Code PHP: <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Mon site</title> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body> <!----------------- Body <?php include("conf.php"); ?> <div id="global"> <!----------------- Header <div id="header"> </div> <div id="menugauche"> Bienvenue <?php //enregistrement d'une variable de session, ici le login de l'utilisateur $_SESSION["m_login"] == $_POST['login'] ; $_SESSION["m_id"] == $id; //idem pour l'id if ($_SESSION["m_login"] == "") { echo ('invité'); } else { echo htmlentities(trim($_POST['login'])); } ?> <img src="images/fondmusique.jpg"/> <br/> <span style="color:#ffffff;">Menu musique</span> <br/> <br/> <p>Ecouter</p> <form action="index.php?name=cherch" name="recherche"> <a class="artistes" href="index.php?name=cherch">Ecouter!</a> </form> </div> <!----------------- Menu de Gauche <div id="menu"> <?php include ('menu.php'); ?> </div> <!----------------- CORPS <div id="corps"> <h1>Mon site</h1> <table class="presentationP" width="90%" align="center"> <tbody> <tr> <td width="100%" align="left" valign="top"> <div id="sitemil"> <?php //******************************************************* $page = $_GET['name']; switch($page) { //******************************************************* case member: include ('indexlogin.php'); break; //******************************************************* case connexion: include ('connexion.php'); break; //******************************************************* case register: include ('inscription.php'); break; //******************************************************* case validation: include ('validation.php'); break; //******************************************************* case listmembres: include ('listmembres.php'); break; //******************************************************* case connecte: include ('connecte.php'); break; //******************************************************* default: echo ('Acceuil'); break; } ?> </div> </td></tr></table> </div> <!----------------- Footer <p id="footer"> <span>Copyright© 2008 </span> </p> </div> </body> </html> ------------- indexlogin.php - (ma zone de connextion)---!!!Code PHP: <div id="indexlogin"> <form action="index.php?name=connexion" method="post" name="validation"> <table> <tr> <td colspan="2" align="center"> <span class="title">Connexion</span> <br/> <br/> </td> </tr> <tr> <td> Pseudo: </td> <td> <input name="login" type="text" size="20"> </td> </tr> <tr> <td> Mot de pass: </td> <td> <input name="password" type="password" size="20"> </td> </tr> <tr> <td> </td> <td> <input name="recupinfo" type="hidden" value="log-in"> <input name="valider" type="submit" value="valider!"> </td> </tr> </table> </form> </div> <div id="indexregister"> <br/> <br/> <a class="membre" href="index.php?name=register">S'enregistrer</a> </div> --------- connexion.php------------- Code PHP: <?php include("conf.php"); if (isset($_POST)) { //si les informations ont été envoyé $login = trim(htmlspecialchars(addslashes($_POST['login']))); //Parsing du login $password = trim(htmlspecialchars(addslashes($_POST['password']))); //parsing du password if( ( strlen($login)!=0) && (strlen($password)!=0)) { $q_login = mysql_query(" SELECT login, password FROM membres WHERE login='".$login."' AND password='".md5(mysql_escape_string($_POST['password']))."' LIMIT 0,1"); //on lance la requete SQL renvoyant l'id de la personne, son nom et son prenom en fonction des informations entrées dans le formulaire ($_POST["login"] et $_POST["pass"]) if (mysql_num_rows($q_login)) {//si il existe des resultats à la requête list($login, $password) = mysql_fetch_assoc($q_login); // on recupère les resultats de la requête dans des variables correspondantes $_SESSION["m_login"] = $login; // on inscrit la variable $login en variable de session $_SESSION["m_id"] = $id; //idem pour l'id echo ('Bienvenue'); echo htmlentities(trim($_POST['login'])); echo '<script language=javascript> alert ("Vous êtes bien connécté!");</script>'; echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="index.php?name=connecte" </SCRIPT>'; } else { echo '<script language=javascript> alert ("Mauvais pseudo ou mot de passe!");</script>'; echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="index.php?name=member" </SCRIPT>'; exit; } } else { echo '<script language=javascript> alert ("Un ou plusieurs champs son vides!");</script>'; echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="index.php?name=member" </SCRIPT>'; exit; } } else { echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="index.php?name=member" </SCRIPT>'; exit; } ?> ------------ connecte.php --------Code PHP: <? session_start(); if(!isset($_SESSION['login'])) { echo ' <div id="indexregister"> <br/> <br/> <a class="membre" href="index.php?name=listmembres">liste des membres</a> </div>'; exit; } ?> <?php echo '<p>Bonjour ',$_SESSION['login'],'</p>'; ?> <a href="connect.php?action=deconnexion">Déconnexion</a> ------------ Mes Messages d'erreur --!Code :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:xampphtdocsstreetartindex.php:7) in C:xampphtdocsstreetartconnecte.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:xampphtdocsstreetartindex.php:7) in C:xampphtdocsstreetartconnecte.php on line 2 PHP Dev en force |
Groupe : Codeurs Messages : 122 |
bah sur index.php tu as du code html avant ton code php, et où est le session_start() ?
|
Groupe : Membres Messages : 70 |
Bin sur l'index, je l'ai enlever, de toute manière le problème est exactement le même peu importe où je place session_start(); ! J'ai vraiment un soucis, mais pour ça il faut tester le code pour s'en rendre compte, je sait que l'on peu débuger souvent juste en voyant le code source, mais dans ce cas, faut absolument débuger en essayant les codes, avec un serveur! Bref, je vous remercie de votre aide, et j'espère que quelqu'un pourras m'aider, par ce que là je plante sévère, et même malgré mes recherches divers et variées sur Google, je plante .Merci à vous. ++ PHP Dev en force |
Groupe : Membres Messages : 70 |
PS: si ça peu aider, je code et teste php avec xampp.
PHP Dev en force |
![]() Groupe : Admins Messages : 2070 |
Pourrais-tu nous mettre tes fichiers dans un ZIP ? pour que l'on puisse directement voir si il y a d'autres problèmes (encodage, caractères, etc...) ? EDIT : Essaie en enlevant le session_start de ta page connecte.php, et en mettant ce code pour ta page index : Code PHP:
<?php session_start(); ?> <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Mon site</title> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body> <!----------------- Body "images/smilies2/26.png" alt="" class="smilies" /> <?php include("conf.php"); ?> <div id="global"> <!----------------- Header "images/smilies2/26.png" alt="" class="smilies" /> <div id="header"> </div> <div id="menugauche"> Bienvenue <?php //enregistrement d'une variable de session, ici le login de l'utilisateur $_SESSION["m_login"] == $_POST['login'] ; $_SESSION["m_id"] == $id; //idem pour l'id if ($_SESSION["m_login"] == "") { echo ('invité'); } else { echo htmlentities(trim($_POST['login'])); } ?> <img src="images/fondmusique.jpg"/> <br/> <span style="color:#ffffff;">Menu musique</span> <br/> <br/> <p>Ecouter</p> <form action="index.php?name=cherch" name="recherche"> <a class="artistes" href="index.php?name=cherch">Ecouter!</a> </form> </div> <!----------------- Menu de Gauche "images/smilies2/26.png" alt="" class="smilies" /> <div id="menu"> <?php include ('menu.php'); ?> </div> <!----------------- CORPS "images/smilies2/26.png" alt="" class="smilies" /> <div id="corps"> <h1>Mon site</h1> <table class="presentationP" width="90%" align="center"> <tbody> <tr> <td width="100%" align="left" valign="top"> <div id="sitemil"> <?php //******************************************************* $page = $_GET['name']; switch($page) { //******************************************************* case member: include ('indexlogin.php'); break; //******************************************************* case connexion: include ('connexion.php'); break; //******************************************************* case register: include ('inscription.php'); break; //******************************************************* case validation: include ('validation.php'); break; //******************************************************* case listmembres: include ('listmembres.php'); break; //******************************************************* case connecte: include ('connecte.php'); break; //******************************************************* default: echo ('Acceuil'); break; } ?> </div> </td></tr></table> </div> <!----------------- Footer "images/smilies2/26.png" alt="" class="smilies" /> <p id="footer"> <span>Copyright© 2008 </span> </p> </div> </body> </html> |
Groupe : Membres Messages : 70 |
Au niveau de l'erreur session_start(), c'est réglé, effectivement, j'avais oublier d'être en UTF-8 sans BOM. Je n'ai plus de message, par contre, mes $session['m_login'] ne ce reportent pas. Je te met les code dans un zip et t'envoie ça. Merci à vous PHP Dev en force |
Groupe : Membres Messages : 70 |
Ok c'est bon, grâce à toi lbeetls01, j'ai réussit a reporter au moins $_SESSION["m_login"];. Maintenant que mon pseudo s'affiche, me manque plus qu'a faire des condition pour afficher ce que je veux dés que un pseudo valide est afficher. Si j'ai bessoin je poste un nouveau sujet, Vraiment merci @++ PHP Dev en force |
![]() Groupe : Admins Messages : 2070 |
Super ! Content d'avoir pu t'aider .
|