Php probleme isset

Résolu/Fermé
Utilisateur anonyme - Modifié par lionhell454 le 7/01/2011 à 22:08
 Utilisateur anonyme - 7 mars 2012 à 21:16
Bonjour,
Je suis débutant en php et J'ai un petit probleme:
je traite un formulaire de cette façcon:

$_POST['user_pseudo'];
$_POST['user_pass'];
$pseudo=$_POST['user_pseudo'];
$pass=$_POST['user_pass'];


// et la probleme je penser devoir coder de cette facon pour eviter les champ vide:
// if (isset($pseudo) AND isset($pass))


Par contre si je fait un truc pas tres logique comme ceci:
if (isset($pseudo) AND ($pass))
// j'inverse c'est a dire si je met rien ca par sur le else et c'est ok, si je met un psedo pas de mot de pass aussi, mais si je met que le mot de passe la ca va pas et ca passe dans le base de données sans pseudo

{
echo "<p>$pseudo</p>";
echo "<p>$pass</p>";
mysql_connect ('localhost','root','');
mysql_select_db('first_site');
$sql = "INSERT INTO 'first_site'.'user' ('user_id', 'user_pseudo', 'user_pass') VALUES (NULL, '$pseudo', '$pass');";
$req=mysql_query($sql) or die ('Erreur SQL!!</br>'.$sql.'</br>'.mysql_error());
}
else
{
echo 'vous n avez pas saisi le pseudo ou le mot de pass';
}

Je n'est pas encore tester avec empty mais si quelqu'un pourrait m'aider car je penser vraiment qu'il fallait faire ceci
if (isset($pseudo) AND isset($pass))

or ca pass pas merci d'avance d'aide éventuelle......





A voir également:

6 réponses

Je sais que c'est un peu tard mais il suffit de mettre OR ou || car si on met AND ou &&, c'est si pseudo ET mot de passe sont vide alors afficher erreur. Mais si on mais l'un ou l'autre alors ça passe. D'où l'utilité de OR.
1
Utilisateur anonyme
7 mars 2012 à 21:16
Il n'est jamais trop tard merci...
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
7 janv. 2011 à 22:18
AND ? Que vient faire AND ici ? AND ne fait pas partie de PHP.

Par contre, && oui...

0
Utilisateur anonyme
7 janv. 2011 à 22:19
je vais tester de suite merci pour t as réponce si rapide.... merci
0
Je ne comprend pas car j'ai exactementt le meme probleme:

if (isset($pseudo) && isset($pass))
tout les champ vide sont pas identifier ca pass pas....



if (isset($pseudo) && ($pass))
meme probleme si je remplit le mot de passe et pas le nom faille, il ajoute a la bd sans pseudo meme probleme.

merci pour t'as réponce mais j'ai le meme probleme....

de plus je me suis reférer à ca:
&& ou AND ET logique Vérifie que toutes les conditions sont réalisées ((condition1)&&(condition2))

https://www.commentcamarche.net/contents/802-php-les-operateurs

mais bon peut etre avant en tout cas meme probleme.

merci quant meme....
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
7 janv. 2011 à 22:35
Tiens, le AND semble accepté. J'aurais appris un truc ce soir.

Par contre :

$_POST['user_pseudo'];
$_POST['user_pass'];
$pseudo=$_POST['user_pseudo'];
$pass=$_POST['user_pass'];

Je ne comprends pas trop l'intérêt des deux premières lignes ?
0
Utilisateur anonyme
7 janv. 2011 à 22:38
tu a raison c'est pas trés utile, mais comme j avais du mal avec ma requete sql j y suis arrivé plus facilement en convertissant en varible.

je suis pas tres bon en php/mysql

j'avais tenté et j avais eu aussi le soucis mais je vais tout de meme retenter le coup avec $_POST['user_pseudo']; direct...
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
7 janv. 2011 à 22:40
Ce que je veux dire, c'est qu'à mon sens, les deux premières lignes sont totalement inutiles, elles n'ont aucun effet (en espérant qu'elle n'aient pas un comportement cassant toute ta logique derrière...).
0
Utilisateur anonyme
7 janv. 2011 à 22:48
ahlalala je crack lol!
pareil:

methode logique:
if (isset($_POST['user_pseudo']) && isset($_POST['user_pass']))
passe pas du tout


if (isset($_POST['user_pseudo']) && ($_POST['user_pass']))
pas logique la ca marche mais meme probleme si je remplit que le mot de passe et laisse 'user_pseudo' vide beh ca me le met dans ma bd et je comprend pas...

une idée svp?
0
Utilisateur anonyme
7 janv. 2011 à 22:57
Du temp je vais tout de meme essayer de refaire mon code sans:
$_POST['user_pseudo'];
$_POST['user_pass'];
$pseudo=$_POST['user_pseudo'];
$pass=$_POST['user_pass'];

du coup je sais pas trop pour ma requete sql mais je vais tenter tu as peut etre raison.....
je tiens au jus.. merci HostOfSeraphim....
0

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

Posez votre question
Utilisateur anonyme
7 janv. 2011 à 23:20
si je recupere $_POST['user_pseudo'] sans passer par une variable type $pseudo je bloque la ou j ai mis en gras:


$_POST['user_pseudo'];
$_POST['user_pass'];
if (isset($_POST['user_pseudo']) && isset($_POST['user_pass']))
{
echo $_POST['user_pseudo'];
echo $_POST['user_pass'];
mysql_connect ('localhost','root','');
mysql_select_db('first_site');
$sql = "INSERT INTO 'first_site'.'user' ('user_id', 'user_pseudo', 'user_pass') VALUES (NULL, '$_POST['user_pseudo']', '$_POST['user_pass']');";
$req=mysql_query($sql) or die ('Erreur SQL!!</br>'.$sql.'</br>'.mysql_error());
}
else
{
echo 'vous n avez pas saisi le pseudo ou le mot de pass';
}

?>


je ne sait pas comment récupérer :
$_POST['user_pseudo'];
$_POST['user_pass'];

dans ma requete sql toute mes tentative echoue...
quelqu'un pourait me dire comment recupérer $_post dans la requete sql...
merci d'avance...
0
j'ai reussit a trouver une solution donc je la post si ca peut aider, apparament y avait une ambiguité sur isset et empty


?php
$_POST['user_pseudo'];
$_POST['user_pass'];
$pseudo=$_POST['user_pseudo'];
$pass=$_POST['user_pass'];

if (!empty($_POST['user_pseudo']) && ($_POST['user_pass']))
{
echo "<p>$pseudo</p>";
echo "<p>$pass</p>";
mysql_connect ('localhost','root','');
mysql_select_db('first_site');
$sql = "INSERT INTO 'first_site'.'user' ('user_id', 'user_pseudo', 'user_pass') VALUES (NULL, '$pseudo', '$pass');";
$req=mysql_query($sql) or die ('Erreur SQL!!</br>'.$sql.'</br>'.mysql_error());

}
else
{
echo 'vous n avez pas saisi le pseudo ou le mot de pass';
}

?>

<p><a href="../index.php">retour</a> gestion des bases</p>


sinon plus logique et marche aussi:
if (!empty($_POST['user_pseudo']) && !empty($_POST['user_pass']))

merci quant meme!
0