Session

Résolu
shano Messages postés 2 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 octobre 2004 - 6 oct. 2004 à 00:06
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005 - 8 oct. 2004 à 23:51
Bonjour à tous!

et oui, j'ai un pb.
Je m'excuse d'avance sincèrement du fait que je vous montre autant de ligne de code et j'espère que vous ne m'en voudrez pas trop.
Voilà mon pb:
je ve authentifier un utilisateur j'ai une base de donnée avec une table machine avec des couples (machin, truc)
et après la saisie je les compare à la base pour l'authentification et selon "truc" j'affiche une fenêtre ou une autre.

voici la page qui fait le test et la redirection selon "truc"
======================================
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 2 Transitional//EN"
3 "http://www.w3.org/TR/html4/loose.dtd">

4 <?php require('connexion.php'); //if ($PHPSESSID)
5 session_start();
6 if (isset($_POST['machin'])){ // execution apres envoi du
7 formulaire
8 $machin = $_POST['machin']; // mise en variable du nom de la
9 machine
10 $truc = ($_POST['truc']);
11
12 switch($truc){
13 case 1: $truc_reel="bonbon";
14 break;
15 case 2: $truc_reel="sucette";
16 break;
17 }

18 // requete sur la table bonbon(on récupère les infos de la
19 personne)
20 mysql_select_db($bddnom,$bdprotect) or die("impossible de 21 se connecter à la base de données, re-essayer plus tard");
22 $verif_query=sprintf("SELECT * FROM machinesWHERE 23machin='$machin' AND truc='$truc_reel'");
24 $verif = mysql_query($verif_query, $bdprotect) or die
25(mysql_error());
26 $row_verif = mysql_fetch_assoc($verif);
27 $machine = mysql_num_rows($verif);
28
29 if ($machine) {// On test s'il y a une machine correspondante
30 session_register("authentification"); // enregistrement 31 de la session
32
33 $_SESSION['machin'] = $row_verif
34 ['machin']; //déclaration d'une variable de session:le machin
35 switch($truc){
36 case 1:header
37("Location:accueil_bonbon.php"); // redirection si bonbon 38reconnu
39 break;
40 case 2:header
41("Location:espace_sucette.php"); // redirection si sucette 42reconnu
43 break;
44 }
45 }
46 else{
47 header("Location:espace_reserve.php?48erreur=machin"); // redirection si machine non reconnu
49 }
50}
51else{
52 header("Location:espace_reserve.php?erreur=machin"); // 53redirection si machine non reconnu
54}
55
56?>

========================================

voici le résultat que j'obtiens sur le net alors qu'en local la redirection se fait sans problème:
========================================
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/6/c/login/redirection_espace.php:4) in /var/www/free.fr/6/c/login/redirection_espace.php on line 7

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/6/c/login/redirection_espace.php:4) in /var/www/free.fr/6/c/login/redirection_espace.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/6/c/login/redirection_espace.php:4) in /var/www/free.fr/6/c/login/redirection_espace.php on line 55
=========================================

MERCI vraiment de me répondre.
Shano

8 réponses

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
6 oct. 2004 à 01:39
Verifie si tu n'a pas laissé les balises HTML de head et de body dans ton fichier configuration.php que tu require

dans ce fichier tu ne doit avoir que du codes php

et verifie aussi que session_start() n'est pas appelé deux fois

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
3
cs_Psy Messages postés 88 Date d'inscription mercredi 15 mai 2002 Statut Membre Dernière intervention 3 mai 2005
6 oct. 2004 à 16:04
Salut !

Essaye avec ton entête ainsi :
1 <?php require('connexion.php'); //if ($PHPSESSID)
2 session_start();
3 if (isset($_POST['machin'])){ // execution apres envoi du
4 formulaire
5 $machin = $_POST['machin']; // mise en variable du nom de la
6 machine
7 $truc = ($_POST['truc']);
8
9 switch($truc){
10 case 1: $truc_reel="bonbon";
11 break;
12 case 2: $truc_reel="sucette";
13 break;
14 }
15
16<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 2 Transitional//EN"
17 "http://www.w3.org/TR/html4/loose.dtd">


Alors ??

- Psy -
0
shano Messages postés 2 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 16:18
Merci à vous deux:Magidev et Psy!!!

2 des 3 warning sont enlevés
il me reste encore celui avec le cache limiter mais cette fois-ci ce warning est transmis à la page suivante.

vous m'avez vraiment bien aidé surtout quand on sait que je ne comprend pa gran chose au session et que c mon premier site et mon premier développement en php

Merci encore vraiment
Shano
0
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
8 oct. 2004 à 17:36
j'aurais une petite question a vous poser , je suis nul en sessions et je cherche des infos.

en fait, on retien que le user est enregistre en enregistrant une variable particuliere dans la session ? si cette variable a une valeur, on affiche la page normallement, sinon on renvoie sur le script de log ???????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
8 oct. 2004 à 17:36
j'aurais une petite question a vous poser , je suis nul en sessions et je cherche des infos.

en fait, on retien que le user est enregistre en enregistrant une variable particuliere dans la session ? si cette variable a une valeur, on affiche la page normallement, sinon on renvoie sur le script de log ???????
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
8 oct. 2004 à 19:31
Ca tombe bien, j'ai justement publié une traduction d'un article de chez Zend.com (on ne les présente plus :-) )

C'est très bien expliqué, c'est pour cela que j'ai publié la traduction

Voici le lien:

http://www.phpcs.com/code.aspx?ID=26651

Mais tout le monde pense que ma source est inutile, lol donc si elle te sert bien, note la svp lol

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
8 oct. 2004 à 22:50
merci je vais aller voire ca. t'en as tjrs qui estime que parce que eux connaissent plein de trucs, les autres les connaissent aussi
0
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
8 oct. 2004 à 23:51
pas trop mal mais j'ai pas tout pige.

je t'explique ce que je veux faire :

il sagit d'un groupe d'application + plusieurs sites. je m'explique :
tu prends plusieurs appli de base, genre un carnet d'adresse, un mini webmail, un calendrier ..... tu melange et tu obtiens ce qu'in appelle un groupware. tu peux aller voire le site www.egroupware.org pour un tres bon exemple. xhaque appli est en fait une classe qui vient s'ajouter ou non dans le menu de l'appli principale en fonction de la config de l'utilisateur

il y'a une application module particuliere : l'editeur de site. j'en parle car ca implique un niveau supplementaire a gerer dans les droits d'acces :

il me faut donc 3 niveau d'acces :
-1- anonyme : c'est le visiteur de site basique
-2- user : il peut aussi utiliser les applications du groupware mais ne peut les administrer que dans certaines limites
-3- admin : peut tout faire

chaque utilisateur est enregistre dans une bdd avec son pass, son niveau d'acces ...... standard quoi

donc mon pb de session va se resoudre a ca : mettre en place un systeme pour que chaque application puisse savoir si l'utilisateur est "sessionnisé", si sa session a expirer ou non, connaitre ses droits d'acces ......

et la je nage completement

alors si quelqu'un peut m'aider ....

merci d'avance
0
Rejoignez-nous