Problème de header

Yule -  
 Yule -
Bonjour

je vais essayer d'expliquer mon problème !

je dispose d'un script (annuaire de lien) et il se réparti en trois fichiers

1. liens.php (ici ce trouve les modules de recherche, ajout, affichage des liens etc..)

2. conf_liens.php (ici ce trouve la connection au serveur ainsi qu'un index de l'annuaire
qu'on retrouve sur toutes les pages)

3. admin.php (ici ce trouve les modules d'aministration, activation & suppression ainsi
que l'ajout d'une rubrique)

Une fois le script en ligne , tout fonctionne, l'ajout, l'activation et la suppression
d'un site , le comptage des visites des liens etc..., en fait il fonctionne à merveille.

include("conf_liens.php"); se trouve dans ces deux fichier lien.php et admin.php

Mon problème est quand je rajoute du html dans le fichier conf_liens.php afin d'y avoir
l'entête de mon site comprenant le titre, les liens divers et une bannière publicitaire.
Au premier abord rien ne cloche, tout fonctionne sauf à l'affichage d'une recherche
ou à l'intérieur d'une rubrique, voilà ce qui s'affiche;

- Le non du site (en cliquant dessus il lance l'url)
- la description
- le nombre de visite

jusque la c'est normal, mais quand je clique sur le nom du site pour y accéder
voilà le message d'erreur qu'y apparait et tout en restant sur mon site

Warning: Cannot add header information - headers already sent by
(output started at /home/sites/site210/web/liens/conf_liens.php:8)
in /home/sites/site210/web/liens/liens.php on line 209

la ligne 209 est celle-ci => header("Location: ".$url2[adresse]."");

Le module ou se trouve la ligne 209 est celle la

// Module pour le comptage des clicks
elseif($module == "click")
{
// vérification du champs
if($url != "")
{
// requete pour lister l'enregistrement en question
$insert = requete("SELECT * FROM $table_mysql WHERE num='$url'");
// prise de ces valeurs dans un tableau
$url2 = mysql_fetch_array($insert);
// mise a jour de la table (ajout de 1 au comptage précédent)
$result = requete("UPDATE $table_mysql SET click=click+1 WHERE num='$url'");
// transfert vers l'url demandée
header("Location: ".$url2[adresse]."");
}
// absence d'url pour renvoyer !
else echo "Pas d'url pour vous renvoyer !";

}
Merci d'avance à la personne qui pourra m'aider
sachant que sans html dans le fichier conf_liens.php tout fonctionne , grrrrrr.......
Yule

2 réponses

Jean-François Pillou Messages postés 18962 Date d'inscription   Statut Webmaster Dernière intervention   63 308
 
La réponse est simple :

Un en-tête HTTP doit être envoyé avant toute autre information.

En clair : tu ne dois pas envoyer de HTML au navigateur avant d'avoir utilisé la fonction header()...
0
Yule
 
Merci de votre réponse rapide !

Si j'ai bien compris je dois placer mon code html apres le script ?
0