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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] session précision

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] session précision

n°165572
seb90
Posté le 25-06-2002 à 16:23:54  profilanswer
 

cette fois ci je craque !!!
j ai mis ça ds la partie php de ma page :
 

Code :
  1. <?
  2. include("log.inc.php" );
  3. session_start();


 
et j ai le msg suivant :
 
Warning: Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/7/t/e/s/t/testphp4/menu2.php:5) in menu2.php on line 48
 
Est ce que c est parcequ' il y a du html avant ???


Message édité par seb90 le 26-06-2002 à 00:56:33

---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
mood
Publicité
Posté le 25-06-2002 à 16:23:54  profilanswer
 

n°165574
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 16:26:46  profilanswer
 

pour autant que je me souvienne, session_start() doit etre la 1ere instruction de ton code. a confirmer.
 
inutile d'ouvrir 36 topics pour ça au passage...
 
enfin, as tu fait ce que Free recommande de faire (cf ma réponse dans ton précédent topic) ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°165576
seb90
Posté le 25-06-2002 à 16:30:26  profilanswer
 

j ai effacé l autre topic personne le lisait , sinon ouais j ai fais le repertoire sessions ...


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165594
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 16:43:38  profilanswer
 

extrait de www.php.net....
 
 

Citation :


Note: If you are using cookie-based sessions, you must call session_start() before anything is output to the browser.  
 


---------------
J'ai un string dans l'array (Paris Hilton)
n°165601
seb90
Posté le 25-06-2002 à 16:46:06  profilanswer
 

ok ben j v reorganiser la disposition de la page alors ... merci


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165606
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 16:51:14  profilanswer
 

pas besoin de réorganiser ta page, tu colles juste ce code au début de ta page :
 
<? session_start(); ?>
 
et dire que j'ai jamais fait de PHP.....  :sarcastic:


---------------
J'ai un string dans l'array (Paris Hilton)
n°165607
prettysmil​e
Sourire est un devoir social
Posté le 25-06-2002 à 16:53:19  profilanswer
 

Harkonnen a écrit a écrit :

pas besoin de réorganiser ta page, tu colles juste ce code au début de ta page :
 
<? session_start(); ?>
 
et dire que j'ai jamais fait de PHP.....  :sarcastic:  



:love:  t trop fort  :love:

n°165612
Dost67
Posté le 25-06-2002 à 16:56:22  profilanswer
 

Ou alors tu mets

Code :
  1. ob_start('gz_handler');

comme 1ere instruction et tu laisses ton session_start() là où il est... Comme ça t'auras la compression des pages en + !

n°165618
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 16:59:55  profilanswer
 

prettysmile a écrit a écrit :

 :love:  t trop fort  :love:  




merci ma belle :love:
mais tu me sur-estimes je pense, j'ai juste lu pendant quelques secondes la page suivante :
 
http://www.php.net/manual/en/funct [...] -start.php


---------------
J'ai un string dans l'array (Paris Hilton)
n°165627
seb90
Posté le 25-06-2002 à 17:04:57  profilanswer
 

g mis ce ptit truc et ça marche : ob_start('gz_handler';);
dc merci  
mais lorsque je veux afficher le login , il affiche rien ...
( en fait loesque je regarde les fichiers sessions y a pas de valeurs associés eu login et password )


Message édité par seb90 le 25-06-2002 à 17:09:49

---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
mood
Publicité
Posté le 25-06-2002 à 17:04:57  profilanswer
 

n°165631
prettysmil​e
Sourire est un devoir social
Posté le 25-06-2002 à 17:08:15  profilanswer
 

Harkonnen a écrit a écrit :

 
merci ma belle :love:
mais tu me sur-estimes je pense, j'ai juste lu pendant quelques secondes la page suivante :
 
http://www.php.net/manual/en/funct [...] -start.php



savoir effectuer une rechercher, t vraiement trop fort  :love:  (unménage à 3 avec google, ça ne me dérange pas outre mesure)

n°165688
seb90
Posté le 25-06-2002 à 17:55:19  profilanswer
 

donc je fais ça :
 

Code :
  1. $login=$nom;
  2. $password=$mdp;
  3. session_register("login" );
  4. session_register("password" );
  5. $logstate=1;


 
ou nom et mdp sont des champs texte...
 
hé ben qd j ouvre les fichiers de session , login et password sont vide ....
je capte pa d ou ça vient la ....


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165719
seb90
Posté le 25-06-2002 à 18:37:43  profilanswer
 

[:yoyoz]  [:yoyoz]


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165794
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 20:02:14  profilanswer
 

une recherche sur php.net nous apprend à propos de session_register que :

Citation :


This registers a global variable. If you want to register a session variable inside a function, you need to make sure to make it global using global() or use the session arrays as noted below.  


je te pose donc la question suivante : est-ce que tes variables $nom et $mdp sont globales ? (a l'extérieur d'une fonction)  
 
