problèmes de formulaires

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èmes de formulaires

par nada71 » 15 juin 2005, 16:17

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

par zeus » 14 juin 2005, 17:39

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"]

par Cyrano » 14 juin 2005, 17:33

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

par nada71 » 14 juin 2005, 17:31

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".

par Cyrano » 14 juin 2005, 17:29

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 ?

par zeus » 14 juin 2005, 17:27

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

par nada71 » 14 juin 2005, 17:25

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

par zeus » 14 juin 2005, 17:22

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;
}

par Cyrano » 14 juin 2005, 17:20

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 .... :?:

problèmes de formulaires

par nada71 » 14 juin 2005, 17:17

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>