Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2008, 15h26   #1
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Par défaut Formulaire > Plusieurs questions

Bonjour.

J'ai 3 petites questions à poser.

1°: Comment agrandir en largeur un menu déroulant? J'ai essayé rows, cols, et size mais rien ne marche.

2°: Quand mon formulaire est validé, 2 mails sont envoyés. 1 pour moi et un pour celui qui a rempli le formulaire. Ils arrivent bien mais avec une adresse e.mail différente de celle que j'ai saisi.
Pour moi j'ai mis:
Code :
$destinataire = "monmail@hotmail.fr";
Et pour celui qui a rempli le formulaire:
Code :
$destinataire_2 = "$email";
Mon site est chez Free. Je reçois bien l'e mail sur monmail@hotmail.fr mais avec inscrit comme expéditeur monsite@free.fr!!!
Je n'ai inséré cette adresse nul part pourtant. Est-ce normal?

3°: Dans mon formulaire j'ai une 2ème requête qui me permet d'ajouté l'email de celui qui à rempli le formulaire dans ma base de donnée.
Code :
$req_email = mysql_query("INSERT INTO $db_table_email (email) VALUES ('$email')") or die ("erreur de connexion");
Ma table reçoit bien les e mails mais je voulais savoir comment éviter d'insérer le même e mail d'une personne qui rempli plusieurs fois de suite le formulaire.

Merci
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 15h50   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Bonjour

3) D'abord vérifier si l'email est dans la table par un select et faire l'insertion uniquement si il n'y est pas.

2) Ton site est hébergé chez free, je suppose. Free te fournit peut-être automatiquement une adresse mail qui correspond à ce site.

et 1) ben euh...
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 15h58   #3
Membre du Club
 
Webmaster
Inscription : mai 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : mai 2007
Messages : 52
Points : 46
Points : 46
1:

Code :
<select name="xx" style="width:500px;" /></select>
pour le 2, il nous faudrait le code correspondant à ton envoie d'emails
Ema*h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 15h59   #4
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Citation:
Envoyé par Celira Voir le message
Bonjour

3) D'abord vérifier si l'email est dans la table par un select et faire l'insertion uniquement si il n'y est pas.

2) Ton site est hébergé chez free, je suppose. Free te fournit peut-être automatiquement une adresse mail qui correspond à ce site.

et 1) ben euh...
Merci Celira mais çà ne m'aide pas beaucoup .
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h04   #5
Membre du Club
 
Webmaster
Inscription : mai 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : mai 2007
Messages : 52
Points : 46
Points : 46
Pour le 3 :

Code :
1
2
3
4
5
6
7
 
$sql = mysql_query("SELECT email from xx where email = '$email'");
 
if(mysql_num_rows($sql) == 0)
{
 // ta requete d'insertion
}
Ema*h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h05   #6
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Citation:
Envoyé par Ema*h Voir le message
1:

Code :
<select name="xx" style="width:500px;" /></select>
pour le 2, il nous faudrait le code correspondant à ton envoie d'emails
J'ai essayé mais ça ne marche pas.
Pas grave, j'ai fait autre chose.

Merci quand même
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h09   #7
Membre du Club
 
Webmaster
Inscription : mai 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : mai 2007
Messages : 52
Points : 46
Points : 46
Tu as mal essayé alors
Ema*h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h57   #8
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
merci Ema*h pour la 3° ça marche.

Et voici les codes qui tu me demandes pour la 2°
Pour moi
Code :
  if( mail($destinataire_livre_dor,$titremail_livre_dor,$message_livre_dor) )
Code :
1
2
3
4
5
6
7
8
9
$destinataire_livre_dor = "monmail@hotmail.fr";
$titremail_livre_dor = "Ajout d'un message dans le Livre d'Or";
$message_livre_dor =
"Un nouveau Message vient d'&ecirc;tre post&eacute; dans le Livre d'Or \n\n\n".
"Pseudo / Nom:" .$pseudo."\n\n".
"E.mail:" .$email."\n\n".
"Pays de résidence:" .$pays."\n\n".
"Note:" .$note."\n\n".
"Message:" .$message;
Pour celui qui a rempli le formulaire
Code :
			if ( mail($email,$titremail_livre_dor_2,$message_livre_dor_2) ) {}  else {}
