Page 1 sur 2

session ouverte et aprés?

Posté : 29 déc. 2005, 14:39
par lukyluke
Bonjour, j'ai recupéré un tutorial qui m'a parmit d'authentifier un utilisateur et d'ouvrir une session. Ca marche trés bien, mais aprés??

Je souhaite que l'utilisateur une fois authentifié, puisse acceder a une page html ou autre (txt+images+d'autresliens), cette page faisant toujours référence a l'authentification.

j'ai un fichier secure qui dit:
<?php 
session_start() ; 
// on vérifie si l'utilisateur est identifié 
if ( !isset( $_SESSION['nom'] )) { 

  // la variable de session n’existe pas, 
  // donc l'utilisateur n'est pas authentifié 
  // On redirige sur la page permettant de s’authentifier 
  header('Location: auth.php') ; 
  // on arrête l'exécution 
  exit() ; 
}  
?> 
j'ai lu le tuto la dessus, et voici leur conseil:

"Il vous suffit maintenant d'ajouter include('secure.php') dans les scripts réservés pour que seules les personnes autorisées par la fonction verification() puissent les utiliser. Les autres seront redirigées vers le formulaire d’identification." OR je ne sais pas inclure cette fonction, j'ai fait une page html, avec une balise php avant celle du html, et la: erreur:

Code : Tout sélectionner

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ...
Je sais authentifier, mais je sais pas protéger mes pages par la suite.
Je pense etre au bout, pouvez vous me tuyauter? comment on peut faire pour que ma fonction verif agisse sur du contenu html??

MERCI

Posté : 29 déc. 2005, 14:49
par fab
il faut que tu places le session_start(); en tout début de page, un simple envoi de html ou même d'un espace vide affichera l'erreur sinon ton système devrait marcher

Re: session ouverte et aprés?

Posté : 29 déc. 2005, 14:50
par Truc
Salut,
comment on peut faire pour que ma fonction verif agisse sur du contenu html??
les pages, où tu veux inclure ce fichier de verification, doivent bien évidemment avoir une extension .php.

et tu inclus ensuite ce fichier en tout début des pages.

EDIT:décidément me fait vieux moi,j'traine 8-[

Re: session ouverte et aprés?

Posté : 29 déc. 2005, 15:10
par lukyluke
Salut,
comment on peut faire pour que ma fonction verif agisse sur du contenu html??
les pages, où tu veux inclure ce fichier de verification, doivent bien évidemment avoir une extension .php.

et tu inclus ensuite ce fichier en tout début des pages.

EDIT:décidément me fait vieux moi,j'traine 8-[
Merci de la réponse, j'ai fait ca et ca n'a rien donné:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<?php include('secure.php')?>
<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>montitre<... 
<html>

et j'ai fait ca:

<?php include('secure.php')?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>


<head>....
et je ferme mes balises.

Toujours erreur..Je pense que mes balises sont mal positionnées, dois je mettre mes balises html entre balises php?? je vais essayer d'ailleur.

Posté : 29 déc. 2005, 15:13
par fab
tu es sur d'avoir aucun espace ni rien avecta balise php ?? sinon c'est toujours le même message d'erreur au moins ?

Posté : 29 déc. 2005, 15:16
par Truc
montre ton code (les 10 premières lignes ) avec les balises
 (du forum, bouton)

Posté : 29 déc. 2005, 15:40
par lukyluke
montre ton code (les 10 premières lignes ) avec les balises [ php ] (du forum, bouton)
<?php include('secure.php')
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>mon titre</TITLE>

</head>

<body>


</body>
</html>
?>

Posté : 29 déc. 2005, 15:43
par lukyluke
il faut que tu places le session_start(); en tout début de page, un simple envoi de html ou même d'un espace vide affichera l'erreur sinon ton système devrait marcher
Quand je fais include('secure.php'), session_start(); est deja ecrit dans secure.php, pkoi le remettre??

secure.php:
<?php 
session_start() ; 
// on vérifie si l'utilisateur est identifié 
if ( !isset( $_SESSION['nom'] )) { 

  // la variable de session n’existe pas, 
  // donc l'utilisateur n'est pas authentifié 
  // On redirige sur la page permettant de s’authentifier 
  header('Location: auth.php') ; 
  // on arrête l'exécution 
  exit() ; 
}  
?>

Posté : 29 déc. 2005, 15:44
par fab
erf
<?php include('secure.php'); ?>
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<TITLE>mon titre</TITLE> 

</head> 

<body> 
si tu nous avait indiqué le message d'erreur ça aurait était plus pratique mais bon
va faire un tour du côté de phpdebutant.org
ça pourrait t'aider :)

Posté : 29 déc. 2005, 15:47
par lukyluke
erf
<?php include('secure.php'); ?>
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<TITLE>mon titre</TITLE> 

</head> 

<body> 
si tu nous avait indiqué le message d'erreur ça aurait était plus pratique mais bon
va faire un tour du côté de phpdebutant.org
ça pourrait t'aider :)
Parse error: parse error, unexpected '>' in mondossiet de site

Posté : 29 déc. 2005, 15:50
par fab
bah oui regarde la différence entre le code que tu as donné et celui quye j'ai mis

Posté : 29 déc. 2005, 15:57
par lukyluke
OK, c cool, ca marche, ma page s'affiche tres bien.
Puis je une autre question??????

mon utilisateur est authentifié, mais combien de temps? et comment je peux purger la session, du style, je me suis authentifié il y a 10 min, et l'acces a ma page php avec include est encore valide sans que j'ai eu a passer par l'authentification?? il y a un temp qui dit que c encore bon pour l'authentification, il est ou se fichier?? c dans phpmyAdmin que je vois ca? y a t il moyen de remettre a 0 cette session de telle sorte que l'util soit obligé de repartir sur auth.php?

je sais pas si je m'exprime bien, mais pour les null, y a pas d'autres solutions.

Je vais aller voir aussi sur phpdebutant.

MERCI encore

Posté : 29 déc. 2005, 16:03
par 3LpH4Ri0N
je sais pas si je m'exprime bien, mais pour les null, y a pas d'autres solutions.
Pas d'accord

Sinon et bien tu es identifié tant que tu ne ferme pas la fenêtre (vu que t'a pas de cookies) et que tu es sur le site (je crois) sinon et bien met toi au cookies :p

Posté : 29 déc. 2005, 16:09
par pitt
La session n'est pas active tant qu'on ne ferme pas la fenetre il se peut qu'elle coupe avant cela doit coorespondre a un parametre de configuration mais je ne sais pas lequel

Posté : 29 déc. 2005, 16:09
par fab