> 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
30,49 €Clavier sans fil Microsoft All in One avec pad intégré à 30,49 €
Valable jusqu'au 29 Mai

Amazon fait une promotion sur le clavier Microsoft All in One qui passe à 30,49 € au lieu de 39 €. Ce clavier sans fil (jusqu'à 9 mètres) est idéal pour piloter un ordinateur à distance puisqu'il intègre un touchpad pour contrôler également la souris. Léger, solide et résistant aux éclaboussures, il comporte de nombreuses touches multimédia personnalisables. Il est garanti 3 ans.


> Voir l'offre
168,99 €SSD Crucial MX500 2 To à 168,99 €
Valable jusqu'au 29 Mai

Amazon propose actuellement le SSD Crucial MX500 2 To à 168,99 € livré gratuitement. On le trouve ailleurs à partir de 190 €. 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. Une bonne affaire.


> Voir l'offre
16,99 €Terminal de paiement SumUp Air à 16,99 €
Valable jusqu'au 30 Mai

RueDuCommerce fait une belle promotion sur le terminal de paiement SumUp Air sans fil qui passe à 16,99 € au lieu de 29,99 €. Avec lui et votre smartphone (application SumUP à installer), vous allez pouvoir accepter simplement des paiements par cartes bancaires. Oubliez les frais mensuels et les obligations contractuelles : Vous ne payez qu'une commission de 1,75% par transaction. Pas de frais supplémentaires. Les fonds sont directement transférés sur votre compte bancaire.

Pratique pour les petits commerçants, les marchés, les vides greniers, etc.


> 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