PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 15-12-2009 22:13:08

wallacebarth
Membre
Inscription : 15-12-2009
Messages : 5

[Résolu] rajouter un champs dans un formulaire qui genere un email (php)

Bonjour tous le monde,

Ayant recuperer un script pour envoyer des Ecards (c'est la saison!) j'aimerais rajouter à celui-ci les champs prénom et email de l'expediteur.
Mon problème et que je n'arrive pas à faire afficher ses informations dans l'email, sans doute parce que je ne sais comment déclarer les variables concernés.

Merci d'avance pour tout elements de reponse

[code: php]
<?php
// CHANGE PARAMETERS HERE BEGIN
$columns = 5;
$senderName  = 'Sender Name Here'; // Eg.: John's Postcards
$senderEmail = 'Sender EMAIL here';  // Eg.: john@postcard.com
// Change only if you have problems with urls
$postcardURL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
// CHANGE PARAMETERS HERE END



// This function displays the available images
function displayPhotos(){
    global $columns;
   
    $act = 0;
    // Open the actual directory
    if ($handle = opendir("thumbs")) {
        // Read all file from the actual directory
        while ($file = readdir($handle))  {
            if (!is_dir($file)) {
                if ($act == 0) echo "<tr>";
                echo "<td align='center'>
                     <img src='thumbs/$file' alt='postcard' /><br/>
                     <input type='radio' name='selimg' value='$file' />
                   </td>";
                $act++;
                if ($act == $columns){
                    $act = 0;
                    echo "</tr>";
                }
              }
        }
        echo "</tr>";
    }   
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                    "DTD/xhtml1-transitional.dtd">
<html>
<body>
    <?php if ( (!isset($_POST['submit'])) && (!isset($_GET['show'])) ) { ?>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <table align="center">
                   <?php displayPhotos(); ?>
            </table>       
       <h2>Fill the form</h2>   
            <table width="100%">
              <tr>
                <td>Send to (email address):</td>
                <td><input type="text" name="email" size="30"/></td>
              </tr>
              <tr>
                  <td><blockquote>
                  <p>indiquez votre prénom :</p>
                 </blockquote></td>
                 <td><input type="text" name="prenom" size="30"/></td></tr>
               
                 <tr>
                 <td><blockquote>
                 <p>indiquez votre email :</p>
                 </blockquote></td>
                 <td><input type="text" name="email2" size="30"/></td></tr>   
                 <td>Message:</td>
                 <td><textarea name="message" rows="10" cols="40"></textarea></td>
                 </tr>
              <tr>
                <td colspan="2" align="center">
                <input type="submit" value="Send card!" name="submit"/></td>
              </tr>
            </table>
       </form>
       <?php } else if ( (isset($_POST['submit'])) && (!isset($_GET['show'])) ) {
            $pic = isset ($_POST['selimg']) ? $_POST['selimg'] : '';
            $filename = date('YmdGis');
            $f = fopen('messages/'.$filename.".txt","w+");         
            fwrite($f,$pic."\n");
            fwrite($f,$_POST['email']."\n");
            fwrite($f,htmlspecialchars($_POST['message'])."\n");
            fclose($f);
           
            // Compose the mail
$postcardURL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
$from   = "From: $senderName <$senderEmail>\r\n";
$replay = "Reply-To: $senderEmail\r\n";   
$params = "MIME-Version: 1.0\r\n";
$params .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$mailtext = "You have just received a virtual postcard!\r\n\r\n"
          . "You can pick up your postcard at the following web address:\r\n"
          . "$postcardURL"."?show=$filename\r\n\r\n"
          . "We hope you enjoy your postcard, and if you do, "
          . "please take a moment to send a few yourself!\r\n\r\n"
          . "Regards,\r\n"
          . "Postcard Tutorial\r\n"
          . $postcardURL;

// Send email         
@mail($_POST['email'],"You've received a postcard",$mailtext,$from.$replay.$params);

?>           
       
        <center>
          Your postcard was sended succesfuly!<br/><br/>
          <img src='images/<?php echo $pic; ?>' alt="postcard" /><br/><br/><br/>
          <?php echo nl2br(htmlspecialchars($_POST['message'])); ?></center>           
       <?php } else if ( (!isset($_POST['submit'])) && (isset($_GET['show'])) ) {
$file = isset($_GET['show']) ?  $_GET['show'] : ''          ;
$content = file('messages/'.$file.".txt");
$pic   = $content['0'];
unset ($content['0']);
unset ($content['1']);
$main = "";
foreach ($content as $value) {
      $main .= $value;
}
?>           
   <center>Your postcard!<br/><br/>
   <img src='images/<?php echo $pic; ?>' alt="postcard" />
   <br/><br/><br/>
   <?php echo nl2br(htmlspecialchars($main)); ?>
   </center>           
       
<?php } ?>       
</body>[/code]

Hors ligne

#2 16-12-2009 06:59:40

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] rajouter un champs dans un formulaire qui genere un email (php)

Il s'agit de faire de la concaténation de variables.
Le contenu de ta carte se trouve dans la variable $_POST['message'].
Tu peux donc faire un truc comme cela :

$_POST['message'] = 'Auteur de la carte : <a href="mailto:'.$_POST['email2'].'>'.$_POST['prenom'].'</a>'.$_POST['message'];

Bien sûr cette manipulation est à faire avant les fwrite.

Hors ligne

#3 16-12-2009 10:24:32

wallacebarth
Membre
Inscription : 15-12-2009
Messages : 5

Re : [Résolu] rajouter un champs dans un formulaire qui genere un email (php)

En fait, c'est dans le mail que reçoit la personne que j'aimerais qu' apparraisse le nom et l'adresse de celui qui envoi,
genre :



"Pierre (pierre@free.fr) viens de vous envoyer une carte ..."
"vous pouvez la consulter ici ..."

Hors ligne

#4 16-12-2009 12:07:57

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] rajouter un champs dans un formulaire qui genere un email (php)

Bah je ne vois pas ce qui te bloque si tu as compris ce que je t'ai expliqué. neutral
Le contenu du mail est simplement une autre variable : $mailtext

Hors ligne

#5 16-12-2009 12:58:11

wallacebarth
Membre
Inscription : 15-12-2009
Messages : 5

Re : [Résolu] rajouter un champs dans un formulaire qui genere un email (php)

oui merci ça y es j'y suis arriver !

merci beaucoup !

Hors ligne

Pied de page des forums