dans l'affirmative, une question de rechange : si tu fais "echo $nom" par exemple, obtiens tu la valeur que tu devrais obtenir ?
 
il faut toujours vérifier que les variables contiennent une valeur avant d'accuser la fonction qui les manipule, c'est la b-a ba de la prog...


Message édité par Harkonnen le 25-06-2002 à 20:03:53

---------------
J'ai un string dans l'array (Paris Hilton)
n°165804
seb90
Posté le 25-06-2002 à 20:26:35  profilanswer
 

ben com c est des champs qui sont ensuite postés ce sont des paramaètres dc y a pas d raison ...


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165806
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 20:29:29  profilanswer
 

fais quand meme un echo, pour vérifier ...


---------------
J'ai un string dans l'array (Paris Hilton)
n°165808
seb90
Posté le 25-06-2002 à 20:33:32  profilanswer
 

Harkonnen a écrit a écrit :

fais quand meme un echo, pour vérifier ...




 
ben justement ça marche pa


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165810
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 20:35:13  profilanswer
 

et ben voila ! donc ça veut dire que tes variables ne sont pas récupérées...
 
poste le code entier pour voir


---------------
J'ai un string dans l'array (Paris Hilton)
n°165811
seb90
Posté le 25-06-2002 à 20:37:46  profilanswer
 

nom et mdp sont les noms des champs recupérés avant ds le post
 

Code :
  1. <?
  2. include("log.inc.php" );
  3. $sql="SELECT * FROM utilisateur WHERE pseudo = '$nom'";
  4. $req=mysql_query($sql);
  5. $logstate=0;
  6. while ($data=mysql_fetch_array($req))
  7. {
  8. if ($data['mdp']='$mdp')
  9.  {
  10.  $login=$nom;
  11.  $password=$mdp;
  12.  session_register("login" );
  13.  session_register("password" );
  14.  $logstate=1;
  15.  }
  16. }
  17. if ($logstate==1)
  18. {
  19. echo "<font color=\"#FFFF00\" size=\"2\"><b>";
  20. session_start();
  21. echo $login;
  22. echo "</b></font><br><font color=\"#000033\" size=\"2\"><a href=\"menu1.php\">Déconnexion</a></font>";
  23. }
  24. else
  25. {
  26. echo "<br>Mauvais log ou mdp<br>";
  27. session_destroy();
  28. }
  29. ?>


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165812
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2002 à 20:39:34  profilanswer
 

oui ben justement, c'est le post qui m'interessait
 
poste le code de ton formulaire


---------------
J'ai un string dans l'array (Paris Hilton)
n°165814
seb90
Posté le 25-06-2002 à 20:43:54  profilanswer
 

Code :
  1. <form name="form2" method="post" action="menu2.php" enctype="multipart/form-data">
  2. <input type="text" name="nom" size="13" maxlength="15"style="color: #00184A; background: #6C98BF">
  3. <input type="password" name="mdp" size="9"maxlength="15"style="color: #00184A; background: #6C98BF">
  4. <input type="submit" name="Submit" value="Go">


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°165972
seb90
Posté le 26-06-2002 à 00:56:09  profilanswer
 

en fait c est depuis que je suis passé au php4 !!! Qqn a une idee ???


---------------
Vendez, achetez et échangez vos jeux vidéos sur http://www.jeutroc.com
n°166027
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-06-2002 à 08:53:49  profilanswer
 

non, la je vois pas, je connais pas assez PHP  :??:  
d'apres ce que je lis, ça a l'air correct, mais il te faudrait l'aide de Sh@rdar ou kayasax, qui sont des demi dieux en PHP.
 


---------------
J'ai un string dans l'array (Paris Hilton)
n°166038
--stan--
Posté le 26-06-2002 à 09:22:57  profilanswer
 

deja, fo mettre if ( $data['mdp'] == $mdp )
et puis le mie c de mettre $_POST['mdp'], si t en php >= 4.1.0

n°166692
Dost67
Posté le 26-06-2002 à 19:41:58  profilanswer
 

1. Je sais pas si ça change qqch mais j'ai l'habitude de mettre session_register() avant d'affecter la variable.
 
2.

Code :
  1. if ($data['mdp']='$mdp')

C totalement n'importe.. Ca veut dire que juste après le if qui sera tjrs true $data['mdp'] contiendra '$mdp', et pas le contenu de $mdp !!!!!
Faut mettre comme a mis --Stan--.
 
3. Autre possiblité et c'est certainement là le pb. Tu es sur Free.fr ou Online, tu a mis enctype="multipart..." dans le <form> or Free refuse ça en PHP4 (en 3 ça fonctionne) ! Donc enlève le enctype et normalement tt devrait aller mieux.

n°166734
- Fred -
007 Agent
Posté le 26-06-2002 à 22:02:23  profilanswer
 

