transmission variables avec header
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
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
|
<?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>";
}
?> |
Le problème se situe au niveau de : header("Location:search.php");
search.php
Code:
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";
?>
... |
A partir de cette page $_SESSION['user'] n'est plus connu.
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 !!!