> Tous les forums > Forum des Webmasters
 mail envoyer souci avec des if et des else
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
surdouer
  Posté le 31/03/2011 @ 23:49 
Aller en bas de la page 
Petit astucien

coucou, j'ai refais mon formulaire de contacte qui fonctionne bien mais j'ai juste rajouté 2 conditions a mon formulaire donc le principe et simple si un membre n'est pas connecter il doit mettre un pseudo et son mail et si le membre est connecté j'ai mis une condition pour affiché son mail et son pseudo là il n'a pas de souci.

Voilà son code :

Votre Email
<br /> <?php
if(isset($_SESSION["id"]))
{
// on affiche le mail du membre s'il est connecté
?>
<a href="#"><?php echo $data['membre_email']; ?></a>
<?php
}
else
{
// si le membre n'est pas connecté il doit affiché un pseudo
echo'<input type="text" name="mail" value="" />';
}


?>


<br />
<br />
Votre pseudo :
<br>
<?php
if(isset($_SESSION["id"]))
{
// on affiche le pseudo du membre s'il est connecté
echo ' <a href="../forum/voirprofil.php?m='.intval($data['membre_id']).'&amp;action=consulter">
'.level_color(id_to_pseudo(stripslashes(htmlspecialchars($data['membre_id']))),$data['membre_rang']).'</a>';
}
else
{
// si le membre n'est pas connecté il doit affiché un pseudo
echo'<input type="text" name="pseudo" value="" />';
}


?>

et là sur ma page mail_envoyer j'ai mis :

<?php

if(!$_POST['pseudo']){ $msg .= '<li>Veuillez renseigner votre pseudo</li><br />'; $i++; }
if(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; }

if($_POST['objet'] == 'none'){ $msg .= '<li>Veuillez choisir un sujet</li><br />'; $i++; }
if(!$_POST['message']){ $msg .= '<li>Veuillez ecrire un message</li><br />'; $i++; }
if($i==0){
// Plusieurs destinataires
$mail = 'monmail@free.fr' . ', '; // notez la virgule

// Sujet
$objet = $_POST['objet'];

// message
$message = '
<html>
<head>
<title>Mon site</title>
</head>
<body>
<p>Son Pseudo : ' . $_POST['pseudo'] .'</p>
<p>Son Message : ' . $_POST['message'] .'</p>

</body>
</html>
';

// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// En-têtes additionnels
$headers .= 'mail: ' . "\r\n";
$headers .= 'From: ' . "\r\n";
$headers .= 'Cc: ' . "\r\n";
$headers .= 'Bcc: ' . "\r\n";

if ( mail($mail, $objet, $message, $headers))echo '<p align="center">Merci, votre message vient d\'&ecirc;tre envoy&eacute; &agrave; l\'&eacute;quipe du site.<br /><a href="index.php" title="Retour sur l\'index">Retour sur l\'index</a></p>'; else echo "Echec de l'envoi du mail.";
}else{
echo '<p align="center">' . $i . ' erreur(s) d&eacute;t&eacute;ct&eacute;e(s) :</p>'. "\n" . $msg . "\n" . '<p align="center"><a href="index.php" title="Retour sur l\'index">Retour sur l\'index</a></p>';
}
}
?>

là ça marche mais comme j'ai mis une condition pour afficher le pseudo et son mail si le membre et connecté j'ai pensé remettre une condition a ma page mail_envoyer donc j'ai pensé à ce code :

if(isset($_SESSION["id"]))
{
elseif(!$_POST['pseudo']){ $msg .= '<li>Veuillez renseigner votre pseudo</li><br />'; $i++; }
}
elseif(isset($_SESSION["id"]))
{
if(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; }
}
if($_POST['objet'] == 'none'){ $msg .= '<li>Veuillez choisir un sujet</li><br />'; $i++; }
if(!$_POST['message']){ $msg .= '<li>Veuillez ecrire un message</li><br />'; $i++; }

j'ai mis ça (isset($_SESSION["id"])) pour dire si un membre s'est connecter donc pas bessoin de remettre le pseudo ni son mail

en résumé :

soit si un membre n'est pas connecter il doit mettre juste un pseudo et un email

soit si le membre est connecter là il affiche son mail et son pseudo

donc mon probleme est sur la page mail_envoyer il faudra remodifier mes condition pour qu'il puisse savoir si le membre est bien connecter ou s'il n'est pas connecté donc c'est pour ça j'ai pennsé un mettre un if et un else donc :

if(isset($_SESSION["id"]))
{
elseif(!$_POST['pseudo']){ $msg .= '<li>Veuillez renseigner votre pseudo</li><br />'; $i++; }
}
elseif(isset($_SESSION["id"]))
{
if(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; }
}

mais quand j'éssaye denvoyer un mail pour voir si ça marche il met veuillez remplir l'email et pour temps mon mail est bien affiché sur ma page formulaire

si quelqu'un pourrais m'aidé a refaire ce petit code propre car on m'a dit mon code n'est pas propre

merci de votre aide

Publicité
B.D.
 Posté le 01/04/2011 à 02:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Quand je bossais en Basic, la formule comportait :

If (condition) Then (action si vrai) Else (action si faux).

Je ne vois pas de Then dans vos formules.

Mais peut-être cela n'a-t-il rien à voir.

@+

Jean-Pierre
 Posté le 01/04/2011 à 10:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

B.D. a écrit :

Quand je bossais en Basic, la formule comportait :

If (condition) Then (action si vrai) Else (action si faux).

Je ne vois pas de Then dans vos formules.

Mais peut-être cela n'a-t-il rien à voir.

@+

Oui le "then" comme bien des langages évolués, mais pas pour le PHP.

