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)
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;
                }
            }
        }
si jamais le redirect ne se fait pas, la variable de session est bien lue...

mais si le redirect a lieu, et mène au fichier index.php
session_start();

if (!empty($_SESSION['js_alert'])) { echo '<script language="javascript">alert("' , $_SESSION['js_alert'] , '");</script>'; unset($_SESSION['js_alert']); }
la variable de session est considérée comme vide !

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