Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2007, 12h17   #1
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
Par défaut problème session_start ()

bonjour a tous,

je suis tomber sur une erreure concernant les sessions et je ne sais vraiment pas quoi faire car c la premiere fois que j'utilise les sessions

voici mon erreure :
Citation:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\super diet\php_conges_v1.1.1\calcul_nb_jours_pris.php:1) in c:\program files\easyphp1-8\www\super diet\php_conges_v1.1.1\INCLUDE.PHP\fonction.php on line 153
je suis preneur pour toutes suggestions.

merci d'avance

ciao
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 12h31   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 330
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 330
Points : 1 659
Points : 1 659
session_start(); doit etre la premiere chose de ton script php

Plus précisement aucun texte html ne doit etre affiché avant
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 12h39   #3
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
je l'ai mis au debut et ca change rien, il me met toujours la meme erreure.
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 13h40   #4
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

Tu n'aurais pas un saut de ligne otut bêtement ?
Tu pourrais nous montrer ton code ?
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 13h45   #5
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
Regarde aussi si tu n'as pas fais d'incude d'un fichier ou tu utilise du html
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 14h22   #6
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
voici ma page :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
<?php

// connexion MySQL + selection de la database sur le serveur
//
function  connexion_mysql()
{
   $mysql_link = MYSQL_CONNECT($_SESSION['config']['mysql_serveur'],$_SESSION['config']['mysql_user'],$_SESSION['config']['mysql_pass']);
   if (! $mysql_link)
   {
      die("connexion_mysql() : ".$_SESSION['lang']['mysql_srv_connect_failed']."<br>\n".mysql_error());
   }

   $dbselect   = mysql_select_db($_SESSION['config']['mysql_database'],$mysql_link);
   if (! $dbselect)
   {
      die("connexion_mysql() : ".$_SESSION['lang']['mysql_db_connect_failed']."<br>\n".mysql_error());
   }

   return $mysql_link;
}


//
// AFFICHAGE de la requete SQL   si debug == TRUE
// EXECUTION de la requete SQL   si debug != TRUE
//
function    requete_mysql($requete,$mysql_link,$fonction_name,$debug=FALSE)
{
   //
   // PARAMETRES :
   //  - $requete          : requete SQL a executer
   //  - $mysql_link       : handler MySQL
   //  - $fonction_name    : nom de la fonction qui a appele "requete_mysql"  <==> BLABLA à afficher
   //  - $debug            : si == TRUE, afficher requete SINON executer requete
   //

   if ($debug != TRUE)
   {
      $res = mysql_query($requete,$mysql_link)   or die("$fonction_name() : Erreur :<br>\n'" . mysql_error($mysql_link) . "'<br>\n sur '$requete' <BR>");
   }
   else
   {
      echo "DEBUG : $fonction_name() : requete='$requete'<BR>\n";
      if(eregi("^.*SELECT .+ FROM .+$", $requete))
      {
         $res = mysql_query($requete,$mysql_link)   or die("$fonction_name() : Erreur :<br>\n'" . mysql_error($mysql_link) . "'<br>\n sur '$requete' <BR>");
      	 echo "requete executée ...<BR>\n";
      }
      elseif(eregi("^.*DESCRIBE.*$",$requete))
      {
         $res = mysql_query($requete,$mysql_link)   or die("$fonction_name() : Erreur :<br>\n'" . mysql_error($mysql_link) . "'<br>\n sur '$requete' <BR>");
      	 echo "requete non executée ...<BR>\n";
      }
      else
      {
      	 echo "requete non reconnue ; non executée ...<BR>\n";
         $res = TRUE;
      }
   }

   return   $res;
}

//
// indique (TRUE / FALSE) si une session est valide (par / au temps de connexion)
//
function session_is_valid($session)
{
   // ATTENTION:  on fixe l'id de session comme nom de session pour que , sur un meme pc, on puisse se loguer sous 2 users à la fois
   if (session_id() == "")
   {
    session_name($session);
    session_start();
  }

	$is_valid=FALSE;

	if( (isset($_SESSION['timestamp_last'])) && (isset($_SESSION['config'])) )
	{
		$difference = time() - $_SESSION['timestamp_last'];
		if ( ($session==session_id()) && ($difference < $_SESSION['config']['duree_session']) )
		{
			$is_valid=TRUE;
		}
	}

	return $is_valid;
}



