probleme de reception d'email via un formulaire
Posté : 13 oct. 2011, 00:32
Bonjour, j'ai sur mon site un formulaire permettant de m'envoyer des annonces à publier.
Le probleme est que certaines annonces ne me parviennent pas, selon l'adresse mail de l'annonceur.
Quand ils envoient le message une fenêtre noire apparait avec comme message:
Voici mon code sur la page annonce.php:
Le probleme est que certaines annonces ne me parviennent pas, selon l'adresse mail de l'annonceur.
Quand ils envoient le message une fenêtre noire apparait avec comme message:
D'oû vient l'erreur?Class Mail, method attach : file can't be found
Voici mon code sur la page annonce.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>mon site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
function bookmarksite(title, url, t){
if (document.all) {
window.external.AddFavorite(url, title);
t.style.behavior='url(#default#homepage)';
t.setHomePage('http://www.monsite.com/annonce.php');
} else if (window.sidebar) {
window.sidebar.addPanel(title, url, "");
}
}
</script>
</head>
<body>
<?php
if (isset($_POST['nom']) AND isset($_POST['email'])AND isset($_POST['date'])AND isset($_POST['heure'])AND isset($_POST['titre'])AND isset($_POST['contenu'])AND isset($_POST['lieu']))
{
include "libmail.php";
$nom=$_POST['nom'];
$email=$_POST['email'];
$date=$_POST['date'];
$heure=$_POST['heure'];
$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
$lieu=$_POST['lieu'];
if (isset($_POST['lien']))
$lien=$_POST['lien'];
$m= new Mail; // le mail est créé
$m->From( $_POST['email'] );
$m->To( "[email protected]" );
$m->Subject( "annonce ".$_POST['titre'] );
$imager = $_FILES['image']['tmp_name']; // nom du fichier temporaire
$nomimage = $_FILES['image']['name']; // nom réel
$message= " Nom : ".stripslashes($nom)."\n Email : ".$email."\n Date : ".$date."\n Heure : ".$heure."\n Titre :".stripslashes($titre)."\n Lieu : ".stripslashes($lieu)."\n Lien : ".$lien."\n Message : ".stripslashes($contenu)."\n";
$m->Body( $message); // corps du message
$m->Priority(2) ; // donne la priorité du mess
if (isset($imager))
$m->Attach( "$imager", "$nomimage" ) ; // attache l image
$m->Send(); // envoi le mail
?> <p><center> <?php echo" Votre annonce a été envoyé.";?></center></p><?php
//========== affichage de la page
?>
<h3>Passez votre annonce<form method=post action=annonce.php><input name=submit type=submit class="btn" value=" "></form></h3>
<?php
mysql_connect("localhost", "admin", "password");
mysql_select_db("base de donnee");
$retour1 = mysql_query('SELECT * FROM baseannonce ORDER BY date LIMIT 0, 50');
while ($donnees = mysql_fetch_array($retour1))
{
mysql_query('DELETE FROM annonce WHERE date < CURRENT_DATE()');
?>
<div id="annonces">
<?php
// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
$image = nl2br(stripslashes($donnees['image']));
$titre = nl2br(stripslashes($donnees['titre']));
$contenu = nl2br(stripslashes($donnees['contenu']));
$lieu = nl2br(stripslashes($donnees['lieu']));
$lien = nl2br(stripslashes($donnees['lien']));
$heure = nl2br(stripslashes($donnees['heure']));
?>
<h4>
<?php $tableau = explode('-',$donnees['date']);
$date_normale = $tableau[2].'-'.$tableau[1].'-'.$tableau[0];
$timestamp_jour = mktime(0,0,0,$tableau[1],$tableau[2],$tableau[0]);
$numero_jour = date('w',$timestamp_jour);
$semaine = array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
$jour = $semaine[$numero_jour];
$numero_mois = date('n',$timestamp_jour);
$semaine = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
$mois = $semaine[$numero_mois];
echo $jour.' ';echo $tableau[2].' ';echo $mois.' ';echo $tableau[0].' ';echo '-';echo $heure;?></h4>
<?php echo $titre; ?>
<?php echo '<img src="doc/'.$donnees['image'].'" alt="image"/>'; ?>
<?php echo $contenu;?>
<?php echo $lieu;?>
<?php echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';?>
</div>
<?php
} // Fin de la boucle des annonces
?>
<?php
}
else if ((isset($_POST['submit']))&&($_POST['submit'] == " "))
{
// formulaire
?>
<div id="corpsform">
<form vname="FormName" action="annonce.php" method="post" enctype="multipart/form-data" name="form">
<table align=center height=400>
<tr><td align=right>Nom :</td><td align=left><input type="text" size="30" name="nom" value=""/></td></tr>
<tr><td align=right>Email : </td><td align=left><input type="text" size="30" name="email" value=""/></td></tr>
<tr><td align=right>Date : </td><td align=left><input type="text" size="30" name="date" value=""/></td></tr>
<tr><td align=right>Heure : </td><td align=left><input type="text" size="30" name="heure" value=""/></td></tr>
<tr><td align=right>Titre : </td><td align=left><input type="text" size="30" name="titre" value=""/></td></tr>
<tr><td align=right>Image (Max:2Mo) : </td><td align=left><input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input name="image" type="file" size="30"></td></tr>
<tr><td align=right>Contenu :</td><td align=left><textarea rows="5" name="contenu" cols="30"></textarea></td></tr>
<tr><td align=right>Lieu : </td><td align=left><input type="text" size="30" name="lieu" value=""/></td></tr>
<tr><td align=right>Lien : <td align=left><input type="text" size="30" name="lien" value=""/></td></tr>
<tr><td colspan=2 align=center><input type="submit" name="submit" value="Envoyer" /></td></tr>
</table>
</form>
</div>
<?php
}
else
{
// si rien est envoyé, affichage des annonces
?>
<h3>Passez votre annonce<form method=post action=annonce.php><input name=submit type=submit class="btn" value=" "></form></h3>
<?php
mysql_connect("localhost", "admin", "password");
mysql_select_db("base de donnee");
$retour1 = mysql_query('SELECT * FROM baseannonce ORDER BY date LIMIT 0, 50');
while ($donnees = mysql_fetch_array($retour1))
{
mysql_query('DELETE FROM baseannonce WHERE date < CURRENT_DATE()');
?>
<div id="annonces">
<?php
// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
$image = nl2br(stripslashes($donnees['image']));
$titre = nl2br(stripslashes($donnees['titre']));
$contenu = nl2br(stripslashes($donnees['contenu']));
$lieu = nl2br(stripslashes($donnees['lieu']));
$lien = nl2br(stripslashes($donnees['lien']));
$heure = nl2br(stripslashes($donnees['heure']));
?>
<h4>
<?php $tableau = explode('-',$donnees['date']);
$date_normale = $tableau[2].'-'.$tableau[1].'-'.$tableau[0];
$timestamp_jour = mktime(0,0,0,$tableau[1],$tableau[2],$tableau[0]);
$numero_jour = date('w',$timestamp_jour);
$semaine = array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
$jour = $semaine[$numero_jour];
$numero_mois = date('n',$timestamp_jour);
$semaine = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
$mois = $semaine[$numero_mois];
echo $jour.' ';echo $tableau[2].' ';echo $mois.' ';echo $tableau[0].' ';echo '-';echo $heure;?></h4>
<?php echo $titre; ?>
<?php echo '<img src="doc/'.$donnees['image'].'" alt="image"/>'; ?>
<?php echo $contenu;?>
<?php echo $lieu;?>
<?php echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';?>
</div>
<?php
} // Fin de la boucle des annonces
?>
<?php
mysql_close();
}
?>
</body>
</html>