Redirection
Résoluje travaille en html/php et lors dune identification ou le nom e mot de passe est recuperé,je souhaite faire une redirection
identification.php > login.php (qui enregistre dans session mais qui ne doit pas s afficher)>>redirection> accueil.php
jai utilisé pour linstant
<meta http-equiv="Refresh" content="20";URL="accueil.html">
mais jai une erreur :
Notice: A session had already been started - ignoring session_start() in /var/www/Portail_Logistique/cartouchesite/login.php on line 1 Notice: Undefined index: nom in /var/www/Portail_Logistique/cartouchesite/login.php on line 6 Notice: Undefined index: motdepasse in /var/www/Portail_Logistique/cartouchesite/login.php on line 7
login.php :
<? session_start()?> <html><head></head><body> <? //recupere les nom & mot de passe saisis $_SESSION['nom']=$_POST['nom']; $_SESSION['motdepasse']=$_POST['motdepasse']; //redirection vers accueil.php ?> <meta http-equiv="Refresh" content="20";URL="accueil.html"> </body></html>
merci d avance !
Configuration: Linux Firefox 2.0.0.11
28 réponses
Le fil porte sur une identification en PHP où les nom et mot de passe sont stockés en session et une redirection vers accueil.php est envisagée via meta refresh. Des notices apparaissent, notamment 'session_start()' déjà démarré et 'Undefined index' pour noms, liées à l'ordre d'affichage et à l'absence de vérifications des POST. La solution préconisée dans les réponses évoque soit l'utilisation correcte de header 'Location' après vérification des POST, soit l'évitement de sorties HTML avant les en-têtes. En cas d'erreur persistante, il est recommandé de placer session_start() en tête du fichier, de vérifier isset($_POST['nom']) et de remplacer la redirection par header('Location: ...') puis exit.
-
merci mais c'est bon en fait (desolé de te repondre que maintenant mais jetais plus au stage et jai pas eu le temps de me reconnecter )
le gars qui s occupe de moi m'a avoué après que jai subis toutes ces recherches et cet immense desespoir face a ce probleme que ce n'etait pas un probleme !
que ce message etait normal car ils sont en "auto_start" !
une chute bien decevante pour cette superbe journée de recherche ! ! !
merci beaucoup en tout cas de m avoir aidé :)
et jen aurais d autres comme ça jusqu au 28 juin donc je vous attend ;) et jespere que vous reviendrez a mon secours :p
merci encore bizooox -
il y avait des souci d'accolades je viens de rectifier et tester ce code marche nikel te suffit de rediriger ver la page que tu veut dans le header location après tu peu fignoler tan que tu veut ^^bon courage:
<?php
session_start();
if (!isset($_SESSION['message'])) {
$_SESSION['message']="veuillez saisir identifiant";
} else {
//on test les champs si rempli ou pas
if(!isset($_POST ['log'])){
$_SESSION['login']="";
}else {
header("Location:acceuil.php");
exit;
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Admin : login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1 align="center"><br>ACCES RESTREINT</h1>
<div align="center"> <?php echo $_SESSION['message'];?><br> <br>
<form action="" method="post">
<table width="200" border="0" align="center">
<tr>
<td>Login:</td>
<td><input type="text" name="log"></td>
</tr>
<tr>
<td>pass:</td>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td> </td>
<td><div align="right"><input type="submit" name="Submit" value="valider"></div></td>
</tr>
</table>
</form>
<br />
<?php echo $_SESSION['login']; ?>
<br />
<br />
</div>
<div align="center">
copyright aiacciu
</div>
</div>
<br />
</body>
</html> -
je te propose ce petit bout de code complet il y a tous ce qu'il te faut et sa devrait marcher :
<?php session_start(); if (!isset($_SESSION['message'])) { $_SESSION['message']="veuillez saisir identifiant"; } else { //on test les champs si rempli ou pas if(!isset($_POST ['log'])){ $_SESSION['login']=""; }else { header("Location:test.php"); exit; } } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Admin : login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <h1 align="center"><br>ACCES RESTREINT</h1> <div align="center"> <?php echo $_SESSION['message'];?><br> <br> <form action="" method="post"> <table width="200" border="0" align="center"> <tr> <td>Login:</td> <td><input type="text" name="log"></td> </tr> <tr> <td>pass:</td> <td><input type="password" name="pass"></td> </tr> <tr> <td> </td> <td><div align="right"><input type="submit" name="Submit" value="valider"></div></td> </tr> </table> </form> <br /> <?php echo $_SESSION['login']; ?> <br /> <br /> </div> <div align="center"> copyright aicciu </div> </div> <br /> </body> </html> -
je fais comment alors?
-
ben je men sers pas alors puisque je le quitte pas
-
je lai mis après $_SESSION blabla
-
hue non on se deconnecte pas :) c'est qu un exo :p
-
je lavais mis a la fin
-
je lai enlevé ça marche pas :p
-
il est au dessus mon code :p
et les erreurs jpeux pas les recopier pas le temps ça change de page, c'ets les mm quand haut -
pareil : erreur sur session start et sur session unset
-
brbr
jai deux fautes :
session_start
et session_destroy -
Essaye avec session_destroy à la fin.
Mais tout à la fin.
Comme ça quand tu quitteras, tu détruira la session.
Tu en recréera une quand tu reviendras, et magique, plus de message d'erreur. ;) -
oui peut etre pas grave mais il me la faut pas ^ ^
-
c'est fait : ça me marque :
Notice: A session had already been started - ignoring session_start() in /var/www/Portail_Logistique/cartouchesite/login.php on line 14
Warning: Cannot modify header information - headers already sent by (output started at /var/www/Portail_Logistique/cartouchesite/login.php:14) in /var/www/Portail_Logistique/cartouchesite/login.php on line 23 -
sur ta page login.php tu vire tout et mais juste ça :
<?php
session_start();
//recupere les nom & mot de passe saisis
$_SESSION['nom']=$_POST['nom'];
$_SESSION['motdepasse']=$_POST['motdepasse'];
//redirection vers accueil.php
header("Location: accueil.html");
exit;
?>
vire tous même les balises head body ... -
oui peut etre pas grave mais il me la faut pas ^ ^
-
pour header c'est bon je fais avec
<META http-equiv="refresh" content="1; URL=http://intranet.sdis81.fr/cartouchesite/accueil.html"> </head><body>
et ça marche :)
sauf message d'erreur entre le changement de page sur session_start -
trois pages après j'ai fait un echo pour voir si ça enregistrait
<?session_start()?> <html> <head> <title>Liste des sorties par reference</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php error_reporting(E_ALL); include "connexion.php"; ?> <? //afficher valeur de SESSION echo $_SESSION['nom']; echo $_SESSION['motdepasse'];?>
et jai bien le nom et mot de passe qui s'affiche
mais avant jai un message d'erreur encore
Notice: A session had already been started - ignoring session_start() in /var/www/Portail_Logistique/cartouchesite/choixref.php on line 2 -
hein?? dejà crée? comment?
- 1
- 2