Un probleme avec !empty($_POST...

Résolu
ALIMIRO Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -  
 Profil bloqué -
Bonjour,



voila les amis j'ai un petit pblm et j'espere ke je trouve la solution ds kelkan...

voila un code k'il similaire un p a mon code:
<?php
// On démarre la session
session_start();
$loginOK = false; // cf Astuce

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

extract($_POST); // je vous renvoie à la doc de cette fonction

// On va chercher le mot de passe afférent à ce login
$sql = "SELECT pseudo, age, sexe, ville, mdp FROM user WHERE login = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);

// On vérifie que son mot de passe est correct
if ($password == $data['mdp']) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['age'] = $data['age'];
$_SESSION['sexe'] = $data['sexe'];
$_SESSION['ville'] = $data['ville'];
}
else {
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>

------------------------------------------------------------------------
le probleme si je retourner a cette page une erreur est declanche par ce ke le test


if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
il prendre ke $_POST['login'] et $_POST['password'] sont vide comment le faire ...

Merci pour l'aide...
A voir également:

5 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

<Mode modération>
Merci de ne plus écrire en langage SMS. CCM n'est pas un téléphone mobile et nous les utilisateurs on aime avoir des message lisible pas de kk et ke, etc.
Sur le site il y a aussi des non-francophones et ils ne comprendront rien de ton message.
D'ailleurs les français ne comprennent pas non plus.
</Mode modération>
3
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
J'aurai plutôt mis:
if( isset($_POST) && (!empty($_POST['login']) && !empty($_POST['password'])) )
{
1
Profil bloqué
 
J'ai du mal à comprendre ta formulation, mais essaie de mettre plutôt

if ( isset($_POST['login']) && isset($_POST['password']) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Logiquement, même le code que tu avais mis devrait fonctionner.
Peux tu nous mettre ton formulaire?
0
ALIMIRO Messages postés 104 Date d'inscription   Statut Membre Dernière intervention  
 
pour simplifier les choses ...

ds une page j'ai ecris ce code: if (isset($_POST)&&(empty($_POST['login'])==false)&& (empty($_POST['motp'])==false))

login et motp sont des noms des champs de text d'une page ki appele index et ce test il ecrit ds une page ki appele index1 le probleme comment faire pour eviter l'erreur ki resultant de ce test si j'aller a une page index2 et apres je fait un retour avec <a href....>



un msg est declanche "les champs sont vides" ki j'ecris ds un else de if (isset($_POST)&&(empty($_POST['login'])==false)&& (empty($_POST['motp'])==false))
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Très honnêtement, je ne comprends pas du tout quel est ton problème.
Tu expliques assez mal ce que tu veux et ce que tu veux.
Si tu fais pas un minimum d'effort et tu ne nous fournis pas le code correspondant, je pourrai rien pour toi.
Pour t'apporter une solution, il faudrait d'abord comprendre le problème.
0
ALIMIRO Messages postés 104 Date d'inscription   Statut Membre Dernière intervention  
 
mmmmmmmmmmmmmmmmmmmmmm!!!!!!!!!!!!!!!!!!!!!!!!! voila mon code
<?php

session_start();
$id=mysql_connect ("localhost","root","");
mysql_select_db ("loc",$id)or die("imposible de connecter au serveur");

if (isset($_POST)&&(empty($_POST['login'])==false)&& (empty($_POST['motp'])==false))
{

$login=$_POST['login'];
$motp=$_POST['motp'];

$recherche="SELECT *
FROM util
WHERE 'login' = 'admin'
AND 'motdepasse' = '$motp' ";
$req=mysql_query($recherche,$id);

if (mysql_num_rows($req)>0)
{

$_SESSION['pseudo']=$login;
$_SESSION['PAS']=$motp;

}
else
{
print '<body onLoad="alert(\'ERREUR, mot de passe ou login errone ...\')">';

echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}

}

else
{
print '<body onLoad="alert(\'ERREUR, tu oublier des champs vide ...\')">';

echo '<meta http-equiv="refresh" content="0;URL=index.php">';


}


?>



cette page est nome index1.php et ds cette page il existe des liens c je clik sur un lien et apres je fait un retour sur cette page(index1) une erreur "\'ERREUR, mot de passe ou login errone ...\'"

Que dois-je faire pour eviter ce msg c-a-d pour garder les valeurs de motp et login
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
J'attendais le formulaire qui va avec aussi...

Dans ta requête, tu imposes visiblement un utilisateur précis "admin".

$recherche="SELECT *
FROM util
WHERE 'login' = 'admin'
AND 'motdepasse' = '$motp' ";

Tu n'utilises pas le champ $_POST['login'] de ton formulaire.
C'est peut-être de là que viens le problème...

Il semblerai que dans le cas actuelle des choses, mysql_num_rows($req) te renvoi 0. Vérifie donc ta requête.
Les champs sont bien login et motdepasse ?

Je te conseil de virer momentanement les
print '<body onLoad="alert(\'ERREUR, tu oublier des champs vide ...\')">';

echo '<meta http-equiv="refresh" content="0;URL=index.php">'; 

de tes deux conditions le temps de travailler sérieusement ton script.
En fait, ça t'empêche de voir les éventuelles message d'erreur renvoyé par PHP que tu pourrai avoir.
0
ALIMIRO Messages postés 104 Date d'inscription   Statut Membre Dernière intervention  
 
non non ne me comprenait pas très bien ...

mon ami le probleme n'est pas comme tu dis...si je clic sur le boutton valider de la page index
<form name="form2" method="post" action="index1.php">

la page ouverte sans erreur le pblm si quand je vais vers une autre page et apres je vais un retour a la page index1...
0

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

Posez votre question
Profil bloqué
 
Dit, j'ai toujours rien compris à ton problème, mais à tout hasard, tu n'aurais pas oublié la connection à ta bdd ?

0