Redirection d'une page en php

Fermé
sunev - 12 janv. 2017 à 19:57
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 12 janv. 2017 à 20:40
Bonjour a tous et bonne année, bonne santé et tout le reste.

Sur une page protégée par un mot de passe qui redirige vers cette page si ce mot de passe est correct,
dont le code est:

<?php
if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "login"){
// Si le mot de passe est bon
header('Location: pages_securisees.php'); //redirige vers la pages_securisees.php
}
else { // Sinon, on affiche un message d'erreur
echo '<div;><span style="font-size:14pt;"> Mot de Passe incorrect</span></div>';
}
?>

Ce code fonctionne très bien en local, la page: pages_securisees.php s'ouvre.
Par contre sur le serveur de mon site hébergé chez free il s'affiche ce message d'erreur:

Warning: Cannot modify header information - headers already sent by (output started at /mnt/169/sda/0/c/mon_sites/mot_de_login.php:8) in /mnt/169/sda/0/c/mon_sites/mot_de_login.php on line 33

Même avec l'adresse complète http//:monsite/pages_securisees.php c'est pareil.
Si quelqu'un a une idée d’où vient l'erreur, merci de m'en indiquer la raison'
ou éventuellement une autre astuce pour que ça fonctionne.

A voir également:

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
12 janv. 2017 à 20:03
Tu as des caractères avant le premier <
Des retours à la ligne ou le marqueur UTF-8 (cas très courants)
0
SKYMWebDev Messages postés 162 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 14 février 2018 174
Modifié par SKYMWebDev le 12/01/2017 à 20:08
Ca arrive (normalement) quand tu mets du code html avant avoir mis le header.

Essaye ca:
(par contre il faut mettre
ob_start();
au tout début de la page et
ob_end_flush();
tout a la fin...)

<?php
//retient les informations
ob_start();

    if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] ==  "login"){  
                                                     // Si le mot de passe est bon
    header('Location: pages_securisees.php');  //redirige vers la pages_securisees.php
}
    else {                                     // Sinon, on affiche un message d'erreur
    echo '<div;><span style="font-size:14pt;"> Mot de Passe incorrect</span></div>';
}

//relache les infos
ob_end_flush();
?>


Sinon tu peux protéger ta page par un fichier .htaccess, voir https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/918580-protegez-un-dossier-avec-un-htaccess
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
12 janv. 2017 à 20:40
Qu'as tu dans les lignes 1 à 33 de mot_de_login.php?
0