Php, afficher une page et l'envoyer par mail

Fermé
dornick.fr - 7 févr. 2008 à 02:24
ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 - 10 févr. 2008 à 21:52
Bonjour,

J'utilise php pour faire un questionnaire et la page de résultat?
Ce que je veux faire c'est afficher une page de résultat et en même temps l'envoyer par mail à mon adresse.

Pour le moment ce que je fait c'est, dans la page de résultat, c'est que je stocke toute ma page dans une variable ensuite, je fait
echo $lavariabledelapage;
// parce qu'il paraît que dans un mail un ligne ne devrait pas faire plus de 70 caractères...
$pageformattée=worldwrap($lavariabledelapage,70)
mail(...monemail...$pageformattée)

Le résultat est exactement celui que je veux mais je trouve que c'est un peu bourrin comme méthode, surtout que stocker toute la page dans une variable (et même deux fois) ça me paraît un peu lourd.

Quelqu'un aurait-il une idée de comment faire autrement?
Ca peut paraître évident mais la page de résultat en question est générée par tout un traitement php, ce n'est pas un simple fichier html

Merci.
A voir également:

7 réponses

ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 289
7 févr. 2008 à 03:09
email.php

le formulaire qui suit, tu va pouvoir envoyer un email et aussi afficher un message sur le site.


<?php
if ($_POST['email'] && $_POST['message'] && $_POST['to'] && $_POST['from'] && $_POST['nom']) {
$from = $_POST['from'];
$to = $_POST['to'];
$name = $_POST['nom'];
$message = $_POST['message'];

$object = "LHSX : Message de ".$name;
$msg = "Nom: ".$name;
$msg.= "\nEmail: $from";
$msg.= "\n".$message;

mail ($to, $object, $msg, "From: $from");
$a = 1;
}
?>
<?php if($a) {
echo '<span style="font-weight: bolder; color:green;">ENVOIE RÉUSSI!</span><br />Message envoyé à '.$name.' à l\'adresse '.$to;
}
else {
echo '
Envoie d\'un E-Mail
<form method="post" action="email.php">
<table style="width:400px;">
<tr>
<td style="width:100px;">Destinataire:</td>
<td>
<select size="1" name="to">
<option selected value="web@web.ca">Webmaster</option>
<option value="proprio@web.ca">Proprio</option>
</select>
</td>
</tr>
<tr>
<td>Votre nom:</td>
<td>
<input type="text" name="nom" size="30" />
</td>
</tr>
<tr>
<td>Votre email:</td>
<td>
<input type="text" name="from" size="30" />
</td>
</tr>
</table>
Votre message:<br />
<textarea rows="2" name="message" cols="60"></textarea><br />
<br /><input type="submit" value="Envoyer" name="email" />
</form>';
}
?>
0
J'ai pas le temps de regardé maintenant, mais merci beaucoup pour ta réponse, je jetterai un oeil dès que je peux

Merci
0
J'ai regarder cette proposition. C'est en gros ce que j'ai déjà fait.

Sauf que ce sue je fait c'est que sur la page résultat (email.php dans cet exemple), je fabrique une page en php. Cette page je veux à la fois l'afficher et en même temps l'envoyer par mail.

Du coup ce que je fait dans email.php c'est de ettre toute ma page dans une variable $page.
Ensuite je fait
echo $page;
puis
mail(...,$age,...)

Ce que je demande c'est s'il existe une solution pour faire ça (envoyer la page que l'on vient d'afficher) sans la construire (et donc mémoriser) entièrement dans une variable

Merci quand même
0
ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 289
10 févr. 2008 à 19:20
Je crois t'avoir compris.! Après l'envoie, les informations restent dans le formulaire.


<?php
if ($_POST['email'] && $_POST['message'] && $_POST['to'] && $_POST['from'] && $_POST['nom']) {
$from = $_POST['from'];
$to = $_POST['to'];
$name = $_POST['nom'];
$message = $_POST['message'];

$object = "LHSX : Message de ".$name;
$msg = "Nom: ".$name;
$msg.= "\nEmail: $from";
$msg.= "\n".$message;

mail ($to, $object, $msg, "From: $from");
$a = 1;
}

if($a) {
echo '<span style="font-weight: bolder; color:green;">ENVOIE RÉUSSI!</span><br /><br />';
}

echo '
Envoie d\'un E-Mail
<form method="post" action="email.php">
<table style="width:400px;">
<tr>
<td style="width:100px;">Destinataire:</td>
<td>
<select size="1" name="to">';
if($a) echo '<option selected value="'.$to.'">'.$to.'</option>';
echo'<option ';
if(!$a) echo 'selected ';
echo '
value="web@web.ca">Webmaster</option>
<option value="proprio@web.ca">Proprio</option>
</select>
</td>
</tr>
<tr>
<td>Votre nom:</td>
<td>
<input type="text" name="nom" size="30" value="'.$name.'" />
</td>
</tr>
<tr>
<td>Votre email:</td>
<td>
<input type="text" name="from" size="30" value="'.$from.'" />
</td>
</tr>
</table>
Votre message:<br />
<textarea rows="2" name="message" cols="60">'.$message.'</textarea><br />
<br /><input type="submit" value="Envoyer" name="email" />
</form>';
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
non non, si tu veux envoie moi un mail à dornick.fr AARROBASSEE gmail.com je te donne un lien vers la page tu verras par toi même ce que ça fait
0
ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 289
10 févr. 2008 à 20:26
Je comprend la... oui tu peux mettre tout ton code html dans une variable...

$page = 'Votre courriel : '.$email;
$page .= '\nVotre nom : '.$nom;



le point ici prend la valeur dans $page et ajoute $nom... donc dans $page tu as maintenant
Votre courriel : sdfjh@dsg.com\nVotre nom : Mon nom
0
Justement, c'est ce que je fais actuellemnt, je mettoute la page dans une variable. Ce que je demande c'est s'il existe une solution qui éviterait ça!

Merci quand même!
0
ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 289
10 févr. 2008 à 21:52
Non, je ne crois pas... à part ma solution de ré afficher le formulaire après l'envoie, une nouvelle page = un nouveau code.
0