Pour ton histoire de session_start, regardes si dans ton include tu fais pas de echo ou print ...
 
Ensuite, j'ai un petit code pour toi, qui te permet de faire un override des register_globals :
 

if ( function_exists('ini_get') ) {
 $onoff = ini_get('register_globals');
} else {
 $onoff = get_cfg_var('register_globals');
}
if ($onoff != 1) {
 @extract($HTTP_SERVER_VARS, EXTR_SKIP);
 @extract($HTTP_COOKIE_VARS, EXTR_SKIP);
 @extract($HTTP_POST_FILES, EXTR_SKIP);
 @extract($HTTP_POST_VARS, EXTR_SKIP);
 @extract($HTTP_GET_VARS, EXTR_SKIP);
 @extract($HTTP_ENV_VARS, EXTR_SKIP);
}


Tu nous mets ça en tout premier dans ton script et tu réésayes ;)
 
Ensuite, je regarde ton code d'authentification, tu peux l'améliorer ... non seulement tu n'encrypte pas le mot de passe avant de le stocker dans ta base (ça peut se comprendre ...), mais tu as des lignes pour rien : une bonne synthaxe SQL te permet d'aller bcp plus vite.
 
Ton code :

 <?
  include("log.inc.php" );
   
  $sql="SELECT * FROM utilisateur WHERE pseudo = '$nom'";
  $req=mysql_query($sql);
  $logstate=0;
  while ($data=mysql_fetch_array($req))  
   {
     if ($data['mdp']='$mdp')
      {  
        $login=$nom;
        $password=$mdp;
        session_register("login" );
        session_register("password" );
        $logstate=1;
      }
   }
   
  if ($logstate==1)
   {
     echo "<font color=\"#FFFF00\" size=\"2\"><b>";
     session_start();
     echo $login;
     echo "</b></font><br><font color=\"#000033\" size=\"2\"><a href=\"menu1.php\">Déconnexion</a></font>";
   }
  else
   {
     echo "<br>Mauvais log ou mdp<br>";
     session_destroy();  
   }
   
  ?>


 
Le mien :

 <?
session_start();
 
if ( function_exists('ini_get') ) {
 $onoff = ini_get('register_globals');
} else {
 $onoff = get_cfg_var('register_globals');
}
if ($onoff != 1) {
 @extract($HTTP_SERVER_VARS, EXTR_SKIP);
 @extract($HTTP_COOKIE_VARS, EXTR_SKIP);
 @extract($HTTP_POST_FILES, EXTR_SKIP);
 @extract($HTTP_POST_VARS, EXTR_SKIP);
 @extract($HTTP_GET_VARS, EXTR_SKIP);
 @extract($HTTP_ENV_VARS, EXTR_SKIP);
}
 
include("log.inc.php" );
 
$sql="SELECT * FROM utilisateur WHERE pseudo = '$nom' AND mdp='$mdp'";
$result = mysql_query($sql);
 
if(@mysql_num_rows($result)){
        $login=$nom;
        $password=$mdp;
        session_register("login" );
        session_register("password" );
        $logstate=1;
        echo '<font color="#FFFF00" size="2"><b>'.$login.'</b></font><br><font color="#000033" size="2"><a href="menu1.php">Déconnexion</a></font>';}
else {
echo "<b>Mauvais log ou mdp</b>";
$logstate=0;
}
?>


Message édité par - Fred - le 26-06-2002 à 22:13:27

---------------
"You know the name, You know the number..."
n°167390
- Fred -
007 Agent
Posté le 27-06-2002 à 15:52:48  profilanswer
 

Je me fais chier à faire un listing de fou à 22h30 et personne répond :D


---------------
"You know the name, You know the number..."
n°167469
Dost67
Posté le 27-06-2002 à 16:48:17  profilanswer
 

- Fred - >> Tu parles d'optimiser la requête SQL. Je sais pas si c'est plus rapide de faire :

Code :
  1. SELECT COUNT(*) AS cpt FROM utilisateur WHERE pseudo='$nom' AND mdp='$mdp'

mood
Publicité
Posté le   profilanswer
 


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

  [PHP] session précision

 

Sujets relatifs
[PHP/SQL] Afficher IMAGES prise dans une table sur 2 COLONNESPHP + SQL = GALERE LoL
[PHP] Bouton suivant : passé a la page 2, 3, ... ??[PHP & MySQL] echanger proprement le contenu de 2 lignes ds 1 db
[PHP] manipulation binaire[PHP] et les objets liste de dreamweaver
[PHP/SQL] Reçu l'erreur 127 du handler de la table[PHP/SQL] Mais c'ets pas vré !!!!!!!!! Alors la jcomprend aps !!
[PHP] comment on affiche un champHEE!!!!! On ne peux pas faire de BdD d'images avec PHP mySql ??????
Plus de sujets relatifs à : [PHP] session précision


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