Page 1 sur 1

problèmes de formulaires

Posté : 14 juin 2005, 17:17
par nada71
bonjour tout le monde.
j 'ai 2 formulaires "connexion.html" et"formulaire.html".
sur le premier, j'ai deux champs "login" et "mot de passe".je fait un lien vers le page "formulaire.html" lorsque l'on click sur le lien mot de passe oublié?.
sur le formulaire "formulaire.html", j'ai un champ "indiquer votre adresse mail".
ce que je veux c'est que lorsque je saisie une adresse ne correspondant pas au login du formulaire "connexion.html", un message d'erreur soit envoyé disant "l'adresse ne correspond pas au login saisi".
dans le cas contraire ça marchera.
j'espere que j étais assez clair.
merci d'avance. :wink:

voici mon code du mail.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$id=$_POST['id'];
$mail=$_POST['mail'];

// connexion à la base de donnée
$connexion = mysql_connect("localhost","root") or die("erreur");
mysql_select_db("Client",$connexion);

$valid = "^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,4}$";
if (empty($_POST['mail'])==true)
{
   echo "<i><b>vous devez indiquer l'adresse mail correspondant à votre compte</i></b>";
}
else
{
    if (($mail) && !(eregi($valid, $mail)))
	{
	print "<i><b>L'adresse électronique saisie est invalide.</i></b>\n"; 
	}
	else
	   { 
         // on crée la requête SQL, pour ensuite l'envoyer   
         $requete = "SELECT numclient FROM client WHERE mail ='".$mail."' AND id = '".$id."' ";   
         $result = mysql_query($requete,$connexion) or die('Erreur SQL !'.$requete.''.mysql_error());
		 
         if (mysql_fetch_row($result))
	      { 
		  //envoi du mail;
          } 
		else 
	         {   
             echo "<i><b>Erreur!: cette adresse ne correspond pas à votre Login ou n'existe pas dans la base</i></b>"; 
             }  
	  }
}
?> 
</body>
</html>


Posté : 14 juin 2005, 17:20
par Cyrano
Jusque là, ça va, j'ai bien compris ce que tu veux faire: en revanche, tu ne dis pas ce qui ne fonctionne pas ou si tu as une erreur ou quelque chose de ce genre .... :?:

Posté : 14 juin 2005, 17:22
par zeus
il faut que tu teste si ta requete à retourné un resultat ou non.

si elle a retourné un résultat, c'ets ok, sinon c'ets faux :
if (mysql_result($result,0 ,0) >= 1)
{
  //envoi du mail;
}

Posté : 14 juin 2005, 17:25
par nada71
merci
en fait le problème c'est que même quand l'adresse saisie correspond bien au champ "login" du formulaire "connexion.html" j'ai ce message
Notice: Undefined index: id in c:\program files\easyphp1-8\www\php\mail.php on line 10
vous devez indiquer l'adresse mail correspondant à votre compte

Posté : 14 juin 2005, 17:27
par zeus
C'est que tu n'as pas de <input name='id'> dans ton 1er formulaire

Le message d'erreur signifie qu'il ne trouve pas la variable "id" dans les POST

Posté : 14 juin 2005, 17:29
par Cyrano
Il semble que tu as un champ id qui n'est pas transmis dans $_POST['id'] : est-ce que ce champ existe bien dans ton formulaire ?

Posté : 14 juin 2005, 17:31
par nada71
C'est que tu n'as pas de <input name='id'> dans ton 1er formulaire

Le message d'erreur signifie qu'il ne trouve pas la variable "id" dans les POST
oui exactement.j ai pas de <input"....>. sinon j aurai un autre champ dans "formulaire.html".en fait je veux avoir seulement un seul champ "indiquer votre mail".

Posté : 14 juin 2005, 17:33
par Cyrano
Pas très logique: tu veux faire une requête avec une clause sur deux champs en envoyant de valeur que pour un seul champ: ce ne sera jamais bon... :-k

Posté : 14 juin 2005, 17:39
par zeus
Si tu veux passer l'identifiant sans voir un champ, tu peux faire

Code : Tout sélectionner

<input type="hidden" nameu="id" value="<?= $id ?>">
Mais il faut que tu connaisses la valeur de id dans le 1er formulaire

Et comme le dit Cyrano, si tu ne fait pas ça, tu ne pourras pas utiliser $_POST["id"]

Posté : 15 juin 2005, 16:17
par nada71
merci pour vos reponses.
mais le probleme si que je n'arrive pas a connaitre la valeur de l id du 1er formulaire. en fait meme si l'adresse saisie dans le 2e formulaire correspond au login saisi dans le 1er formulaire j'ai ce message
Erreur!: cette adresse ne correspond pas à votre Login ou n'existe pas dans la base