Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1038 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  sessions PHP chez free

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sessions PHP chez free

n°893983
pdreulle
Posté le 09-11-2004 à 09:31:28  profilanswer
 

Bonjour,  
Suis vraiment débutant en php.  
Je souhaite faire une session chez free.  
J'ai bien créer un répertoire sessions à la racine chez free.  
J'ai une page HTML avec un post vers login.php pour l'identification.
Le code de la page login.php est  
<?
$db = mysql_connect('sql.free.fr','base','password') or die ("erreur de connexion" );
 
mysql_select_db('joueurs',$db) or die ("erreur de connexion base" );
 
$sql = "select id,datecrea,email,pseudo,password from joueurs where pseudo = '$pseudo' AND password = '$password' AND valid= '1'";
 
$result = mysql_query($sql) or die("impossible d executer la requete" );
$num = mysql_numrows($result);
 
if ($num == 1) // le pseudo a été trouvé
{
session_start();  
session_register("pseudo" );  
echo "<center>Bienvenu sur votre espace membre : $pseudo</center>";  
$sess_nom = session_name();  
$sess_id = session_id();  
echo "Le nom de la session est :<br> ";
echo $sess_nom." et l'Id est : ".$sess_id."";
echo "<a href=\"page.php\">Page Essai</a>";  
 }
else  
{
print "non ident, pas valid<br>";
}
?>
 
et la page login.php m'affiche :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/4/4/crime.orient.express/login.php:9) in /var/www/free.fr/4/4/crime.orient.express/login.php on line 10
 
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/4/4/crime.orient.express/login.php:9) in /var/www/free.fr/4/4/crime.orient.express/login.php on line 10
 
Merci de bien vouloir m'aider.  
Et désolé si la réponse est déjà ailleurs, j'ai chercher sans résultat.  
Pierre
 

mood
Publicité
Posté le 09-11-2004 à 09:31:28  profilanswer
 

n°894001
titione
addicted
Posté le 09-11-2004 à 09:49:19  profilanswer
 

le session_start() doit être la première instruction envoyée. rien ne doit être affiché auparavant !

n°894087
pdreulle
Posté le 09-11-2004 à 11:27:41  profilanswer
 

Merci beaucoup pour ta reponse, mais, j'ai donc remplacer le code php par  
<?  
session_start();  
$db = mysql_connect('sql.free.fr','base','password') or die ("erreur de connexion" );  
 
mysql_select_db('joueurs',$db) or die ("erreur de connexion base" );  
 
$sql = "select id,datecrea,email,pseudo,password from joueurs where pseudo = '$pseudo' AND password = '$password' AND valid= '1'";  
 
$result = mysql_query($sql) or die("impossible d executer la requete" );  
$num = mysql_numrows($result);  
 
if ($num == 1) // le pseudo a été trouvé  
{  
session_register("pseudo" );  
echo "<center>Bienvenu sur votre espace membre : $pseudo</center>";  
$sess_nom = session_name();  
$sess_id = session_id();  
echo "Le nom de la session est :<br> ";  
echo $sess_nom." et l'Id est : ".$sess_id."";  
echo "<a href=\"page.php\">Page Essai</a>";  
 }  
else  
{  
print "non ident, pas valid<br>";  
}  
?>  
 
Et j'obtiens exactement la même erreur.
Merci de votre aide.

n°894123
GaSPaRD77
Posté le 09-11-2004 à 11:51:00  profilanswer
 

As-tu du code html avant ton php ?

n°894130
pdreulle
Posté le 09-11-2004 à 11:54:27  profilanswer
 

oui, bien sûr :  
Identification :  
<form method="post" action="login.php">
pseudo<input type="text" name="pseudo"><br>
mot de passe<input type="text" name="password"><br>
<input type="submit" name="submit" value="S'identifier">
</form>

n°894142
pdreulle
Posté le 09-11-2004 à 12:01:09  profilanswer
 