De la doc :

http://www.vulgarisation-informatique.com/conditions-php.php

txuku
 Posté le 01/04/2011 à 10:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour

Je ne m y connais pas trop mais je ne comprends pas ton elseif(isset($_SESSION["id"])) reprenant la condition du if ???

Pourquoi pas elseif(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; } ?

Est ce que tu peux mettre des alert() ( je les utilise beaucoup dans mes .jsx photoshop ) du style System.out.println() ?

B.D.
 Posté le 01/04/2011 à 11:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Jean-Pierre a écrit :

Oui le "then" comme bien des langages évolués, mais pas pour le PHP.

De la doc :

http://www.vulgarisation-informatique.com/conditions-php.php

Merci , je découvre.

Bonne journée.

surdouer
 Posté le 01/04/2011 à 11:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci pour votre réponse donc le principe et simple

dans le formulaire il y a 2 possibilités

si le membre n'est pas connecter il doit mettre un pseudo et un mail.

ou soit

si le membre est connecter là on affiche son mail et son pseudo

donc là ca marche

mais sur la page mail envoyer il faudra refaire pareil avec 2 conditions

donc ceux qui nous interresse ces juste ces 2 lignes :

if(!$_POST['pseudo']){ $msg .= '<li>Veuillez renseigner votre pseudo</li><br />'; $i++; }
if(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; }

il faudrait mettre une condition pour le mail et pseudo pour dire si le membre et connecter pas bessoin qui remplit le champs pseudo et mail c'est pour ça j'ai pené de mettre un if et else pour dire c'est soit l'un ou l'autre

par exemple

// on met une condition pour dire que le membre et bien connecter donc pas bessoin qu'il met un pseudo
if(isset($_SESSION["id"]))
{
// on met une condition pour dire que le membre et deconnecter donc là il doit mettre un pseudo

elseif(!$_POST['pseudo']){ $msg .= '<li>Veuillez renseigner votre pseudo</li><br />'; $i++; }
}
// on met une condition pour dire que le membre et bien connecter donc pas bessoin qu'il met un mail

elseif(isset($_SESSION["id"]))
{
// on met une condition pour dire que le membre et deconnecter donc là il doit mettre un mail
if(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; }
}

là mes conditions ne fonctionne pas car il y a un probleme avec if et else pour dire c'est soit l'un ou soit l'autre

merci de votre aide

surdouer
 Posté le 01/04/2011 à 21:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

personne n'a pas une idée svp allez courrage je sais quelqu'un connaît la réponse mais il ne veut pas me doner ou m'aider a le faire ces condtion et avoir un code bien fait

je vous encourage.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
65,67 €Casque HyperX Cloud II (PC, Xbox One, PS4, Switch) à 65,67 € livré
Valable jusqu'au 06 Mars

Amazon Allemagne fait une promotion sur l'excellent casque gaming HyperX Cloud II qui passe à 59,99 € grâce à un coupon de réduction automatiquement appliqué dans la panier. Comptez 5,68 € pour la livraison en France soit un total de 65,67 € livré alors qu'on le trouve ailleurs à partir de 89 €. Le contrôle indépendant de l'audio et du microphone permet de régler non seulement le volume sonore mais aussi le niveau du micro (qui est détachable). Vous pouvez aussi activer le son Surround 7.1 ou le micro. Il peut se connecter en USB sur PC et Mac et via jack 3.5 mm sur PS4, Xbox One, Switch et mobile.

Vous pouvez utiliser votre compte Amazon FR sur Amazon DE et il n'y a pas de douane.


> Voir l'offre
774,99 €Acer Predator (15,6 pouces IPS 144 Hz, Core i5, 8Go RAM, 256 Go, RTX 2060) à 774,99 € (code 25EUROS)
Valable jusqu'au 08 Mars

Cdiscount fait une belle vente flash sur l'ordinateur portable Acer Predator PH315-52-51X2 qui passe à 974,99 € avec le code 25EUROS. Or Acer rembourse actuellement 200 € pour l'achat de ce portable qui vous reviendra à 774,99 € après remboursement.

Ce portable dédié aux joueurs dispose d'un écran 15,6 pouces IPS FHD 1920 x 1080 IPS 144 Hz, d'un processeur Intel Core i5 9300HD, de 8 Go de mémoire RAM, d'un SSD de 256 Go (+ un emplacement SATA libre) et surtout d'une carte graphique Nvidia GeForce RTX 2060 avec 6 Go de mémoire qui vous permettra de profiter de vos jeux de manière fluide en haute résolution. Le tout tourne sous Linux mais vous pouvez facilement installer Windows 10. Une souris vous est également offerte.


> Voir l'offre
58,99 €SSD Crucial MX500 500 Go à 58,99 €
Valable jusqu'au 07 Mars

Amazon propose actuellement le SSD Crucial MX500 500 Go à 58,99 € livré gratuitement. On le trouve ailleurs à partir de 79 €. Ce SSD salué par la critique par son rapport qualité prix imbattable offre des débits de 560 Mo/s en lecture et 510 Mo/s en écriture. Il est garanti 5 ans. 


> Voir l'offre

Sujets relatifs
envoyer un mail avec php
envoyer fichier réalisé avec dreamweaver par mail
Pas de mail recu avec formulaire html et php
souci avec recaptcha
envoyer un mail
souci avec un gif animé
souci de montage avec fopen et fputs
envoyer à plusieurs adresses mail
Help Malcom : formulaire mail php avec copie caché
souci d'include() avec Dreamweaver
Plus de sujets relatifs à mail envoyer souci avec des if et des else
 > Tous les forums > Forum Forum des Webmasters