Rechercher : dans
Par :

PB syntaxe header

Dernière réponse le 15 mai 2008 à 22:45:10 MISS97200, le 5 mar 2008 à 15:22:26 
 Signaler ce message aux modérateurs

Bonjour,
j'ai un soucis avec la syntaxe de mon header en php pour un serveur local.
j'utilise easyphp.
merci

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « PB syntaxe header » dans :
Bad pool caller / Header Voir Symptômes Un écran bleu d'affiche avec le message suivant : Bad Pool Caller Bad Pool Header Résolution Le message d'erreur Bad Pool Caller ou Bad Pool Header signifie que l'appel d'une application a échoué. Il est généralement suivi d'un certain...
[PHP] Headers already sent by..... Voir Lorsque vous utilisez une fonction PHP qui manipule les en-têtes HTTP comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où...
Les balises dans la partie 'head' VoirAvant tout : rappel sur le doctype La partie head Balises meta Mots clés Description Déclaration de la langue du site Catégorie Auteur Restrictions pour les moteurs de recherche Adresse de la page Logiciels utilisés pour la...
Javascript - Coloration syntaxique dans vos pages web VoirSi vous avez un site web contenant des exemples de code (php, javascript, C#, Delphi, Python...), il peut être intéressant d'avoir une coloration syntaxique. C'est parfois pénible à réaliser, mais il existe une librairie Javascript qui permet de...
Parse error: syntax error, unexpected $end VoirLorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur: Parse error: syntax error, unexpected $end in Command line code on line 1 En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une...
La syntaxe des style (CSS) VoirDéfinition d'un style La définition d'un style se fait à l'aide de règles en texte simple permettant de décrire l'aspect des éléments de la page. Une règle CSS est caractérisée par deux principaux éléments : Un sélecteur de balises, permettant de...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...

1

kij_82, le 5 mar 2008 à 15:27:53

Bonjour,

Et donc, quelle est cette syntaxe ? Tu n'as pas un exemple à nous donner (ton code) ?

Sans rien d'autre comme indication je dirais que tu tente d'envoyer des headers alors que ceux-ci ont déjà été envoyés, c'est l'erreur la plus courante.

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

2

MISS97200, le 5 mar 2008 à 15:31:48

Voici mon code :

<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';


if (isset($_POST['valider']) )
{
if (isset($_POST['user']))
{
$uti = $_POST['login'];
$motpass = md5($_POST['pass']);
mysql_select_db($database_dbmarchpub, $dbmarchpub);
$verif_query=sprintf("SELECT * FROM user WHERE user='$uti' AND mdp='$motpass'");
$verif = mysql_query($verif_query, $dbmarchpub) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);


if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
header("Location:menup.php");
exit;
}
else
{
header("Location:index.php?erreur=login");
}
}
?>

voila ce que j'ai essayé de faire

Répondre à MISS97200

3

kij_82, le 5 mar 2008 à 15:53:09

Il s'agit donc bien de cette erreur.

Dans ton code :

if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
header("Location:menup.php");
exit;
}
else
{
header("Location:index.php?erreur=login");
}


Tu ne peux utiliser la commande PHP header qu'en début de script PHP

Je te propose de faire la même chose mais en javascript :
if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
echo "<script language='javascript'>document.location.replace('menu.php');</script>";
exit;
}
else
{
echo "<script language='javascript'>document.location.replace('index.php?erreur=login');</script>";
}


~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

4

Thamior, le 5 mar 2008 à 16:02:39

Tu ne peux utiliser la commande PHP header qu'en début de script PHP

Faux, le header doit se faire avant tout affichage de type echo, print ou print_r ainsi qu'avant toutes balises html.

Il est donc possible d'avoir un header après une vérification des données en PHP :). Thamior.

Répondre à Thamior

5

MISS97200, le 5 mar 2008 à 16:04:47

Donc où est l'erreur dans ce que j'ai écris

Répondre à MISS97200

6

Thamior, le 5 mar 2008 à 16:14:20

Est-ce cette page est appelé dans une autre page ?

Proposition d'une solution :
if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
header("location: menup.php");
exi();
}
else
{
header("location: index.php?erreur=login");
exit();
}
Thamior.

Répondre à Thamior

7

MISS97200, le 5 mar 2008 à 16:17:21

Oui.

Répondre à MISS97200

8

MISS97200, le 5 mar 2008 à 16:31:41

En fait maintenant ma page s'affiche mais rien ne se passe.
il me manquait un ;
help, le désespoir s'emparre de moi.

Répondre à MISS97200

9

kij_82, le 5 mar 2008 à 16:58:10

