Prob header Location

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Prob header Location

Re: Prob header Location

par @rthur » 04 mars 2010, 12:46

Bonjour,

C'est une erreur très courante :
faq-tutoriels/cannot-add-header-information-t47.html

L'erreur est là:
?>

<?php

Prob header Location

par Tonyloup35 » 04 mars 2010, 12:09

Bonjour à tous,

J'ai un message d'erreur qui apparait lorsque je termine une requête sql, et demande une redirection grâce à
header("Location: index.php");

Le problème n'apparait pas quand je suis en local, que lorsque je met mon site en ligne.

J'ai lu que ça pouvait venir de la présence de contenu généré dans la page avant d''exécuter cette ligne de code, mais la c'est pas le cas, c'est juste une page pour supprimer un élément dans une bdd.
Voici le message d'erreur:

Warning: Cannot modify header information - headers already sent by (output started at /homez.332/creationcph/www/Admin/mod_catalogue/supprimer.php:14) in /homez.332/creationcph/www/Admin/mod_catalogue/supprimer.php on line 34

et le code de ma page:

<?php
// On prolonge la session
session_start();

// On teste si la variable de session existe et contient une valeur
if(empty($_SESSION['login'])) {

// Si inexistante ou nulle, on redirige vers le formulaire de login
header('Location: ../index.php');
exit();
}
?>

<?php
require "../../config.php";
mysql_connect(DB_SERVER,DB_LOGIN,DB_PASS);
mysql_select_db(DB_NAME);
mysql_query('SET NAMES '.DB_ENC);

// On récupère les entrées de l'id
$sql="SELECT * FROM catalogue WHERE id={$_GET['id']}";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_fetch_assoc($req);

// On défini led fichiers images et on les supprime
if(!empty($data["nom"]) AND $data["nom"] != "default"){
$filename = 'images/min/'.$data["nom"].'.jpg';
$filenamebis = 'images/'.$data["nom"].'.jpg';
unlink($filename);
unlink($filenamebis);
}
$sql = "DELETE FROM catalogue WHERE id={$_GET['id']}";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
header("Location: index.php");
?>

J'ai aussi essayé une redirection en javascript:

echo '<script language="javascript" type="text/javascript">window.location = "index.php";</script>';

Mais toujours le même problème.

Y a t-il un autre moyen de faire une autre redirection sans erreur ou une partie de mon code à corriger???

Merci beaucoup de votre aide et pour vos futures réponses.