Code :
1
2
3
4
5
6
7
8
9
$destinataire_livre_dor_2 = "$email";
$titremail_livre_dor_2 = "Ajout d'un message dans le Livre d'Or";
$message_livre_dor_2 =
"Un nouveau Message vient d'&ecirc;tre post&eacute; dans le Livre d'Or \n\n\n".
"Pseudo / Nom:" .$pseudo."\n\n".
"E.mail:" .$email."\n\n".
"Pays de résidence:" .$pays."\n\n".
"Note:" .$note."\n\n".
"Message:" .$message;
Une autre petite question (et je m'excuse d'avance mais je n'arrive pas à trouver ce que je veux dans le forum)
Je voudrais tout simplement que la date du jour de l'envoi du formulaire apparaisse dans ma base de donnée. Je n'arrive pas à trouver les codes...

Merci
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 02h46   #9
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Code :
1
2
3
 
$date_mail = date('Y-m-d H:i:s');
$req_email = mysql_query("INSERT INTO $db_table_email (email, date_mail) VALUES ('$email', '$date_mail')") or die ("erreur de connexion"
Pour l'adresse de l'expéditeur du mail, si elle n'est pas renseignée, il faudrait vérifier sendmail_from dans php.ini (windows seulement). Mais il vaut mieux la préciser, pour éviter les surprises. D'ailleurs chez free ils sont plutôt cool, normalement ça devrait être refusé ...
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 11h47   #10
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Merci zvince. ça marche nickel.

Pour l'adresse email j'ai mis mon code plus haut.
J'ai oublié quelque chose?
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 13h36   #11
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Il faudrait mettre un expéditeur. Le champ "from" ne fait pas partie des paramètres de la fonction mail(), il faut le rajouter au début du texte du message sous forme de header.
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 15h19   #12
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
J'ai fait ce que tu m'a dit zvince pour l'email.

voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
$destinataire_livre_dor = "mail@hotmail.fr";
$titremail_livre_dor = "Ajout d'un message dans le Livre d'Or";
$header_livre_dor = "from: mail@hotmail.fr";
$message_livre_dor =
"Un nouveau Message vient d'&ecirc;tre post&eacute; dans le Livre d'Or \n\n\n".
"Pseudo / Nom:" .$pseudo."\n\n".
"E.mail:" .$email."\n\n".
"Pays de résidence:" .$pays."\n\n".
"Note:" .$note."\n\n".
"Message:" .$message;
Verdict: je reçois toujours le mail avec toujours comme expéditeur monmail@free.fr mais en plus dans le message:

Un nouveau Message vient d'&ecirc;tre post&eacute; dans le Livre d'Or
Date: Thu, 21 Feb 2008 15:14:27
To: monmail@hotmail.fr

et ce qui m'étonne c'est que ça se place sous la première phrase...

Et l'adresse de réception n'apparaît plus dans l'entête:

De : monmail@free.fr
Envoyé : jeu. 21/02/08 14:22
À :
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 22h25   #13
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
tu as utilisé cette syntaxe ?
Code :
mail($destinataire_livre_dor,$titremail_livre_dor,$message_livre_dor,$header_livre_dor)
me suis trompé dans mon message précédent, c'est pas au début du texte qu'il faut l'insérer, mais dans le paramètre additional_headers de la fonction mail ...
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2008, 20h56   #14
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Hello

En faisant une recherche sur la fonction mail() et ses headers tu trouvera beaucoup de réponses, notamment sur ce forum...

http://fr2.php.net/manual/fr/function.mail.php

L'adresse d'expéditeur est celle du site de free, c'est normal tu envoi ton mail à partir de ce site (qui est configuré pour agir ainsi).

Attention si tu change le From, cela peut conduire à traiter ton mail comme du spam : les programmes anti-spam voient que le from est différent du lieu d'expédition (free) et donc ils prennent le mail pour du spam... C'est ce qui m'est arrivé sur free justement.
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h23.


 
 
 
 
Partenaires

Hébergement Web