//
// cree la session et renvoie son identifiant
//
function session_create($username)
{
	if ($username != "")
	{
		$session = "phpconges".md5(uniqid(rand()));
		session_name($session);
		session_id($session);
		
		session_start();
		$_SESSION['userlogin']=$username;
		$maintenant=time();
		$_SESSION['timestamp_start']=$maintenant;
		$_SESSION['timestamp_last']=$maintenant;
		if (function_exists('init_config_tab'))
			$_SESSION['config']=init_config_tab();      // on initialise le tableau des variables de config
		//$session=session_id();
	}
	else
	{
		$session="";
	}

	return   $session;
}



//
// mise a jour d'une session
//
function session_update($session)
{
   if ($session != "")
   {
		$maintenant=time();
		$_SESSION['timestamp_last']=$maintenant;
   }
}



//
// destruction d'une session
//
function session_delete($session)
{
   if ($session != "")
   {
	 unset($_SESSION['userlogin']);
	 unset($_SESSION['timestamp_start']);
	 unset($_SESSION['timestamp_last']);
	 unset($_SESSION['tab_j_feries']);
	 unset($_SESSION['config']);
	 session_destroy();
   }
}



//
// formulaire de saisie du user/password
//
function session_saisie_user_password($erreur, $session_username, $session_password)
{
   $PHP_SELF=$_SERVER['PHP_SELF'];
   
	$config_lien_img_login          =$_SESSION['config']['lien_img_login'];
	$config_img_login               =$_SESSION['config']['img_login'];
	$config_texte_img_login         =$_SESSION['config']['texte_img_login'];
	$config_php_conges_version      =$_SESSION['config']['php_conges_version'];
	$config_url_site_web_php_conges =$_SESSION['config']['url_site_web_php_conges'];
	$config_stylesheet_file         =$_SESSION['config']['stylesheet_file'];

	echo "<html>\n<head>\n";
	echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";	
	echo "<link href=\"".$_SESSION['config']['stylesheet_file']."\" rel=\"stylesheet\" type=\"text/css\">\n";
	echo "<TITLE>SUPER DIET : GESTION DES CONGES</TITLE>\n";
	// test que le navigateur accepte les cookies et le javascript
	echo "<script language=\"JavaScript\" type=\"text/javascript\">\n";
	echo "<!--\n";
	echo "// Les cookies sont obligatoires\n";
	echo "if (! navigator.cookieEnabled) {\n";
	echo "	document.write(\"<font color='#FF0000'><br><br><center>".$_SESSION['lang']['cookies_obligatoires']."</center></font><br><br>\");\n";
	echo "}\n";
	echo "//-->\n";
	echo "</script>\n";
	echo "<noscript>\n";
	echo "		<font color=\"#FF0000\"><br><br><center>".$_SESSION['lang']['javascript_obligatoires']."</center></font><br><br>\n";
	echo "</noscript>\n";
	
	echo "</head>\n";
	echo "<body class=\"login\">\n";
	
	echo "<CENTER>\n";
	if($erreur=="login_passwd_incorrect")
		echo "<H3>".$_SESSION['lang']['login_passwd_incorrect']."</H3><BR>\n";
	elseif($erreur=="login_non_connu")
		echo "<H3>".$_SESSION['lang']['login_non_connu']."</H3><BR>\n";
	echo "</CENTER>\n";
	
	echo "<CENTER>\n";
	echo "<table>\n";
	echo "<tr><td align=\"center\">\n";
		//echo "<a href=\"$config_lien_img_login\" target=\"_parent\">";
		echo "<b><font color='#FF0000' size='3'>GESTION DES CONGES : VEUILLEZ VOUS IDENTIFIER</font></b>" ;
		//echo "<img src=\"$config_img_login\" alt=\"$config_texte_img_login\" title=\"$config_texte_img_login\"/>";
		echo "</a>";
		echo "<br><br><br>\n";
	echo "</td></tr>\n";
	
	echo "<tr><td align=\"center\">\n";
		echo "<FORM METHOD='post' ACTION='$PHP_SELF'>\n";
		
		echo "<fieldset class=\"boxlogin\">\n";
		echo "<legend class=\"boxlogin\">".$_SESSION['lang']['login_fieldset']."</legend>\n";
		echo "<TABLE class=\"ident\">\n";
		echo "<TR>\n";
		echo "	<TD class=\"login\">".$_SESSION['lang']['divers_login_maj_1']." :</TD>\n";
		echo "	<TD><INPUT TYPE='text'     NAME='session_username' SIZE=32  VALUE='$session_username'></TD>\n";
		echo "</TR>\n";
		echo "<TR>\n";
		echo "	<TD class=\"login\">".$_SESSION['lang']['password']." :</TD>\n";
		echo "	<TD><INPUT TYPE='password' NAME='session_password' SIZE=32  VALUE='$session_password'></TD>\n";
		echo "</TR>\n";
		echo "</TABLE>\n";
		echo "</fieldset>\n";
		
		echo "<TABLE BORDER='0'>\n";
		echo "<TR>\n";
		echo "	<TD COLSPAN='2'><CENTER><INPUT TYPE='submit' VALUE='".$_SESSION['lang']['form_submit']."'></CENTER></TD>\n";
		echo "</TR>\n";
		echo "</TABLE>\n";
		echo "</FORM>\n";
	echo "</td></tr>\n";
	echo "</table>\n";
	
	echo "<table width=\"100%\">\n";
	if( (isset($_SERVER["HTTP_USER_AGENT"])) && (stristr($_SERVER["HTTP_USER_AGENT"], "MSIE")!=FALSE) )
	{
		echo "<tr><td align=\"center\">";
		//echo "<img src=\"img/attention.png\" width=\"22\" height=\"22\" border=\"0\"/>";
		//echo "&nbsp;".$_SESSION['lang']['msie_alert'] ;
		echo "</td></tr>\n";
	}
	echo "<tr><td align=\"right\">\n";
		echo "<br><br>";
		//echo "<a href=\"$config_url_site_web_php_conges/\">PHP_CONGES v $config_php_conges_version</a>\n";
	echo "</td></tr>\n";
	echo "</table>\n";

	echo "</CENTER>\n";
	echo "</body>\n</html>\n";
}



