Problème : Vérifier qu'une variable soit égale à un champ

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème : Vérifier qu'une variable soit égale à un champ

par zeus » 04 juil. 2005, 14:44

Tu penses à mettre la balise [RESOLU]

par Espadon » 04 juil. 2005, 14:32

Arf, cela ne fonctionne pas...
(Merci quand même ^^)
On dirait qu'il n'aime pas mes if... j'ai du faire une bourde à ce niveau là.
Edit : J'essaie ce que tu viens de me proposer Zeus, je te dis après, merci ;)
Edit 2 : C'est bon ça fonctionne ! Merci bien, ça fait depuis la matinée que je bloque (quel n00b lol)

par zeus » 04 juil. 2005, 14:30

C'est normal vu que $traitement est toujours différent de NULL :
- si la requete réussi, il contient les résultats
- sinon, contient un message d'erreur

En plus, pour comparer des chaines de caractères, on utilise LIKE

mais pour ce que tu veux faire, je te conseille ça :
<? $pseudo_inscription = $_POST['pseudo1'];
   $passe = $_POST['motdepasse'];
    //On compte le nombre d'enregistrements qui ont le même pseudo
    $traitement = mysql_query("SELECT COUNT(*) FROM testinscrit WHERE pseudo LIKE '".$pseudo_inscription."'") or die(mysql_error());
    //On récupère le résultat
   $result = mysql_result($traitement, 0, 0);
    //Si le pseudo n'est pas déjà enregistré dans la base     
    if ( $result == 0 )
            { 
...

Re: Problème : Vérifier qu'une variable soit égale à un cham

par guilt92 » 04 juil. 2005, 14:26

<? $pseudo_inscription = $_POST['pseudo1'];
   $passe = $_POST['motdepasse'];
	$traitement = mysql_query("SELECT pseudo FROM testinscrit WHERE pseudo='$pseudo_inscription'");
		if (!$result=mysql_fetch_array($traitement))
			{
?>
<?
mysql_query("INSERT INTO testinscrit(id, pseudo, pass) VALUES('', '" . $pseudo_inscription . "' , '" . $passe . "')");
?>
<html>
<head>
<title>~ Bienvenue sur le site de Glandouille Club ! ~</title>
<style type="text/css">
<!--
.Style1 {
	font-size: 10px;
	font-family: Arial, Helvetica, sans-serif;
}
-->
</style>
</head>
<body>
<p class="Style1">Enregistrement avec succ&egrave;s, <? echo($pseudo_inscription); ?>.<br>
  <a href="index.php">Retour &agrave; l'index.</a></p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <br>
 <p class="Style1">&nbsp;</p>
</body>
<?
			}
			else
			{
			echo('Pseudo déjà utilisé.<br><a href="index.php?page=inscription">Retour à l\'inscription</a>');
			}
?>

<?
mysql_close(); ?>
Essaye comme ca je suis pas convaincu mais pour comparer des string entre eux il fo des '' autour

Problème : Vérifier qu'une variable soit égale à un champ

par Espadon » 04 juil. 2005, 14:23

Voilà, j'ai crée un script permettant au visiteurs de s'inscrire.
Le pseudo et le pass sont enregistrés dans la base de données.
J'ai rédigé une condition afin que le même pseudo ne soit pas enregistré.
J'ai donc le code voici :
<? $pseudo_inscription = $_POST['pseudo1'];
   $passe = $_POST['motdepasse'];
	$traitement = mysql_query("SELECT pseudo FROM testinscrit WHERE pseudo='" . $pseudo_inscription . "'");
		if ( $traitement == NULL )
			{
?>
<?
mysql_query("INSERT INTO testinscrit(id, pseudo, pass) VALUES('', '" . $pseudo_inscription . "' , '" . $passe . "')");
?>
<html>
<head>
<title>~ Bienvenue sur le site de Glandouille Club ! ~</title>
<style type="text/css">
<!--
.Style1 {
	font-size: 10px;
	font-family: Arial, Helvetica, sans-serif;
}
-->
</style>
</head>
<body>
<p class="Style1">Enregistrement avec succ&egrave;s, <? echo($pseudo_inscription); ?>.<br>
  <a href="index.php">Retour &agrave; l'index.</a></p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <p class="Style1">&nbsp;</p>
 <br>
 <p class="Style1">&nbsp;</p>
</body>
<?
			}
			else
			{
			echo('Pseudo déjà utilisé.<br><a href="index.php?page=inscription">Retour à l\'inscription</a>');
			}
?>

<?
mysql_close(); ?>
Malheureusement un problème survient :
Quelque soit le pseudo qu'on choisit, cela affiche "Pseudo déjà utilisé".
Auriez vous une solution s'il vous plaît ?
Merci d'avance.