Page 1 sur 1
header()... mais que se passe t'il ??
Posté : 24 janv. 2008, 23:20
par supercanard
Bonsoir,
Avant que vous me disiez pas de HTML avant un header()... et bien je n'envoi pas de HTML avant de faire header('Location : config.php');
Et pourtant ça ne marche pas. Pas d'erreur mais rien ne se passe...
Dans ce fichier contenant donc header('Location : config.php'); on à que du php, des includes d'autres fichiers ne contenant que du PHP. J'ai bien enlever tous les espaces blancs. Le seul doute que j'ai ets peut être au niveau des commentaires.
Les commentaires PHP nuisent t-ils come les espaces à cette fonction ?
Merci d'avance, je ne comprend pas
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
Posté : 24 janv. 2008, 23:59
par zeus
Avec autant de détail, ça risque d'être dur de te répondre
Que fait la page dans laquelle tu fais ton include et que contient la page incluse ?
Posté : 25 janv. 2008, 00:05
par supercanard
Avec autant de détail, ça risque d'être dur de te répondre
Que fait la page dans laquelle tu fais ton include et que contient la page incluse ?
Alors la page qui contient le header contient des requêtes SQL.
Les pages incluses contiennent les paramettres de connection SQL, un fichier vide qui acceuillera les fonctions, des variables et un fichier de langage, avec la aussi des variables...
Exemple :
// Actions sur la table config
case 'modif_config' :
$nom_site = addslashes($_POST['nom_site']);
$descrip_site = addslashes($_POST['descrip_site']);
$mots_cles = addslashes($_POST['mots_cles']);
$domaine = addslashes($_POST['domaine']);
$req = mysql_query("UPDATE bloom_config set nom_site= '$nom_site', descrip_site= '$descrip_site', mots_cles= '$mots_cles', domaine= '$domaine', id_accueil='{$_POST['id_accueil']}' WHERE id= 1");
$code_message = 1;
header('Location : config.php');
exit();
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
Posté : 25 janv. 2008, 00:20
par Calimero
Si tu n'as pas d'erreur PHP il n'y a que deux possibilités :
- soit le header n'est pas éxécuté du tout (on peut tester ça facilement à grands coups de
echo près du
header()
-soit le header a une syntaxe incorrecte (Le header étant destiné, et interprété, par le navigateur, il est très important d'en respecter la syntaxe exacte).
header('Location : config.php');
Tu ne vois vraiment rien qui cloche ? (Si tu sèches, tu trouveras des indices dans la page de manuel de la fonction header()

)
Posté : 25 janv. 2008, 00:41
par h0_noMan
Désole pour la solution.
La réponse est dans le message precedent.
Posté : 25 janv. 2008, 00:54
par supercanard
hum la seule chose que je vois qui cloche c'ets peut être qu'il faut une adresse http// obligatoirement et pas juste une page.php ?
Arff non c'était l'espace après les :

Posté : 25 janv. 2008, 01:05
par h0_noMan
Regardes bien l'exemple :
<?php
/* Redirige vers une page différente du dossier courant */
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>
Posté : 25 janv. 2008, 01:13
par supercanard
Regardes bien l'exemple :
<?php
/* Redirige vers une page différente du dossier courant */
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>
C'est byzar parce que si l'url complète est obligatoire ceci ne devrait pas marcher ? :
header('Location: pages.php?code_message='.$code_message);
Et ça marche.
Encore un paramètre activé par les hebergeur mutu pour éviter les erreurs de débutants ?
Posté : 25 janv. 2008, 08:33
par zeus
Regarde dans le code de ton 1er message s'il n'y a pas une différence de syntaxe ... particulièrement un espace en trop

Posté : 25 janv. 2008, 11:11
par supercanard
Oui j'ai vu mais je veut dire, normalement ne faut-til pas envoyer obligatoirement http// pour que ça marche ?
Posté : 25 janv. 2008, 11:16
par Calimero
Oui j'ai vu mais je veut dire, normalement ne faut-til pas envoyer obligatoirement http// pour que ça marche ?
Oui. Normalement, la norme HTTP t'impose de mettre une URL complète. Mais en pratique tous les navigateurs répandus acceptent sans problème une URL relative, donc tu peux faire pareil (sauf si tu es un fanatique absolu des normes

)
Posté : 25 janv. 2008, 11:32
par supercanard
Merci
