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   -
Bonjour,
j'ai un soucis avec la syntaxe de mon header en php pour un serveur local.
j'utilise easyphp.
merci

40 réponses

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
C'était donc bien du au problème de header, et effectivement un oubli de sélection de la base de données.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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.
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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']))
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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
}
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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. ;)
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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');
}
?>
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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 :
$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.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
pourkoi me mets tu $_POST['utilisateur'] ?
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
C'est rien oubli ça je n'avais pas vu que $utilisateur correspondais au nombre de ligne retourné par ta requête.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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');
}
?>
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
toujours le même problème que les cases soit vides où remplies, ça passe. quelque soit ce que je mets, ça passe.
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Reposte voir ton code en l'état actuel s'il te plait.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
<?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à.
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Un test se fait sur la double égalité.
Change ton :
if ($utilisateur = 1)
en :
if ($utilisateur == 1)

0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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.
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
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');
}
?>
0