Un probleme avec !empty($_POST...

Résolu/Fermé
ALIMIRO Messages postés 104 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 23 juin 2011 - 31 mai 2011 à 21:05
 Profil bloqué - 2 juin 2011 à 13:32
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
2 juin 2011 à 09:28
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
31 mai 2011 à 22:30
J'aurai plutôt mis:
if( isset($_POST) && (!empty($_POST['login']) && !empty($_POST['password'])) )
{
1
Profil bloqué
31 mai 2011 à 22:36
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
31 mai 2011 à 22:47
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 lundi 18 avril 2011 Statut Membre Dernière intervention 23 juin 2011
31 mai 2011 à 23:22
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2011 à 00:14
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 lundi 18 avril 2011 Statut Membre Dernière intervention 23 juin 2011
1 juin 2011 à 11:05
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
Modifié par arthezius le 1/06/2011 à 12:40
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 lundi 18 avril 2011 Statut Membre Dernière intervention 23 juin 2011
1 juin 2011 à 13:00
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é
1 juin 2011 à 01:14
Dit, j'ai toujours rien compris à ton problème, mais à tout hasard, tu n'aurais pas oublié la connection à ta bdd ?

0