Rien ne se passe, c'est donc qu'il y a bien une erreur, donc quelque chose se passe :)
Est ce que tu as firefox ? Si oui navigue sur ta page en ouvrant le dégugger (Outil->Console d'erreur)
Si un message d'erreur apparait peux-tu nous le mettre ici ?
(une erreur du genre "headers already sent" peut être)

Qu'est ce qu'il y a au juste dans le fichier que tu inclus (connexion.php)?

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

10

MISS97200, le 5 mar 2008 à 17:06:02

Dans connexion.php, ce sont les paramètres de connexion. et non, il je n'ai pas firefox, je suis en stage.

Répondre à MISS97200

11

MISS97200, le 5 mar 2008 à 17:11:56

Je viens d'installer firefox, et je n'ai aucune erreur, que des avertissements.

Répondre à MISS97200

12

kij_82, le 5 mar 2008 à 17:13:52

Re,

Je persiste à dire que Header doit être utiliser avant tout autre chose (si possible bien sur).
Regarde un exemple ici :
http://fr.php.net/header
Notemment le paragraphe suivant : Example#6 header() doit toujours être appelé en premier

Il ne faut pas qu'il y ai de sortie PHP avant son appel, ne serait-ce qu'une ligne blanche au niveau du code PHP. Du moins c'est comme ça que j'interprète ce qu'il est écrit.

Essai donc de supprimer les lignes blanches dans ton code (pas d'espace ni de ligne vide)

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

13

MISS97200, le 5 mar 2008 à 17:17:06

Il n'y a pas ça dans mon code, que des lignes de commentaires.
je viens de les supprimer et cela ne fonctionne toujours pas.

Répondre à MISS97200

14

kij_82, le 5 mar 2008 à 17:52:09

Es-tu sur que le programme passe bien dans la condition :
(isset($_POST['valider'])
?

Peux tu mettre un echo "blabla"; dedans (juste apres) et un echo "toto"; dans un else si cette condition n'est pas validée.
Peux tu mettre des traces un peu partout (dans chaque condition ou tu programme peux passer) afin de savoir exactement par où passe ton programme et donc comprendre son comportement ?

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

15

MISS97200, le 5 mar 2008 à 17:53:18

Ok, je le fais.

Répondre à MISS97200

16

MISS97200, le 5 mar 2008 à 18:03:42

Je l'ai fais et tu as raison, le seul echo ('je ne passe pas') que j'ai mis, c'est ce que ça m'affiche. c'est le echo de mon if pour (isset($_POST['valider']).

Répondre à MISS97200

17

kij_82, le 5 mar 2008 à 18:12:02

Fais voir le code du formulaire avec lequel tu accède à la page que tu as déjà donné.
L'erreur vient soit du fait que tu as mal nommé ton bouton submit, du coup la valeur "valider" n'est pas référencée dans la variable globale $_POST, soit la méthode utilisée par ton formulaire est GET au lieu de POST (soit autre chose bien sur^^)

Je reviens demain mais peut-être que d'ici tu aura résolu ton problème.
Bonne chance.

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

18

MISS97200, le 6 mar 2008 à 13:11:56

Voici le code, je n'ai toujours pas de solutions :

<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';


if (isset($_POST['valider']) )
{
if (isset($_POST['user']))
{
$uti = mysql_real_escape_string($_POST['user']);//variable du nom d'utilisateur
$motpass = md5($_POST['mdp']); //variable du mot de passe crypté
$verif_query=("SELECT * FROM user WHERE uti='$uti' AND mdp='$motpass'"); // requête sur la table user
$verif = mysql_query($verif_query, $dbmarchpub) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);


if ($utilisateur ==1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;

}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
}
}
}
?>


J'espère que vous pourez m'aider

Répondre à MISS97200

41

djadito, le 15 mai 2008 à 20:16:55

Salut est ce que ta résolu ton problème?
g le meme blèm que le tien voila mon code:
<?phpinclude ("config_connection_var.php");
if(isset($_POST['id']))
$LOGIN=$_POST['id'];
else
$LOGIN="";
if(isset($_POST['pwd']))
$PWD=$_POST['pwd'];
else
$PWD="";
if(empty($LOGIN) OR empty($PWD))
{ // REDIRECTION VERS LA PAGE AUTHENTIFICATION
header("Location: ".$relogin);
}
else
{ $query = "SELECT * FROM internal_index WHERE Name='$LOGIN' AND Password='$PWD'";
$result = mysql_query($query) or die('Erreur SQL');
$affected_rows = mysql_num_rows($result);
if($affected_rows == 0)
{ // REDIRECTION VERS LA PAGE ERREUR
header("Location: ".$pagelogin); }
else { $_SESSION['login'] = $LOGIN;
$req1 = "SELECT User_Profile_ID FROM internal_index WHERE Name='$LOGIN' AND Password='$PWD'";
$res1 = mysql_query($req1) or die('Erreur SQL');
$rows1 = mysql_fetch_array($res1);
$req2 = "SELECT User_Profile FROM user_profile WHERE User_Profile_ID='$rows1[0]'";
$res2 = mysql_query($req2) or die('Erreur SQL');
$rows2 = mysql_fetch_array($res2);
if($rows2[0]==6)
{ header("Location: ".$menu_admin);}
else
{ if($rows2[0]==11)
{header("Location: ".$menu_chargé);}
}
}
}
?>
SVP si ta une solution informe moi,merci

Répondre à djadito

42

 kij_82, le 15 mai 2008 à 22:45:10

Djadito, le problème est résolu, si tu as le même soucis je te prierai de lire la discussion jusqu'au bout.

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

19

kij_82, le 6 mar 2008 à 13:31:30

Et si tu enlève les sauts de ligne dans ton code pour ne pas laisser d'espace ça donne quoi ?

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82