//
// autentifie un user dans le base mysql avec son login et son passwd conges :
// - renvoie $username si authentification OK
// - renvoie ""        si authentification FAIL
//
function autentification_passwd_conges($username,$password)
{
	// connexion MySQL + selection de la database sur le serveur
	$mysql_link=connexion_mysql();

	$username_password_ok="";
	
	$password_md5=md5($password);
//	$req_conges="SELECT u_passwd   FROM conges_users   WHERE u_login='$username' AND u_passwd='$password_md5' " ;
	// on conserve le double mode d'autentificatio (nouveau cryptage (md5) ou ancien cryptage (mysql))
	$req_conges="SELECT u_passwd   FROM conges_users   WHERE u_login='$username' AND ( u_passwd='$password_md5' OR u_passwd=PASSWORD('$password') ) " ;
	$res_conges = mysql_query($req_conges,$mysql_link) or die("autentification_passwd_conges() : Erreur ".mysql_error());
	$num_row_conges = mysql_num_rows($res_conges);
	if ($num_row_conges !=0)
	{
		$username_password_ok=$username;
	}

	return   $username_password_ok;
}



//
// supprime les accents d'une chaine de caracteres
//
function supprime_accent($string)
{
   $string_noaccent = $string;
   $string_noaccent = strtr($string_noaccent, "áàâäãéèêëíìîïóòôöõúùûüýÿçñ", "aaaaaeeeeiiiiooooouuuuyycn");
   $string_noaccent = strtr($string_noaccent, "ÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝYÇÑ", "AAAAAEEEEIIIIOOOOOUUUUYYCN");

   return $string_noaccent;
}


