PB syntaxe header
Résolu
MISS97200
Messages postés
186
Date d'inscription
Statut
Membre
Dernière intervention
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un soucis avec la syntaxe de mon header en php pour un serveur local.
j'utilise easyphp.
merci
j'ai un soucis avec la syntaxe de mon header en php pour un serveur local.
j'utilise easyphp.
merci
A voir également:
- PB syntaxe header
- Trouver erreur de syntaxe fichier txt pix ✓ - Forum Programmation
- 400 bad request request header or cookie too large - Forum Windows
- La syntaxe du nom de fichier de répertoire ou de volume est incorrecte ✓ - Forum Windows 10
- Trouver erreur de syntaxe fichier txt - Forum Windows
- PHP Rechercher mot dans txt et supprimer ✓ - Forum PHP
40 réponses
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.
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.
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
<?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
Il s'agit donc bien de cette erreur.
Dans ton code :
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 :
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>"; }
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 :).
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 :).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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();
}
Proposition d'une solution :
if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
header("location: menup.php");
exi();
}
else
{
header("location: index.php?erreur=login");
exit();
}
en fait maintenant ma page s'affiche mais rien ne se passe.
il me manquait un ;
help, le désespoir s'emparre de moi.
il me manquait un ;
help, le désespoir s'emparre de moi.
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)?
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)?
dans connexion.php, ce sont les paramètres de connexion. et non, il je n'ai pas firefox, je suis en stage.
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)
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)
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.
je viens de les supprimer et cela ne fonctionne toujours pas.
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 ?
(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 ?
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']).
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.
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.
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
<?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
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
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