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
C'était donc bien du au problème de header, et effectivement un oubli de sélection de la base de données.
il y avait ça aussi, mais cela ne passe toujours pas.
ma page s'affiche mais apparement j'ai un problème au niveau du if (empty($_POST['user'])) car j'ai mis des echo pour voir où était mon erreur.
donc il va directement dans le else. donc il ne fait pas les traitements qui sont après.
et le pire c'est que je ne vois pas mon erreur.
ma page s'affiche mais apparement j'ai un problème au niveau du if (empty($_POST['user'])) car j'ai mis des echo pour voir où était mon erreur.
donc il va directement dans le else. donc il ne fait pas les traitements qui sont après.
et le pire c'est que je ne vois pas mon erreur.
Evidemment, tu fais un test : si c'est vide, alors j'exécute mon script, c'est l'inverse qu'il faut faire ^^
Si c'est pas vide, j'exécute le script :
if ( ! empty($_POST['user']))
Si c'est pas vide, j'exécute le script :
if ( ! empty($_POST['user']))
ha oui, c'est vrai!!! merci. maintenant ça bloque pour le if ($utilisateur ==1), même si je fais supérieur à 0 ça bloque.
Je vais afficher le contenu de ma variable pour voir.
Je vais afficher le contenu de ma variable pour voir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui bonne initiative.
Pense donc bien à mettre des traces un peu partout lorsque tu rencontre une erreur de manière à comprendre d'où vient l'erreur et pourquoi. Tu ne pourra en ressortir que meilleur.
ps: regarde bien ou tu rempli ta variable en question, tu t'apercevra qu'elle n'est remplie nulle part.
Pense donc bien à mettre des traces un peu partout lorsque tu rencontre une erreur de manière à comprendre d'où vient l'erreur et pourquoi. Tu ne pourra en ressortir que meilleur.
ps: regarde bien ou tu rempli ta variable en question, tu t'apercevra qu'elle n'est remplie nulle part.
c bon, je pense que j'ai un soucis avec ma requête.
car c'est bien cela. ;)
Donc je vais me pencher sur ma requête. si tu trouves l'erreur ou d'autres erreur, fais moi signe. merci
car c'est bien cela. ;)
Donc je vais me pencher sur ma requête. si tu trouves l'erreur ou d'autres erreur, fais moi signe. merci
Je reposte pour être sur que tu vois mon message.
Tu ne rempli pas ta variable, c'est donc normal que ton test échoue.
Il faut que tu récupère cette variable au début de ton script :
$utillisateur = "";
if ( isset($_POST["utilisateur"]) && !empty($_POST["utilisateur"]) )
$utilisateur = $_POST["utilisateur"];
Et ton test plus loin :
if ( $utilisateur > 0 ){
// Ton code
}
Tu ne rempli pas ta variable, c'est donc normal que ton test échoue.
Il faut que tu récupère cette variable au début de ton script :
$utillisateur = "";
if ( isset($_POST["utilisateur"]) && !empty($_POST["utilisateur"]) )
$utilisateur = $_POST["utilisateur"];
Et ton test plus loin :
if ( $utilisateur > 0 ){
// Ton code
}
non, ce n'était pas ça, enfin je pense. car $utilisateur ne récupère pas une chaine de caractères mais un nombre. Donc dans ma requête, je dois compter le nombre d'enregistrements qui répondent à ma requête.
Si je ne me trompe pas. ;)
Si je ne me trompe pas. ;)
Effectivement je suis allé un peu vite sur la conclusion, mais ma remarque vaut aussi pour les variables suivantes alors :
$uti='';
$motpass='';
Elle ne sont pas remplies, d'où le fait que ta requête SQL ne retourne aucun résultat.
$uti='';
$motpass='';
Elle ne sont pas remplies, d'où le fait que ta requête SQL ne retourne aucun résultat.
tu vas rire, mais maintenant, sans rentrer de non d'utilisateur et de mot de passe, je passe à l'autre page.
je te montre ce que j'ai fait.
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) )
{
if (!empty($_POST['user']))
{ // execution apres envoi du formulaire
$uti = mysql_real_escape_string($_POST['user']);// mise en variable du nom d'utilisateur
$motpass = md5($_POST['mdp']); // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$verif_query=("SELECT count(*) 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);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
if ($utilisateur = 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
//echo ('ne passe pas ligne 34');
}
}
else
{
echo ('ne passe pas');
}
?>
je te montre ce que j'ai fait.
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) )
{
if (!empty($_POST['user']))
{ // execution apres envoi du formulaire
$uti = mysql_real_escape_string($_POST['user']);// mise en variable du nom d'utilisateur
$motpass = md5($_POST['mdp']); // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$verif_query=("SELECT count(*) 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);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
if ($utilisateur = 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
//echo ('ne passe pas ligne 34');
}
}
else
{
echo ('ne passe pas');
}
?>
Oui c'est logique tu as changé ta requête SQL en sélectionnant un COUNT(*). Du coup, même s'il ne trouve aucun résutltat il te retournera bien un résultat (une seule ligne) équivalant à 0.
Remet ta requête précédente elle était correcte.
Et par contre corrige ceci :
En :
(suppression de la première ligne.
Pourquoi ? Parce que dans la première ligne tu récupère le contenu du résultat retourner s'il y en a un, ce qui a pour conséquence de vider ton ResultSet. Du coup dans ta deuxième ligne, lorsque tu veux récupérer la taille du résultat retourner, il n'y a plus rien dedans et ton nombre vaut 0.
Enfin... c'est ce que je pense que ça fait, regarde pour voir si c'est bien ça.
Remet ta requête précédente elle était correcte.
Et par contre corrige ceci :
$row_verif = mysql_fetch_assoc($verif); $utilisateur = mysql_num_rows($verif);
En :
$utilisateur = mysql_num_rows($verif);
(suppression de la première ligne.
Pourquoi ? Parce que dans la première ligne tu récupère le contenu du résultat retourner s'il y en a un, ce qui a pour conséquence de vider ton ResultSet. Du coup dans ta deuxième ligne, lorsque tu veux récupérer la taille du résultat retourner, il n'y a plus rien dedans et ton nombre vaut 0.
Enfin... c'est ce que je pense que ça fait, regarde pour voir si c'est bien ça.
C'est rien oubli ça je n'avais pas vu que $utilisateur correspondais au nombre de ligne retourné par ta requête.
ha ok.c'était au lieu de mettre $resultat. ;)
j'ai complètement tout changé dans mon code et je ne m'y retrouve plus.
je te le mets
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) )
{
if ( isset($_POST["user"]) && !empty($_POST["user"]) )
{ // execution apres envoi du formulaire
$uti = mysql_real_escape_string($_POST['user']);// mise en variable du nom d'utilisateur
if ( isset($_POST["mdp"]) && !empty($_POST["mdp"]) )
{
$motpass = md5($_POST['mdp']); // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$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);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
}
if ($utilisateur = 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
echo ('ne passe pas ligne 39');
}
}
else
{
echo ('ne passe pas ligne 45');
}
?>
j'ai complètement tout changé dans mon code et je ne m'y retrouve plus.
je te le mets
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) )
{
if ( isset($_POST["user"]) && !empty($_POST["user"]) )
{ // execution apres envoi du formulaire
$uti = mysql_real_escape_string($_POST['user']);// mise en variable du nom d'utilisateur
if ( isset($_POST["mdp"]) && !empty($_POST["mdp"]) )
{
$motpass = md5($_POST['mdp']); // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$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);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
}
if ($utilisateur = 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
echo ('ne passe pas ligne 39');
}
}
else
{
echo ('ne passe pas ligne 45');
}
?>
toujours le même problème que les cases soit vides où remplies, ça passe. quelque soit ce que je mets, ça passe.
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) && !empty($_POST['valider']) )
{
if ( isset($_POST["user"]) && !empty($_POST["user"]) )
{ // execution apres envoi du formulaire
$uti = mysql_real_escape_string($_POST['user']);// mise en variable du nom d'utilisateur
if ( isset($_POST["mdp"]) && !empty($_POST["mdp"]) )
{
$motpass = md5($_POST['mdp']); // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$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());
$utilisateur = mysql_num_rows($verif);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
}
if ($utilisateur = 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
echo ('ne passe pas ligne 39');
}
}
else
{
echo ('ne passe pas ligne 45');
}
?>
j'en suis à là.
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) && !empty($_POST['valider']) )
{
if ( isset($_POST["user"]) && !empty($_POST["user"]) )
{ // execution apres envoi du formulaire
$uti = mysql_real_escape_string($_POST['user']);// mise en variable du nom d'utilisateur
if ( isset($_POST["mdp"]) && !empty($_POST["mdp"]) )
{
$motpass = md5($_POST['mdp']); // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$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());
$utilisateur = mysql_num_rows($verif);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
}
if ($utilisateur = 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
echo ('ne passe pas ligne 39');
}
}
else
{
echo ('ne passe pas ligne 45');
}
?>
j'en suis à là.
Un test se fait sur la double égalité.
Change ton :
if ($utilisateur = 1)
en :
if ($utilisateur == 1)
Change ton :
if ($utilisateur = 1)
en :
if ($utilisateur == 1)
oui, je l'ai corrigé. et c'est celà qui bloquait. merci pour ton aide. Je suis nulle mais bon peut être que je peux t'aider sur quelque chose. ;)
merci de ton aide précieuse.
merci de ton aide précieuse.
voici mon code final :
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['user']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) && !empty($_POST['valider']) )
{
if ( isset($_POST["user"]) && !empty($_POST["user"]) )
{ // execution apres envoi du formulaire
$uti = $_POST['user'];// mise en variable du nom d'utilisateur
if ( isset($_POST["mdp"]) && !empty($_POST["mdp"]) )
{
$motpass = $_POST['mdp']; // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$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());
$utilisateur = mysql_num_rows($verif);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
}
else
{
echo ('valider vide');
}
if ($utilisateur == 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
echo ('ne passe pas ligne 39');
}
}
else
{
echo ('ne passe pas ligne 45');
}
?>
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['user']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) && !empty($_POST['valider']) )
{
if ( isset($_POST["user"]) && !empty($_POST["user"]) )
{ // execution apres envoi du formulaire
$uti = $_POST['user'];// mise en variable du nom d'utilisateur
if ( isset($_POST["mdp"]) && !empty($_POST["mdp"]) )
{
$motpass = $_POST['mdp']; // mise en variable du mot de passe crypté
mysql_select_db('marche_public');
$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());
$utilisateur = mysql_num_rows($verif);
echo $utilisateur;
}
else
{
echo ('ne passe pas ligne 23');
}
}
else
{
echo ('valider vide');
}
if ($utilisateur == 1)
{// On test s'il y a un utilisateur correspondant
$_SESSION['connexion'] = "ok";
header("location:menup.php");// redirection si OK
exit;
//echo ('c bon');
}
else
{
header("location:index.php?erreur=login");// redirection si utilisateur non reconnu
exit;
echo ('ne passe pas ligne 39');
}
}
else
{
echo ('ne passe pas ligne 45');
}
?>