//
// genère le mot de passe MySQL à partir du mot de passe en clair
//
function make_mysql_password($password)
{
   // connexion MySQL + selection de la database sur le serveur
   $mysql_link=connexion_mysql();


   $mysqlpassword="";

   $req_password = "SELECT OLD_PASSWORD('$password'),PASSWORD('$password')";
   $res_password = mysql_query($req_password,$mysql_link) or die("make_mysql_password() : Erreur ".mysql_error());

   if ($row_password = mysql_fetch_array($res_password))  /* si un enregistrement deja dans la table unix */
   {
      $mysql_old_password=$row_password["OLD_PASSWORD('$password')"];
      $mysql_new_password=$row_password["PASSWORD('$password')"];

      //
      // ATTENTION : selon la version de MySQL ...
      //
      $mysqlpassword=$mysql_old_password;
   }

   return $mysqlpassword;
}

// authentification du login/passwd sur un serveur LDAP
// - renvoie $username si authentification OK
// - renvoie ""        si authentification FAIL
//
function authentification_ldap_conges($username,$password)
{
   require_once ($_SESSION['config']['php_conges_authldap_include_path']."/authLDAP.php");
   
   $username_password_ok="";
   
   $a = new authLDAP();
   //$a->DEBUG = 1;
   $a->bind($username,$password);
   if ($a->is_authentificated())
   {
 	$username_password_ok=$username;
  }  

   return   $username_password_ok;
}


// Authentifie l'utilisateur auprès du serveur CAS, puis auprès de la base de donnée.
// Si le login qui a permis d'authentifier l'utilisateur auprès du serveur
//	CAS existe en tant que login d'une entrée de la table conges_user, alors 
//	l'authentification est réussie et passwCAS renvoi le nom de l'utilisateur, "" sinon.
// - renvoie $username si authentification OK
// - renvoie ""        si authentification FAIL
function authentification_passwd_conges_CAS()
{
	// import de la librairie CAS
	include_once($_SESSION['config']['php_conges_cas_include_path']."/CAS/CAS.php");
	// import des paramètres du serveur CAS
	
	$config_CAS_host       =$_SESSION['config']['CAS_host'];
	$config_CAS_portNumber =$_SESSION['config']['CAS_portNumber'];
	$config_CAS_URI        =$_SESSION['config']['CAS_URI'];
	
	global $connexionCAS;
	global $logoutCas;
	
	$username_password_ok="";
	
	phpCAS::setDebug();
			
	// initialisation phpCAS
	if($connexionCAS!="active")
	{
		$CASCnx = phpCAS::client(CAS_VERSION_2_0,$config_CAS_host,$config_CAS_portNumber,$config_CAS_URI);
		$connexionCAS = "active";

	}
	
	if($logoutCas==1)
	{
		phpCAS::logout();
	}
	
	// authentificationCAS (redirection vers la page d'authentification de CAS)
	//remarque : phpCAS::authenticateIfNeeded est deprecated dans les version de phpcas > 0.4.20
	//			on utilisera à la place phpCAS::forceAuthentication()
	if(function_exists('phpCAS::forceAuthentication'))
		phpCAS::forceAuthentication();
	else
		phpCAS::authenticateIfNeeded();
	
	//L'utilisateur a été correctement identifié		

	$usernameCAS = phpCAS::getUser();
	$mysql_link =connexion_mysql();
	
	//ON VERIFIE ICI QUE L'UTILISATEUR EST DEJA ENREGISTRE SOUS DBCONGES
	$req_conges = "SELECT u_login FROM conges_users WHERE u_login='$usernameCAS'";
	$res_conges = mysql_query($req_conges,$mysql_link) or die("authentification_passwd_conges_CAS() : Erreur :<br>\n$req_conges<br>\n".mysql_error());
	$num_row_conges = mysql_num_rows($res_conges);
	if($num_row_conges !=0)
		$username_password_ok = $usernameCAS;
	
	return $username_password_ok;
}