oups, désolé, j'ai répondu trop vite.  
Avant le code php, j'ai ca :  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
 
puis le code php du message précédent

n°894171
bob007
Posté le 09-11-2004 à 12:47:52  profilanswer
 

bah c pour ca! Comme l'a dit Titone il faut que session_start() soit mis avant ton <!DOCTYPE bla bla />

n°894173
GaSPaRD77
Posté le 09-11-2004 à 12:50:14  profilanswer
 

Citation :

le session_start() doit être la première instruction envoyée. rien ne doit être affiché auparavant !


 
Ca veut dire ce que ça veut dire. Si tu as du html avant tu as affiché quelquechose.


Message édité par GaSPaRD77 le 09-11-2004 à 12:51:23
n°894176
GaSPaRD77
Posté le 09-11-2004 à 12:50:55  profilanswer
 

.. Rien désolé :)


Message édité par GaSPaRD77 le 09-11-2004 à 12:52:17
n°894237
pdreulle
Posté le 09-11-2004 à 13:56:43  profilanswer
 

Parfait, merci 1 000 fois. Mais du coup, avec le lien sur la page essai, je suis sorti de la session.  
Voici le code de page.php :  
<?php  
session_start();  
$server = "sql.free.fr";  
$user = "user";  
$pass = "pass";  
$base = "joueurs";
if(!session_is_registered(login)) {  
echo "<center>Vous devez vous identifier pour accéder à cette page</center>";  
}  
else {  
echo "<center>Bienvenu sur votre espace membre $login</center>";  
}  
?>
 
Il m'affiche systématiquement sur la page "Vous devez vous identifier pour accéder à cette page"
 
Autres question pendant quze j'y suis, une fois que ce premier probleme sera corrigé, et parce que je débute vraiment : comment j'affiche dans cette page par exemple le champ ID de la ligne correspondant au pseudo sur cette page ?

mood
Publicité
Posté le 09-11-2004 à 13:56:43  profilanswer
 

n°894369
ratibus
Posté le 09-11-2004 à 15:30:48  profilanswer
 

titione a écrit :

le session_start() doit être la première instruction envoyée. rien ne doit être affiché auparavant !

C'est pas tout à fait exact :). La première phrase est fausse, la deuxième est vraie.
 
Il ne faut pas que le header HTTP ait été envoyé. Or par défaut (c'est-à-dire sans bufferisation de sortie), dès que tu écris sur la sortie, ça envoie le header HTTP, d'où le message d'erreur.


Message édité par ratibus le 09-11-2004 à 15:32:56

---------------
Mon blog
n°894390
pdreulle
Posté le 09-11-2004 à 15:44:10  profilanswer
 

Merci pour ta réponse, mais comme je te l'ai dit, je débute, et donc ta réponse, c'est du chinois pour moi ;-)

n°894402
ratibus
Posté le 09-11-2004 à 16:08:04  profilanswer
 

La base c'est HTTP :)
Donc avant d'attaquer un language serveur, je pense qu'il faut (au moins dans les grandes lignes) comprendre le protocole HTTP.
 
Je vois tellement de question passer qui n'ont pas de sens quand on connait HTTP.


---------------
Mon blog
n°894405
pdreulle
Posté le 09-11-2004 à 16:10:00  profilanswer
 

Merci, je viens de faire un grand pas en avant. Heureusement que les forums sont là et que des gens comme toi y participent ! Je vais sur httppourlesdebutants.com ??
Ou tu me donnes vraiment un coup de main ?

n°894411
ratibus
Posté le 09-11-2004 à 16:21:58  profilanswer
 
n°894417
pdreulle
Posté le 09-11-2004 à 16:31:20  profilanswer
 

y'a 86 pages....

n°894421
ratibus
Posté le 09-11-2004 à 16:42:18  profilanswer
 

86 transparents powerpoint nuance :D
 
2 soirées maxi c'est pas la mort pour partir sur de bonne bases.
 
