Bonjour à tous !
voilà mon problème :
je suis en train de faire un stage, et là je dois débuguer du code php.
La page index.php propose un formulaire de connexion tout bete avec method="POST" et action="index.php"
Ensuite un test est effectué d'apres une fonction présente dans une page.
Pour l'instant tout va bien.
Mais là le probleme arrive : si le test est ok, une redirection est effectuée. Mais dans la page de destination, la variable de session n'est plus reconnue.
Pour plus de clarté, voici les bouts de code :
dans index.php
Le problème se situe au niveau de : header("Location:search.php");
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 session_start(); include_once("include/database.php"); if (array_key_exists('login', $_POST)) { if (dbAuthUser($_POST['user'], $_POST['pwd'])) { header("Location:search.php"); } else header("Location:index.php"); } else { print "<html>"; print "<header>"; print "<title> Heudiabib </title>"; print "</header>"; print "<body>"; print "<center>"; print "<FORM NAME=\"usersAdd\" ACTION=\"index.php\" METHOD=\"POST\">"; print ' <fieldset>'; print ' <legend>Login</legend>'; print ' <input type="hidden" name="id" value="welcome" />'; print ' <input type="hidden" name="do" value="login" />'; print ' <label>'; print ' <span>Username</span>'; print ' <input type="text" name="user" value="" class="edit" />'; print ' </label><br />'; print ' <label>'; print ' <span>Password</span>'; print ' <input type="password" name="pwd" class="edit" />'; print ' </label><br />'; print ' <input type="submit" name="login" value="Login" class="button" />'; print ' </fieldset>'; print "</form>"; print "</center>"; print "</body>"; print "</html>"; } ?>
search.php
A partir de cette page $_SESSION['user'] n'est plus connu.
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 <?php session_start(); if (!isset($_SESSION['user'])) header("Location:session_expired.php"); include_once ("include/database.php"); include_once ("include/bibtex.php"); ob_start(); // begin to fill the buffer if (!isset($_SESSION['pg'])||$_SESSION['pg']=="") $_SESSION['pg']="pg=1"; ?> ...
Donc perso, je pense que ca vient du fait qu'il n'y a aucune methode de transmission mise dans index.php
Donc ma quesrtion : comment faire pour récupérer la variable $_SESSION['user'] (qui est initialisée dans database.php et connue dans index.php) sans utiliser GET ? Parce header("Location:search.php?user="$_SESSION['user']); fonctionne mais je ne veux pas passer la variable de session en paramètre.
Est-ce assez clair ?
Pouvez-vous m'aider ?
Merci bien !!!
Partager