Redirection en php
Résolu
Ehlana
Messages postés
193
Date d'inscription
Statut
Membre
Dernière intervention
-
vek59 Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
vek59 Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans un script php, j'ai un formulaire d'identification basique par mdp.
Dans mon index1.php, je vérifie que l'internaute est bien passé par le formulaire, qu'il n'a pas simplement tapé l'adresse de la page index1.php dans la barre d'adresse. C'est le cas si la variable de session ident est créée et a pour valeur 'ok' :
Le souci c'est que j'ai une erreur, quand j'ai entré mon mot de passe 'kakaolait' :
La ligne 130 correspondant à header('Location: index1.php'); après l'enregistrement de ma variable ident.
D'après ce que je lis un peu partout, le header ne doit rien avoir avant mais j'ai besoin de ma variable de session ident.
Je ne vois pas comment faire...
Quelqu'un pour m'aider ?
D'avance merci.
Dans un script php, j'ai un formulaire d'identification basique par mdp.
$_SESSION['ident'] = ''; if (isset($_POST['submit'])) { // bouton submit pressé, je traite le formulaire $pass = (isset($_POST['pass'])) ? $_POST['pass'] : ''; if ($pass == "kakaolait") { $_SESSION['ident'] = "ok"; // enregistrement de la variable de session header('Location: index1.php'); } else { // une erreur de saisie ...? echo '<div font-weighErreur de connexion.</div>'; } }; // fin if (isset($_POST['submit'])) if (!isset($_POST['submit'])) { // Bouton submit non pressé j'affiche le formulaire echo 'Veuillez entrer le mot de passe pour vous identifier : <form id="conn" method="post" action=""> <input type="password" id="pass" name="pass"> <input type="submit" id="submit" name="submit" value="Valider"> </form>'; }; // fin if (!isset($_POST['submit'])))
Dans mon index1.php, je vérifie que l'internaute est bien passé par le formulaire, qu'il n'a pas simplement tapé l'adresse de la page index1.php dans la barre d'adresse. C'est le cas si la variable de session ident est créée et a pour valeur 'ok' :
SESSION_START(); if (isset($_SESSION['ident']) AND $_SESSION['ident'] == "ok") // Si le membre s'est identifié { // On affiche le site } else // Sinon, on retourne au formulaire { unset($_SESSION['ident']); // on détruit la variable de session d'identification header('Location: index.php'); exit(); }
Le souci c'est que j'ai une erreur, quand j'ai entré mon mot de passe 'kakaolait' :
Warning: Cannot modify header information - headers already sent by (output started at /mnt/169/sdb/a/5/monsite/index.php:9) in /mnt/169/sdb/a/5/monsite/index.php on line 130
La ligne 130 correspondant à header('Location: index1.php'); après l'enregistrement de ma variable ident.
D'après ce que je lis un peu partout, le header ne doit rien avoir avant mais j'ai besoin de ma variable de session ident.
Je ne vois pas comment faire...
Quelqu'un pour m'aider ?
D'avance merci.
A voir également:
- Redirection en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Avertissement de redirection - Forum Virus
- L'url suivante, censée aboutir à un article, donne lieu à une redirection indiquant que la page n'a pas été trouvée. retrouvez la page recherchée. reportez le titre de l’article et son auteur. - Forum Microsoft Edge / Internet Explorer
- Alert php ✓ - Forum PHP
4 réponses
Merci fr-darkrod mais... pas mieux... :(
Je pense que j'ai bien compris mon message d'erreur. C'est p'têt toi qui n'a pas compris ma question. Ou p'têt moi qui ait mal formulé...
Comme je l'ai écrit, j'ai bien vu un peu partout que header() doit être utilisé avant tout affichage chtemeuleu. Le truc c'est que, dans le cas présent, mon formulaire (et donc ma boucle if ; et donc ma redirection) s'affiche dans un <div> </div>.
Donc ma question (et c'est celle que je posais initialement) est : comment faire ma redirection puisque je ne peux pas utiliser header() dans ce cas précis ?
Comme je l'ai écrit, j'ai bien vu un peu partout que header() doit être utilisé avant tout affichage chtemeuleu. Le truc c'est que, dans le cas présent, mon formulaire (et donc ma boucle if ; et donc ma redirection) s'affiche dans un <div> </div>.
Donc ma question (et c'est celle que je posais initialement) est : comment faire ma redirection puisque je ne peux pas utiliser header() dans ce cas précis ?