Je t'ai donné tous les éléments, c'est toi qui voit :D


---------------
Mon blog
n°894424
pdreulle
Posté le 09-11-2004 à 16:45:26  profilanswer
 

Ouais... Si quelqu'un d'autre à une idée...
Merci Ratibus.

n°894453
titione
addicted
Posté le 09-11-2004 à 17:12:33  profilanswer
 

oui : la même que ratibus.. :)) faire un site web c'est clair que c'est marrant et tout mais c'est quand même un métier pour d'autres ce qui signifie qu'il y a un certain savoir-faire etc... bref c'est pas inné et c'est pas un truc qui se fait facilement non plus !! à partir de là si on a envie de faire un site Internet faut se donner les moyens : apprendre doucement et procéder par étape !
 
c'est exactement pareil que quand tu commences à refaire ta maison : le pro il fera ça à tout de vitesse, et toi tu vas en chier un peu plus, tu vas traîner sur certains trucs, tu vas te planter par moment etc...
 
là c'est pareil : faut commencer par les choses simples puis dès que tu as compris, les adapter à tes besoins etc.. il y a de multiples tutoriaux sur Internet qui explique relativement bien chaque petit difficulté du php/html.. à toi de voir ceux qui t'intéressent, de les faire et de les adapter à ton site !
 
après effectivemetn si il y a un point que tu comprends pas, le forum est là (celui là comme un autre) pour toi !
 
on ne peut pas sur topic de forum apprendre le html et le php de manirèe globale : on ne serait pas crédible quand tu vois qu'une formation dans ce domaine coûte environ 1500 euros et dure 5 jours !!
 
voilà ce que j'en pense :)

n°894483
pdreulle
Posté le 09-11-2004 à 17:29:41  profilanswer
 

