Bonjour,
Tout d'abord, sachez que je code parfois en php mais que je ne suis pas un expert. Je me documente par moi-même et j'avance tant bien que mal.
Or j'ai rencontré ce jour un petit soucis, que j'ai apparemment résolu, mais j'ignore pourquoi ça fonctionne...
Mon problème était simplement le fait que la redirection via la fonction 'header' ne se faisait pas. J'ai bien vérifié et je n'ai aucun code HTML ou de bête caractère invisible avant mon code php.
Voici donc le code qui ne fonctionne pas :
Et ci-après le code qui fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php /* lib : changer_mois_actif.php ------------------------------- Modification du mois en cours (et de l'année éventuellement) La valeur du mois et de l'année sont stockées dans $_SESSION['mois'] et $_SESSION['annee'] un paramètre nommé "action" est nécessaire à ce script php : Si action = plus alors on augmente le mois de 1 Si action = moins alors on diminue le mois de 1 Ensuite on redirige vers le controlleur principal en lui demandant la liste des données. (index.php?todo=liste) */ if(!isset($_SESSION)) { session_start(); } // Si $_GET existe, on vérifie qu'il contient bien une des deux valeurs souhaitées, sinon on redirige vers le CTRL principal : if ($_GET['action'] == 'plus') { $_SESSION['mois']++; if ($_SESSION['mois'] == 13) { $_SESSION['mois'] = 1; $_SESSION['annee']++; header('location: /bsdrm/index.php?todo=liste'); exit; } } if ($_GET['action'] == 'moins') { $_SESSION['mois']--; if ($_SESSION['mois'] == 0) { $_SESSION['mois'] = 12; $_SESSION['annee']--; header('location: /bsdrm/index.php?todo=liste'); exit; } } ?>
La différence dans cette version du code est que j'ai juste déplacé les commandes 'header' et 'exit' tout à la fin, soit après les deux tests 'if' . Et là la fonction 'header' fonctionne parfaitement...
Quelqu'un pourrait-il me dire pourquoi dans un cas ça ne fonctionne pas, et dans l'autre bien... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php /* lib : changer_mois_actif.php ------------------------------- Modification du mois en cours (et de l'année éventuellement) La valeur du mois et de l'année sont stockées dans $_SESSION['mois'] et $_SESSION['annee'] un paramètre nommé "action" est nécessaire à ce script php : Si action = plus alors on augmente le mois de 1 Si action = moins alors on diminue le mois de 1 Ensuite on redirige vers le controlleur principal en lui demandant la liste des données. (index.php?todo=liste) */ if(!isset($_SESSION)) { session_start(); } // Si $_GET existe, on vérifie qu'il contient bien une des deux valeurs souhaitées, sinon on redirige vers le CTRL principal : if ($_GET['action'] == 'plus') { $_SESSION['mois']++; if ($_SESSION['mois'] == 13) { $_SESSION['mois'] = 1; $_SESSION['annee']++; } } if ($_GET['action'] == 'moins') { $_SESSION['mois']--; if ($_SESSION['mois'] == 0) { $_SESSION['mois'] = 12; $_SESSION['annee']--; } } header('location: /bsdrm/index.php?todo=liste'); exit; ?>
En vous remerciant d'avance, bonne journée,
cipll.
Partager