?>
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 14h36   #7
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
mais lorsque que tu utilises ta fonction, tu n'as pas de html avant???
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 15h24   #8
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
voici la page :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<script language="javascript">
function envoi(valeur)
{window.opener.document.forms[0].new_nb_jours.value=valeur}
</Script>
 
<?php
 
 
$session=(isset($_GET['session']) ? $_GET['session'] : ((isset($_POST['session'])) ? $_POST['session'] : session_id()) ) ;
 
include("fonctions_conges.php") ;
include("INCLUDE.PHP/fonction.php");
include("INCLUDE.PHP/session.php");
$verif_droits_file="INCLUDE.PHP/verif_droits.php";
if( ($_SESSION['config']['verif_droits']==TRUE) && (file_exists($verif_droits_file)) ){ include($verif_droits_file);}
 
	// DEBUG
	//print_r($_GET); echo "<br>\n";
 
 
	/*** initialisation des variables ***/
	$session=session_id();
	$user="";
	$date_debut="";
	$date_fin="";
	/************************************/
 
	/*************************************/
	// recup des parametres reçus :
	// SERVER
	$PHP_SELF=$_SERVER['PHP_SELF'];
	// GET	/ POST
	$user       = getpost_variable("user") ;
	$date_debut = getpost_variable("date_debut") ;
	$date_fin   = getpost_variable("date_fin") ;
	$opt_debut  = getpost_variable("opt_debut") ;
	$opt_fin    = getpost_variable("opt_fin") ;
	/*************************************/
 
 
	if( ($user!="") && ($date_debut!="") && ($date_fin!="") && ($opt_debut!="") && ($opt_fin!="") )
		affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin);
	else
		/* APPEL D'UNE AUTRE PAGE immediat */
		echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL=user_index.php?session=$session&onglet=nouvelle_absence\">";
		//echo " $user, $date_debut, $date_fin, $opt_debut, $opt_fin <br>\n";
 
 
 
 
/**********  FONCTIONS  ****************************************/
 
function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin)
{
	$PHP_SELF=$_SERVER['PHP_SELF'];
	$session=session_id();
 
	echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">\n";
	echo "<html>\n";
	echo "<head>\n";
 
	echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
	echo "<link href=\"style_basic.css\" rel=\"stylesheet\" type=\"text/css\">\n";
	echo "<title>PHP_CONGES : </title>\n";
	echo "</head>\n";
	echo "<body>\n";
	echo "<center>\n";
	echo "<h1>$user</h1>\n";
 
	echo "<form action=\"$PHP_SELF?session=$session\" method=\"POST\">\n";
	echo "<table>\n";
	echo "<tr>\n";
	// calcul :
	$nb_jours=compter($user, $date_debut, $date_fin, $opt_debut, $opt_fin);
	echo "<td align=\"center\"><h2>".$_SESSION['lang']['calcul_nb_jours_nb_jours']." <b>$nb_jours</b></h2></td>\n";
	echo "</tr>\n";
	echo "<tr>\n";
	echo "<td align=\"center\"><i>".$_SESSION['lang']['calcul_nb_jours_reportez']." \"".$_SESSION['lang']['saisie_conges_nb_jours']."\" ".$_SESSION['lang']['calcul_nb_jours_form'].".</i></td>\n";
	echo "</tr>\n";
	echo "<tr>\n";
	echo "<td align=\"center\">\n";
	echo "	&nbsp;\n";
	echo "</td>\n";
	echo "</tr>\n";
	echo "<tr>\n";
	echo "<td align=\"center\">\n";
	echo "	<input type=\"button\" value=\"".$_SESSION['lang']['form_close_window']."\" onClick=\"javascript:window.close();\">\n";
	echo "</td>\n";
	echo "</tr>\n";
	echo "</table>\n";
	echo "</form>\n";
 
	if( ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']==TRUE) && ($nb_jours!=0) )
		echo "<script>envoi($nb_jours)</script>";
 
	echo "</center>\n";
	echo "</body>\n";
	echo "</html>\n";
 
}
 
 
// calcule le nb de jours de conges à prendre pour un user entre 2 dates
// retourne le nb de jours  (opt_debut et opt_fin ont les valeurs "am" ou "pm"
function compter($user, $date_debut, $date_fin, $opt_debut, $opt_fin)
{	
	if (strtotime($date_debut) > strtotime($date_fin))
		return 0 ;
 
	if( ($date_debut!=0) && ($date_fin!=0) )
	{
		$nb_jours=0;
 
		//connexion mysql
		$mysql_link = connexion_mysql() ;
 
		// on initialise le tableau global des jours fériés s'il ne l'est pas déjà :
		if(!isset($_SESSION["tab_j_feries"]))
		{
			init_tab_jours_feries($mysql_link);
			//print_r($_SESSION["tab_j_feries"]);   // verif DEBUG
		}
 
		$current_day=$date_debut;
		$date_limite=jour_suivant($date_fin);
 
		// on va avancer jour par jour et voir s'il est travaillé, férié, rtt, etc ...
		while($current_day!=$date_limite)
		{
			$pieces = explode("-", $current_day);  // date de la forme yyyy-mm-jj
			$y=$pieces[0]; 
			$m=$pieces[1]; 
			$j=$pieces[2]; 
			$timestamp_du_jour=mktime (0,0,0,$m,$j,$y);
 
			// on regarde si le jour est travaillé ou pas
			$j_name=date("D", $timestamp_du_jour);
			if( (($j_name=="Sat")&&($_SESSION['config']['samedi_travail']==FALSE)) 
				|| (($j_name=="Sun")&&($_SESSION['config']['dimanche_travail']==FALSE)))
			{
				// on ne compte pas ce jour
			}
			else
			{
				if(est_chome($timestamp_du_jour)==TRUE)
				{
					// on ne compte pas ce jour
				}
				else
				{
					// verif des rtt ou temp partiel (dans la table rtt)
					$val_matin="N";
					$val_aprem="N";
					recup_infos_artt_du_jour($user, $timestamp_du_jour, $val_matin, $val_aprem, $mysql_link);
 
					// si on est le premier jour et que les conges commencent à midi
					if( ($current_day==$date_debut) && ($opt_debut=="pm") ) 
					{
						//on ne traite pas le matin
					}
					else
					{
						if($val_matin!="Y")  // pas de rtt le matin
							$nb_jours=$nb_jours+0.5;
					}
 
					// si on est le dernier jour et que les conges finissent à midi
					if( ($current_day==$date_fin) && ($opt_fin=="am") )
					{
						//on ne traite pas l'apres midi
					}
					else
					{
						if($val_aprem!="Y") // pas de rtt l'après midi
							$nb_jours=$nb_jours+0.5;
					}
 
				}
			}
			$current_day=jour_suivant($current_day);
		}
 
		mysql_close($mysql_link);
		return $nb_jours; 
	}
	else
		return 0; 
}
 
// renvoit le jour suivant de la date paséée en paramètre sous la forme yyyy-mm-jj
function jour_suivant($date)
{
	$pieces = explode("-", $date);  // date de la forme yyyy-mm-jj
	$y=$pieces[0]; 
	$m=$pieces[1]; 
	$j=$pieces[2]; 
 
	$lendemain = date("Y-m-d", mktime(0, 0, 0, $m , $j+1, $y) );
	return $lendemain;
}
 
?>
c'est cette page qui me permet de calculer ce que je veu et qui me soumet l'erreur.
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 15h41   #9
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
Ce que je te conseil c'est de mettre start_session() au debut de chacune de tes pages html, comme ça tu n'auras plus le probleme de savoir si tu a du html avant l'utilisation de tes fonctions.
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h02   #10
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
g mis session_start dans toutes les pages et le pb persiste, je ne sais pas comment resoudre ce pb
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h43   #11
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
et bien leclone je suis vraiment desolé de ne pas pouvoir t'aider plus que cela.
La seule erreur que j'avais de ce genre c'est quand j'avais de declarations de variable apres du HTML.

Bon courage
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h59.


 
 
 
 
Partenaires

Hébergement Web