Moi, ce que j'en pense, c'est que ce que j'ai aprris, je l'ai appris dans les bopuquins (j'en aia caheté trois) et sur les sites d'initiation. Là, suis bloqué sur un truc, donc je demande sur un forum, un peu comme tu le dis titione... Vous n'avez pas la réponse à mon probleme, ou vous ne voulez pas la donner ?

n°894687
pdreulle
Posté le 09-11-2004 à 21:47:47  profilanswer
 

Tition et Ratibus, je reviens vers vous : je vous ai précisé que j'étais débutant. Croyez-vous que le document sur le protocole HTTP est accessible pour un débutant ? Je viens de le lire, et évidemment, je n'ai pas compris un mot sur trois. Je pensais que la vocation des forums était d'aider les débutants de bonne volonté et non pas de les exclure sous couvert d'un certain "elitisme" ("Je vois tellement de question passer qui n'ont pas de sens quand on connait HTTP." ). Bref, j'en suis toujours au même point....

n°894716
ratibus
Posté le 09-11-2004 à 22:20:26  profilanswer
 

Reposte clairement le code de tes différentes pages et je t'aiderai.

n°894723
pdreulle
Posté le 09-11-2004 à 22:31:02  profilanswer
 

Merci par avance :  
A noter ici que je fais des tests pour comprendre. J'ai lu plein de trucs pour mon probleme, j'ai vraiment rien trouvé.  
3 pages :  
- test.html : ou tu te loggues, formulaire avec post qui pointe sur login.php
- login.php : tu es identifié ou pas avec enregistrement de ssession
page.php : page de test pour voir si la session est active.  
 
Le code :  
test.html :  
Identification :  
<form method="post" action="login.php">
pseudo<input type="text" name="pseudo"><br>
mot de passe<input type="text" name="password"><br>
<input type="submit" name="submit" value="S'identifier">
</form>
 
login.php :  
<?
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
$db = mysql_connect('sql.free.fr','user','pass') or die ("erreur de connexion" );
mysql_select_db('joueurs',$db) or die ("erreur de connexion base" );
$sql = "select id,datecrea,email,pseudo,password from joueurs where pseudo = '$pseudo' AND password = '$password' AND valid= '1'";
$result = mysql_query($sql) or die("impossible d executer la requete" );
$num = mysql_numrows($result);
if ($num == 1) // le pseudo a été trouvé
{
session_register("pseudo" );  
echo "<center>Bienvenu sur votre espace membre : $pseudo</center>";  
$sess_nom = session_name();  
$sess_id = session_id();  
echo "Le nom de la session est :<br> ";
echo $sess_nom." et l'Id est : ".$sess_id."";
echo "<a href=\"page.php\">Page Essai</a>";  
 }
else  
{
print "non ident, pas valid<br>";
}
?>  
</body>
</html>
 
Et la page page.php :
<?php  
session_start();  
$server = "sql.free.fr";  
$user = "user";  
$pass = "pass";  
$base = "joueurs";
if(session_register(pseudo)) {  
 echo "<center>Bienvenu sur votre espace membre $login</center>";  
 echo "$email";
}  
else {  
echo "<center>Vous devez vous identifier pour accéder à cette page</center>";  
}  
?>
 
Merci d'avance, et desolé, je sais pas afficher mon code joliment ici.

n°894726
pdreulle
Posté le 09-11-2004 à 22:39:19  profilanswer
 

Ne t'embete pas ratibus. les codes que je viens de te filer sont les derniers apres maintes recherches, et j'ai merde das page.php : j'ai mis login au lieu de pseudo. Je vies de modifier ce dernier point et cela semble marcher.  
Merci 1 000 fois.

n°895140
Inekman
Posté le 10-11-2004 à 13:22:23  profilanswer
 

pour le problème des sessions j'ai eu le même problème que toi. En local avec easyphp, les sessions sont stocké dans des fichiers dans le dossiers "sessions" et sur free ça ne fonctionnait pas. J'ai créé un dossier Session à la racine du ftp et ça marche...chelou [:airforceone]

n°895160
pdreulle
Posté le 10-11-2004 à 13:40:06  profilanswer
 

Non, ca c'est pas chelou. J'avais fait cela aussi et dès le début. Mon probleme venait d'ailleurs.  
 

n°895243
Mara's dad
Yes I can !
Posté le 10-11-2004 à 14:38:30  profilanswer
 

Bravo !
 
Bon avec ça t'as un début de site qui te fais comprendre HTTP, HTML, PHP et MYSQL. Pas mal non ?
 
Une remarque toutefois :
$sql = "select id,datecrea,email,pseudo,password from joueurs where pseudo = '$pseudo' AND password = '$password' AND valid= '1'";  
 
Cette requête est dangereuse si tu ne te protège pas contre les attaques du type "SQL injection" ( Je te laisse le soint de te renseigner sur ce point :) ).
 
Il vaut mieux faire un truc du genre :
$sql = "select id,datecrea,email,pseudo,password,valid from joueurs where pseudo = '$pseudo'";
Tu vérifie ensuite que tu récupère bien 1 et 1 seul enregistrement, que $pseudo est bien identique à celui renvoyé par la requête, idem pour le pass bien sûr et enfin pour valid.
 
D'autre part, vu le code, tu est en register global ON ce qui est aussi une faille E N O R M E !
 
Bienvenue dans un monde subtil tout plein de requin sournois :o


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  sessions PHP chez free

 

Sujets relatifs
[php] liste d'attente de downloadpb d'accent sous PHP / MySQL
"mysql_free_result" quel est son equivalent avec sqlite ?STR_TO_DATE dans un script PHP
PHP - MySql : toutes les occurences du mois / de l'année courantemenu deroulant ->selected avec les sessions[resolu]
Comment modifier la taille d'un boutton en php(submit)pb de class PHP!!!
[PHP] Récupérer le dernier tableau d'un fichier HTMLLe new PHP de free , est ce qu'il supporte les sessions ?
Plus de sujets relatifs à : sessions PHP chez free


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR