choix d'adresse email dans un formulaire..

Eléphant du PHP | 250 Messages

19 déc. 2006, 15:35

Bonjour à toutes et tous,
Ah re-voilà le newbie allez vous dire...et vous aurez raison. D'autant que, je le sens, je vais poser une "bête question" de newbi. Tant pis, je me lance:
Voilà le problème. Sur un formulaire de contact, je propose aux visiteurs de contacter soit mes clients (Les Libraires), soit moi (le webmachin); j'utilise donc 2 input radio; j'ai donc une variable adresse_destinataire pour le 1er...et j'ai appelé $adresse_destinataire2 le second (déjà là, j'ai comme l'impression d'avoir tout faux...le nom de variable peut être?)
Voici (ce sera plus clair que mes explications :oops: ) le code du formulaire:

Code : Tout sélectionner

<form method=POST action=formcont.php > <input type=hidden name=subject value=formmail> <table> <tr><td>Choisissez votre destinataire:</td> <td>Les Libraires<input type="radio" name="lib" value="lib" /> - Le webmaster<input type="radio" name="web" value="web" /></td> <tr><td>Votre Nom:</td> <td><input type=text name=name size=30></td></tr> <tr><td>Votre Email:</td> <td><input type=text name=email size=30></td></tr> <tr><td>Sujet:</td> <td><input type=text name=title size=30></td></tr> <tr><td colspan=2>Commentaires:<br> <textarea cols=50 rows=6 name=comments></textarea> </td></tr> </table> <br> <input type=submit value=Envoyer> - <input type=reset value=Annuler> </form>
et voici mon embryon de script php:
<?php

	$name = $_POST['name'];
	$email = $_POST['email'];
	$point = strpos($email,".");
	$aroba = strpos($email,"@");
	$auto_mail = $_POST['auto_mail'];
	$adresse_destinataire = 'libraires@librairie-alinea-bayonne .com';
	$adresse_destinataire2 = '[email protected]'];
	$objet = 'Question(s) Client Librairie Alinea';
	$message = addslashes(
	"Nom:".$_POST['name'].
	"\n Message: " .$_POST['comments']);
	
	
	if (empty($name))
{
print ("<center><b>Le nom doit &ecirc;tre renseign&eacute;</b></center>");
die();
}

if (empty($email))
{
print ("<center><b>Votre email doit &ecirc;tre renseign&eacute;</b></center>");
die();
}

if($point=='')
{
print ("<center><b>Votre email doit comporter un <b>point</b></b></center>");
die();
}
elseif($aroba=='')
{
print ("<center><b>Votre email doit comporter un <b>'@'</b></b></center>");
die();
} 

else
{
if($lib = $_POST['lib']
{

	mail($adresse_destinataire,$objet,$message);
}
if($web = $_POST['web']
{
	
	mail($adresse-destinataire2, $objet, $message);
	print('<br /><br/><center><b>Votre commande a été envoyée avec succès !</b>
	<br />
	<br />
	Cliquez <a href="index.html?page=index"><b>ici</b></a> pour retourner à la page d\'accueil, ou 
				<a href="contacts.php?page=contacts"><b>ici</b></a> pour retourner à la page 
				de contacts.</center>');
exit();
}
?>
Je dis embryon (parce que c'est ce que je suis :lol: et qu'il doit encore évoluer.
Ne vous arrachez pas les cheveux, mais qques indications de directions de travail seront les bienvenues.
D'avance merci à vous toutes et tous
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Mammouth du PHP | 19672 Messages

19 déc. 2006, 15:48

Problème avec les boutons radios : de la manière dont tu procèdes, tu peux cocher les deux. Pour limiter le choix à un seul, les deux boutons radios doivent avoir la même valeur d'attribut name.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

20 déc. 2006, 12:28

Bonjour,
et bien vu et merci Cyrano; il y avait aussi des erreurs type un crochet qui se promenait seul, un point virgule qui n avait rien à faire là, etc.
Ceci dit ça marche toujours pas mais je cherche. Comment devrais je faire? Un variable pour chaque destinataire potentiel et une variable choix? Je me perds un peu.
D'avance merci des infos sur une direction à prendre et merci encore pour vos conseils
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Mammouth du PHP | 19672 Messages

20 déc. 2006, 13:02

Dans la page de traitement, ajoute ceci en début de code PHP:
<pre>
<?php
print_r($_POST);
?>
</pre>
remplis ton formulaire et envoie les données, puis, observe ce que ça t'affiche, tu y trouveras sûrement des détails utiles.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

20 déc. 2006, 22:40

Bonsoir,
Pffff...désolé je ne m'en sorts plus; merci néanmoins Cyrano.
Voilà le message que j'obtiens maintenant
Parse error: syntax error, unexpected '{' in......ligne 59
il s'agit de la ligne concernant le dernier else dans mon code que voici:
<?php

	$choix = $_POST['choix'];
	$val = $_POST['lib'];
	$val1 = $_POST['web'];
	$name = $_POST['name'];
	$email = $_POST['email'];
	$point = strpos($email,".");
	$aroba = strpos($email,"@");
	$auto_mail = $_POST['auto_mail'];
	$adresse_destinataire = 'libraires@librairie-alinea-bayonne .com';
	$adresse_destinataire2 = '[email protected]';
	$objet = 'Question(s) Client Librairie Alinea';
	$message = addslashes(
	"Nom:".$_POST['name'].
	"\n Message: " .$_POST['comments']);
	
if (empty($name))
{
print ("<center><b>Le nom doit &ecirc;tre renseign&eacute;</b></center>");
die();
}

if (empty($email))
{
print ("<center><b>Votre email doit &ecirc;tre renseign&eacute;</b></center>");
die();
}

if($point=='')
{
print ("<center><b>Votre email doit comporter un <b>point</b></b></center>");
die();
}
elseif($aroba=='')
{
print ("<center><b>Votre email doit comporter un <b>'@'</b></b></center>");
die();
} 


if($choix = $val)
{

	mail($adresse_destinataire,$objet,$message);
	
}
else($choix = $val1)
{	
	mail($adresse-destinataire2, $objet, $message);
	print('<br /><br/><center><b>Votre commande a été envoyée avec succès !</b>
	<br />
	<br />
	Cliquez <a href="index.html?page=index"><b>ici</b></a> pour retourner à la page d\'accueil, ou 
				<a href="contacts.php?page=contacts"><b>ici</b></a> pour retourner à la page 
				de contacts.</center>');
exit();

}
?>
Où est mon erreur????
D'avance merci à toutes et tous
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 22:48

Bonsoir,

tu est sur que cette syntaxe est correcte???
if($choix = $val)
{

    mail($adresse_destinataire,$objet,$message);
    
}
else($choix = $val1){
Pour tester une égalité c'est ==
dans ton else la même erreur et je pense que c'est pas un else mais un elseif que tu voulais.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 250 Messages

20 déc. 2006, 23:02

Oupsss... :oops:
Autant pour moi. J'avais effectivement écrit d'abord == mais avec toutes mes révisions je me suis ensuite emmelés les pinceaux...
Merci c'est nickel maintenant.
:o
Bonne soirée et encore merci
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 23:07

Re,

Bonne soirée à toi aussi, mais tu ne penses pas qu'elle serait meilleure vec un petit [Résolu] ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 250 Messages

20 déc. 2006, 23:08

Oh lala...ça va vraiement pas moi!
Encore toutes mes excuses et merci encore pour le coup de main
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."