<h3>Passez votre annonce
<form method=post action=annonce.php><input name=submit type=submit class="btn" value=""></form></h3>
ça c'est loin d'être valide xhtml
a quoi ça peux servir ?
<?php
$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()');
?>
ligne 66 à 69 à quoi ça sert un mysl_query en boucle sur un delete fixe ?le delete est a faire AVANT le select parce que la en plus tu peux afficher des annonces qui n'existe plus (tout a fait possible si dans les 50 1ère tu a des annonces qui valide le prédicat).
d'ailleurs une annonce qui est valide qu'une seule journée c'est un peu limite on ne peux même passer une annonce le soir avant de ce coucher (genre 23h) vu qu'elle sera supprimée a partir de 00h00 (donc une heure plus tard ...).
Je pense que ce critère est a revoir
ça c'est pas sérieux
echo '<h4>'.$jour.' ';echo $tableau[2].' ';echo $mois.' ';echo $tableau[0].' ';echo '-';echo $heure;
utilise la concaténation ou alors plusieurs lignes (la 1ère solution est la mieux à mon gout).
ça c'est pareil
<?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
pas la peine d'ouvrir et de fermer les tags php à chaque ligne
tu peux tester ce code remanier ! (l'upload fonctionne laisse l'affichage de l'image pour t'en convaincre, modifie quand même le chemin ou va atterrir le fichier ^^)
<!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>
<style type="text/css">
.success {
border: 2px solid green;
text-align: center;
}
.error{
border: 2px solid red;
text-align: center;
}
</style>
</head>
<body>
<?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 demandée par le Webmestre';
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">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">
<form vname="FormName" action="" 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
}
// affiche les annonces
echo ' <h3>Passez votre annonce
<form method=post action=""><input name=submit type=submit class="btn" value="passerannonce"></form></h3>';
mysql_query('DELETE FROM annonce WHERE date < CURRENT_DATE()');
$retour1 = mysql_query('SELECT * FROM baseannonce ORDER BY date LIMIT 0, 50');
$semaine = array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'); // pas besoin de le déclarer 50 fois
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);
$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 '<h4>'.$jour.' ' .$tableau[2].' '. $mois.' '. $tableau[0].' '. '-'. $heure. '</h4>';
echo $titre . '<img src="doc/'.$donnees['image'].'" alt="image"/>'.$contenu . $lieu;
echo '<a href="'.$donnees['lien'].'" onclick="window.open(this.href); return false;">'.$donnees['lien'].'</a>';
echo '</div>';
} // Fin de la boucle des annonces
mysql_close();
?>
</body>
</html>
Après il te restera à vérifier le fichier que tu upload histoire de pas envoyer n'importe quoi. pourquoi ne pas utiliser directement la base donnée c'est plus simple nan ? (et moins de taff que de dépiler les mails ^^).
@+