Merci beaucoup Moogli
J'ai testé ton code, il marche trés bien.
Mais en rajoutant quelques trucs qui faisaient partis de la page d'origine, je n'arrive plus à accèder au formulaire et un lien vers les Favoris ne fonctionne plus.
Code : Tout sélectionner
<img src="favoris.gif" alt="favoris" />
<a href="javascript:return false;" onclick="bookmarksite("Annonces", "http://www.monsite.com/annonce.php", this);return false;" title="Annonces">Ajoutez cette page à vos Favoris</a>
Voici le code complet
<!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" />
<link rel="stylesheet" media="screen" type="text/css" title="news" href="style.css" />
<meta http-equiv="Refresh" content="600" />
<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>
<script type="text/javascript" src="verification_formulaire.js"></script>
<style type="text/css">
.success {
border: 2px solid green;
text-align: center;
}
.error{
border: 2px solid red;
text-align: center;
}
</style>
</head>
<body>
<div id="page">
<div id="page2">
<div id="en_tete"></div>
<div id="menu">
<div id="element_menu"></div>
</div>
<div id="menu2">
<div id="element_menu2"></div>
</div>
<div id="corps">
<?php
// connexion Mysql
mysql_connect("localhost", "admin", "password");
mysql_select_db("base de donnee");
if (!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['date']) &&
!empty($_POST['heure']) && !empty($_POST['titre']) && !empty($_POST['contenu']) && !empty($_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'];
else $lien = '';
// on prépare le message
$m= new Mail; // le mail est créé
$m->From( $_POST['email'] );
$m->To( "[email protected]" );
$m->Subject( "annonce ".$_POST['titre'] );
$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
// donne la priorité du message
$m->Priority(2) ;
// validation de l'upload
if (isset($_FILES['image'])){
// la on peu valider l'image
if ($_FILES['error'] == 0 && file_exists($_FILES['image']['tmp_name'])) {
// le fichier est arrivé nikel on peu le traiter
$m->Attach( $_FILES['image']['tmp_name'], $_FILES['image']['name'] ) ; // attache l image
// ceci pour le test histoire de bien l'image uploadée
move_uploaded_file($_FILES['image']['tmp_name'], './'.$_FILES['image']['name']);// met le chemin correct vers ton script à la place
echo '<img src="'.$_FILES['image']['name'].'" />';
}
else {
// la y a une erreur et faut la traiter comme il faut
switch ($_FILES['image']['error']) {
case UPLOAD_ERR_OK :
$erreur = 'Pas d\'erreur';
break;
case UPLOAD_ERR_INI_SIZE :
$erreur = 'Votre fichier `'.$_FILES['image']['name'].'` dépasse la taille maximale d\'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )';
break;
case UPLOAD_ERR_FORM_SIZE :
$erreur = 'Votre fichier dépasse la taille maximale requise';
break;
case UPLOAD_ERR_PARTIAL :
$erreur = 'Le fichier n\'a été que partiellement téléchargé. !!!';
break;
case UPLOAD_ERR_NO_FILE :
$erreur = 'Aucun fichier téléchargé !!!';
break;
case UPLOAD_ERR_NO_TMP_DIR :
$erreur = 'Un dossier temporaire est manquant.';
break;
case UPLOAD_ERR_CANT_WRITE :
$erreur = 'Échec de l\'écriture du fichier sur le disque.';
break;
case UPLOAD_ERR_EXTENSION :
$erreur = 'Une extension PHP a arrété l\'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L\'examen du phpinfo() peut aider.';
break;
default :
$erreur = 'L\'upload a rencontré une erreur inconnue !!!';
break;
}
echo '<p class="error">'.$erreur.'</p>';
}
}
//fin validation upload
if ($m->Send()){ // envoi le mail
echo '<p class="success"><img src="siteimage/star.gif" alt="star" /> Votre annonce a été envoyé.</p>';
}
else {
// voir si la classe fournit des messages d'erreur ! (a inclure dans le message ci dessous
echo '<p class="erreur">Le mail n\'a pas pus être envoyé !</p>';
}
}
if ((isset($_POST['submit']))&&($_POST['submit'] == "passerannonce"))
{
// formulaire
?>
<div id="corpsform">
<h1><img src="formtitre.gif" alt="formulaire" /></h1><br/><br/>
<p>Passez vos annonces<br/>
L'annonce sera analysée avant d'ètre publiée.</p>
<form vname="FormName" action="" method="post" enctype="multipart/form-data" name="form" onsubmit="return valideForm(this)">
<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="affiche" 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
}
// affiche les annonces
echo ' <center><img src="favoris.gif" alt="favoris" />
<a href="javascript:return false;" onclick="bookmarksite("Annonces", "http://www.monsite.com/annonce.php", this);return false;" title="Annonces">Ajoutez cette page à vos Favoris</a>
<h3><img src="etoile.gif" alt="etoile" />Passez vos annonces
<form method=post action="annonce.php"><input name=submit type=submit class="btn" value="cliquez ici"></form></h3>
<h1><img src="titreannonce.gif" alt="annonce" /></h1></center>';
mysql_query('DELETE FROM annonce WHERE date < CURRENT_DATE()');
$retour1 = mysql_query('SELECT * FROM annonce ORDER BY date LIMIT 0, 50');
while ($donnees = mysql_fetch_array($retour1))
{
echo '<div id="annonces">';
// 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']));
$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);
$les_mois = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
$mois = $les_mois[$numero_mois];
echo '<h4><img src="etoile.gif" alt="etoile" />'.$jour.' ' .$tableau[2].' '. $mois.' '. $tableau[0].' '. '-'. $heure. '</h4>';
echo '<div id="titre"><h2>'.$titre.'</h2></div>';
echo '<div id="image"><img src="doc/'.$donnees['image'].'" alt="image"/></div>';
echo $contenu;
echo '<div id="lieu"><img src="fleche.gif" alt="fleche" />'.$lieu.'</div>';
echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';
echo '</div>';
} // Fin de la boucle des annonces
// affiche les albums
echo '<center><h3><img src="etoile.gif" alt="etoile" />Passez vos annonces
<form method=post action="annonce.php"><input name=submit type=submit class="btn" value="cliquez ici"></form></h3>
<h1><img src="titrealbum.gif" alt="partie album" /></h1></center>';
$retour2 = mysql_query('SELECT * FROM album ORDER BY date LIMIT 0, 50');
while ($donnees = mysql_fetch_array($retour2))
{
echo '<div id="album">';
// 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']));
echo '<div id="titre_album"><h2>'.$titre.'</h2></div>';
echo '<div id="image_album"><img src="doc/'.$donnees['image'].'" alt="album"/></div>';
echo $contenu;
echo '<div id="lieu_album">'.$lieu.'</div>';
echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';
echo '</div>';
} // Fin de la boucle des albums
echo '<center><div style="clear:left; background-image:url(fond.gif); background-repeat:no-repeat;background-position:center;color:white;"><strong>Inserez un lien vers les annonces sur votre site en recopiant ce code:</strong><br/>
<img src="http://www.monsite.com/lienannonce.gif" alt="lien annonce"/>
<textarea name="lienannonce" id="lienannonce" rows="3" cols="50" style="font-size:11px"><a href="http://www.monsite.com/annonce.php" target="blank;"><img src="http://www.monsite.com/lienannonce.gif" alt="lien annonce"/></a></textarea>
</div></center>';
mysql_close();
?>
</div>
<div id="bas_de_page"></div>
</div>
</div>
</body>
</html>
Merci beaucoup Moogli
J'ai testé ton code, il marche trés bien.
Mais en rajoutant quelques trucs qui faisaient partis de la page d'origine, je n'arrive plus à accèder au formulaire et un lien vers les Favoris ne fonctionne plus.
[code]<img src="favoris.gif" alt="favoris" />
<a href="javascript:return false;" onclick="bookmarksite("Annonces", "http://www.monsite.com/annonce.php", this);return false;" title="Annonces">Ajoutez cette page à vos Favoris</a>[/code]
Voici le code complet
[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" />
<link rel="stylesheet" media="screen" type="text/css" title="news" href="style.css" />
<meta http-equiv="Refresh" content="600" />
<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>
<script type="text/javascript" src="verification_formulaire.js"></script>
<style type="text/css">
.success {
border: 2px solid green;
text-align: center;
}
.error{
border: 2px solid red;
text-align: center;
}
</style>
</head>
<body>
<div id="page">
<div id="page2">
<div id="en_tete"></div>
<div id="menu">
<div id="element_menu"></div>
</div>
<div id="menu2">
<div id="element_menu2"></div>
</div>
<div id="corps">
<?php
// connexion Mysql
mysql_connect("localhost", "admin", "password");
mysql_select_db("base de donnee");
if (!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['date']) &&
!empty($_POST['heure']) && !empty($_POST['titre']) && !empty($_POST['contenu']) && !empty($_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'];
else $lien = '';
// on prépare le message
$m= new Mail; // le mail est créé
$m->From( $_POST['email'] );
$m->To( "
[email protected]" );
$m->Subject( "annonce ".$_POST['titre'] );
$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
// donne la priorité du message
$m->Priority(2) ;
// validation de l'upload
if (isset($_FILES['image'])){
// la on peu valider l'image
if ($_FILES['error'] == 0 && file_exists($_FILES['image']['tmp_name'])) {
// le fichier est arrivé nikel on peu le traiter
$m->Attach( $_FILES['image']['tmp_name'], $_FILES['image']['name'] ) ; // attache l image
// ceci pour le test histoire de bien l'image uploadée
move_uploaded_file($_FILES['image']['tmp_name'], './'.$_FILES['image']['name']);// met le chemin correct vers ton script à la place
echo '<img src="'.$_FILES['image']['name'].'" />';
}
else {
// la y a une erreur et faut la traiter comme il faut
switch ($_FILES['image']['error']) {
case UPLOAD_ERR_OK :
$erreur = 'Pas d\'erreur';
break;
case UPLOAD_ERR_INI_SIZE :
$erreur = 'Votre fichier `'.$_FILES['image']['name'].'` dépasse la taille maximale d\'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )';
break;
case UPLOAD_ERR_FORM_SIZE :
$erreur = 'Votre fichier dépasse la taille maximale requise';
break;
case UPLOAD_ERR_PARTIAL :
$erreur = 'Le fichier n\'a été que partiellement téléchargé. !!!';
break;
case UPLOAD_ERR_NO_FILE :
$erreur = 'Aucun fichier téléchargé !!!';
break;
case UPLOAD_ERR_NO_TMP_DIR :
$erreur = 'Un dossier temporaire est manquant.';
break;
case UPLOAD_ERR_CANT_WRITE :
$erreur = 'Échec de l\'écriture du fichier sur le disque.';
break;
case UPLOAD_ERR_EXTENSION :
$erreur = 'Une extension PHP a arrété l\'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L\'examen du phpinfo() peut aider.';
break;
default :
$erreur = 'L\'upload a rencontré une erreur inconnue !!!';
break;
}
echo '<p class="error">'.$erreur.'</p>';
}
}
//fin validation upload
if ($m->Send()){ // envoi le mail
echo '<p class="success"><img src="siteimage/star.gif" alt="star" /> Votre annonce a été envoyé.</p>';
}
else {
// voir si la classe fournit des messages d'erreur ! (a inclure dans le message ci dessous
echo '<p class="erreur">Le mail n\'a pas pus être envoyé !</p>';
}
}
if ((isset($_POST['submit']))&&($_POST['submit'] == "passerannonce"))
{
// formulaire
?>
<div id="corpsform">
<h1><img src="formtitre.gif" alt="formulaire" /></h1><br/><br/>
<p>Passez vos annonces<br/>
L'annonce sera analysée avant d'ètre publiée.</p>
<form vname="FormName" action="" method="post" enctype="multipart/form-data" name="form" onsubmit="return valideForm(this)">
<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="affiche" 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
}
// affiche les annonces
echo ' <center><img src="favoris.gif" alt="favoris" />
<a href="javascript:return false;" onclick="bookmarksite("Annonces", "http://www.monsite.com/annonce.php", this);return false;" title="Annonces">Ajoutez cette page à vos Favoris</a>
<h3><img src="etoile.gif" alt="etoile" />Passez vos annonces
<form method=post action="annonce.php"><input name=submit type=submit class="btn" value="cliquez ici"></form></h3>
<h1><img src="titreannonce.gif" alt="annonce" /></h1></center>';
mysql_query('DELETE FROM annonce WHERE date < CURRENT_DATE()');
$retour1 = mysql_query('SELECT * FROM annonce ORDER BY date LIMIT 0, 50');
while ($donnees = mysql_fetch_array($retour1))
{
echo '<div id="annonces">';
// 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']));
$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);
$les_mois = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
$mois = $les_mois[$numero_mois];
echo '<h4><img src="etoile.gif" alt="etoile" />'.$jour.' ' .$tableau[2].' '. $mois.' '. $tableau[0].' '. '-'. $heure. '</h4>';
echo '<div id="titre"><h2>'.$titre.'</h2></div>';
echo '<div id="image"><img src="doc/'.$donnees['image'].'" alt="image"/></div>';
echo $contenu;
echo '<div id="lieu"><img src="fleche.gif" alt="fleche" />'.$lieu.'</div>';
echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';
echo '</div>';
} // Fin de la boucle des annonces
// affiche les albums
echo '<center><h3><img src="etoile.gif" alt="etoile" />Passez vos annonces
<form method=post action="annonce.php"><input name=submit type=submit class="btn" value="cliquez ici"></form></h3>
<h1><img src="titrealbum.gif" alt="partie album" /></h1></center>';
$retour2 = mysql_query('SELECT * FROM album ORDER BY date LIMIT 0, 50');
while ($donnees = mysql_fetch_array($retour2))
{
echo '<div id="album">';
// 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']));
echo '<div id="titre_album"><h2>'.$titre.'</h2></div>';
echo '<div id="image_album"><img src="doc/'.$donnees['image'].'" alt="album"/></div>';
echo $contenu;
echo '<div id="lieu_album">'.$lieu.'</div>';
echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';
echo '</div>';
} // Fin de la boucle des albums
echo '<center><div style="clear:left; background-image:url(fond.gif); background-repeat:no-repeat;background-position:center;color:white;"><strong>Inserez un lien vers les annonces sur votre site en recopiant ce code:</strong><br/>
<img src="http://www.monsite.com/lienannonce.gif" alt="lien annonce"/>
<textarea name="lienannonce" id="lienannonce" rows="3" cols="50" style="font-size:11px"><a href="http://www.monsite.com/annonce.php" target="blank;"><img src="http://www.monsite.com/lienannonce.gif" alt="lien annonce"/></a></textarea>
</div></center>';
mysql_close();
?>
</div>
<div id="bas_de_page"></div>
</div>
</div>
</body>
</html>[/php]