Bonjour
je rencontre quelques problèmes avec un de mes scripts qui utilise une classe et une variable de session...
voici la partie qui pose problème !
le fichier qui appelle cette classe comporte un session_start(); et appelle correctement la classe (le redirect se fait bien)
si jamais le redirect ne se fait pas, la variable de session est bien lue...
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 class sql { function sql($mysql_url, $mysql_login, $mysql_pass, $mysql_bdd) { mysql_connect($mysql_url, $mysql_login, $mysql_pass); mysql_query("USE `" . $mysql_bdd . "`"); } } class sql__users extends sql { function inscription($login, $pass) { $login = addslashes(htmlentities($login)); $pass = sha1($pass); mysql_query("INSERT INTO `users` VALUES ('" . $login . "', '" . $pass . "', 'en attente');"); if (mysql_errno() != 1062) { $_SESSION['js_alert'] = 'Inscription bien effectuée. Les administrateurs ont été prévenus de votre inscription et activeront votre compte prochainement.'; header('location: index.php'); } else { $_SESSION['js_alert'] = 'Login déja existant. Veuillez en choisir un autre.'; unset($_POST['login']); } } function sql__users($act, $var1, $var2) { switch($act) { case 'inscription': $this->inscription($var1, $var2); break; } } }
mais si le redirect a lieu, et mène au fichier index.php
la variable de session est considérée comme vide !session_start();
if (!empty($_SESSION['js_alert'])) { echo '<script language="javascript">alert("' , $_SESSION['js_alert'] , '");</script>'; unset($_SESSION['js_alert']); }
j'ai testé sur mon serveur personnel (apache 1.3.33, php 4.4.0), et également sur mon serveur free : aucune différence !
est-ce inévitable ?
comment régler ce problème ?
merci d'avance
Partager