Page 1 sur 1

fonction if avec while

Posté : 04 févr. 2012, 10:42
par Riko1975
Bonjour,

J'aimerais ajouter une condition if dans le code suivant :

$sql = "SELECT * FROM bd WHERE id LIKE '$id'";
$req = mysql_query($sql) or die('Impossible de se connecter au serveur
'.$sql.'
'.mysql_error());
mysql_close();
while($data = mysql_fetch_array($req))
{
?>

<form name="forminsc" method="POST" action="confirmation.php">
Nom : <input type="text" name="nom" value="<?php echo $data['nom']; ?>"/>
Prénom : <input type="text" name="prenom" value="<?php echo $data['prenom']; ?>"/>
...
</form>
<?php
}
?>

Il s'agit d'un formulaire pré-rempli après recherche dans une base de données auquel on accède après avoir saisi un identifiant mais je voudrais ajouter une fonction de vérification par mot de passe avant affichage telle que

"if" l'identifiant et le mot de passe correspondent à ceux enregistrés dans la base alors on affiche le formulaire pré-rempli
sinon on affiche un message d'erreur

Merci d'avance de votre aide

Erick

Re: fonction if avec while

Posté : 04 févr. 2012, 10:51
par xTG
C'est un accès par identification semblable à un espace membre que tu désires ?

Re: fonction if avec while

Posté : 04 févr. 2012, 11:27
par Riko1975
Merci de ta réponse xTG,
En gros c'est le même principe oui mais je voudrais que ce soit le plus simple possible.
Est-il possible d'ajouter une fonction if avant le while du genre :

$log = $_POST['log']
$pwd= $_POST['pwd']
$nom = mysql_query('SELECT nom FROM bd');
$pass = mysql_query('SELECT pass FROM bd');

if (($log==$nom) && ($pwd==$pass))
{
while...
}

else {
echo '...'
}

Re: fonction if avec while

Posté : 04 févr. 2012, 11:31
par xTG
Les fonctions de requêtage bdd ne s'utilisent pas ainsi.
Inspires toi de ceci : http://phpdebutant.org/article47.php
C'est juste que dans ton cas tu ne démarres pas une session et une redirection mais tu affiches ton formulaire.

Re: fonction if avec while

Posté : 04 févr. 2012, 11:54
par Riko1975
Ça m'a l'air très compliqué et j'avoue que je ne maitrise pas assez pour comprendre les mécanismes du script.
En fait je n'ai pas besoin d'ouvrir une session je voudrais simplement ajouter une fonction qui permette de vérifier si deux champs saisis dans un formulaire correspondent à ceux enregistrés dans la base précédemment. Si c'est le cas on affiche le nouveau formulaire pré-rempli sinon non...

Je prends un autre exemple qui correspond à ce que je cherche :
imaginons qu'on demande à une personne de saisir dans un formulaire son nom et son prénom, si la personne existe dans la base on affiche ses infos sinon on affiche un message disant qu'il n'y a aucune entrée pour ce nom et ce prénom.

Re: fonction if avec while

Posté : 04 févr. 2012, 13:25
par xTG
Tu ne trouveras pas plus simple que ce que je t'ai montré...
Relis le bien et tu constateras que c'est semblable à ce que tu avais rédigé mais en fonctionnel.
Et comme dit, tu peux enlever le système de session.

Re: fonction if avec while

Posté : 04 févr. 2012, 13:48
par sirakawa
imaginons qu'on demande à une personne de saisir dans un formulaire son nom et son prénom, si la personne existe dans la base on affiche ses infos sinon on affiche un message disant qu'il n'y a aucune entrée pour ce nom et ce prénom.
Qu'est-ce qui t'empêche d'utiliser deux scripts :
1) le formulaire
2) le testeur de nom et prénom qui affiche différemment avec un if comme tu veux faire.
Ça peut aussi se faire en utilisant une variable $passage, ce qui doit revenir au même que la session...
entree.php
<?PHP
$passage = isset($_POST['passage']) ? $_POST['passage'] : 1;
if ($passage == 1)
{
   print "<form method = 'post' action = 'entree.php'>
   <input type = 'text' name = 'nom' value ='' />
   <input type ='hidden' name= 'passage' value ='2' />
   //etc
}
else
{
   if ($passage == 2)
   {
  // tu consultes ta BDD
etc
?>
   }
}

Re: fonction if avec while

Posté : 04 févr. 2012, 14:28
par Riko1975
Merci pour vos réponses.
Finalement j'ai réussi en modifiant le while en if/esle et la requête $sql en SELECT... FROM... WHERE... AND pour intégrer la deuxième condition.
Ça semble fonctionner.
Merci pour votre aide et le temps que vous avez consacré à ma demande en tout cas.
Cordialement

Erick