Warning: Cannot modify header information

Résolu
Bonjour,

Je veux faire un header dans une page mais j'ai un message d'erreur php,n voici mon code:

<?php
include('includes/config.php');
$ip_visiteur = $_SERVER["REMOTE_ADDR"];
$reponses = $DB->query('SELECT * FROM blacklist');
foreach($reponses as $reponse){
if($ip_visiteur == $reponse->ip_address){
$blacklist = 1;
if($blacklist == 1){
header('location:error_blacklist.php');
}
}else{
echo "Vous n'êtes pas dans la blacklist !";
}
}
?>

J'ai cherché, mais je 'nai pas trouvé de réponses à mon problème précis pourtant, je sais que cette erreur php est bien connue

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonsoir,
    Esayes ça :

    http://darklg.me/2008/10/php-erreur-
    cannot-modify-header-information/
    1. Modérateur
      Ton souci est du au echo que tu fais dans ta boucle je pense. .

      deux méthodes de résolution. ..
      soit tu sorts le echo de la boucle... soit..encore mieux tu supprimes ta boucle et tu utlises simplement un WHERE dans ta requête sql....
      1. Mais oui ! un WHERE ! j'y avais pas pensé ! Merci !
    2. Bonjour,

      Est-ce bel et bien le code complet de la page en question que tu nous présentes? Et quel est le contenu du fichier includes/config.php ?
      1. C'est la page complète que vous voyez là.
        Voici le contenu de la page config.php :

        <?php
        try{
        $DB = new PDO('mysql:host=xxxxxxxxx;dbname=xxxxxxx', 'xxxxxxx', 'xxxxxxx');
        }catch(PDOException $e){
        die('Impossible de se connecter à la base de donnée');
        }
        $DB->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
        $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        ?>