<?php
include "session.php";
include "inc_menu.php";
?>
<h4><a href="index.php">Retour à la liste des actus</a></h4>
<h3>Nouvelle actualité</h3>
<?php
if (isset($_POST['envoye']))
{
/* Récupération des valeurs des champs du formulaire */
$titre = addslashes($_POST['titre']);
$date = $_POST['date'];
$texte = addslashes($_POST['texte']);
$lien = $_POST['lien'];
//----------------------------
// VARIABLES pour l'upload d'image
//----------------------------
$target = '../illustration/'; // Repertoire cible
$jpg = 'jpg'; // Extension du fichier sans le .
$gif = 'gif'; // Extension du fichier sans le .
$max_size = 400000; // Taille max en octets du fichier
$width_max = 300; // Largeur max de l'image en pixels
$height_max = 300; // Hauteur max de l'image en pixels
//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER image
//---------------------------------------------
$image = $_FILES['image']['name'];
$taille = $_FILES['image']['size'];
$tmp = $_FILES['image']['tmp_name'];
/* Expression régulière permettant de vérifier que le lien (adresse) est au bon format -*/
$regex_lien = '`^
http://[-[:alnum:]]+\.[-[:alnum:]]+\.[a-zA-Z]{2,4}(:[0-9]+)?$`';
/* Expression régulière permettant de vérifier qu'aucun en-tête n'est inséré dans nos champs */
$regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie
* vers la page d'accueil */
if($_SERVER['HTTP_REFERER'] != 'http://www.nomdedomaine/backoffice/new_actu.php')
{
header('Location:
http://www.nomdedomaine/module_news/index.php');
}
/* On vérifie que tous les champs sont remplis */
elseif (empty($date)
|| empty($titre)
|| empty($texte))
{$alert = 'Les champs "date", "titre" et "texte" doivent être renseignés';}
/* Si un lien est soumis on vérifie que son format est correct */
elseif ((!empty($lien)) && (!preg_match($regex_lien, $lien)) )
{
$alert = 'Mauvais format de lien : '.$lien.'<br/>L\'adresse doit être du type "http://www.adresse.truc" ou "http://nom.hebergeur.truc"';
}
/* On vérifie qu'il n'y a aucun header dans les champs */
elseif (preg_match($regex_head, $titre)
|| preg_match($regex_head, $date)
|| preg_match($regex_head, $texte)
|| preg_match($regex_head, $lien)
|| preg_match($regex_head, $image))
{ $alert = 'En-têtes interdites dans les champs du formulaire'; }
/* Si aucun problème on envoie les modifs*/
else
{
if (!empty($image))
{
if((substr($image, -3) == $jpg) OR (substr($image, -3) == $gif)) // On récupère les dimensions du fichier
{
$infos_img = getimagesize($_FILES['image']['tmp_name']); // On vérifie les dimensions et le poids de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['image']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['image']['tmp_name'],$target.$_FILES['image']['name']))
{
$sqlQuery = "INSERT INTO actu (titre, date, texte, lien, illus) VALUES ('$titre', '$date', '$texte', '$lien', '$image')";
if ($result = MYSQL_QUERY($sqlQuery)) {$alert='Nouvelle actu enregistrée !';} else {$alert='Il y a un problème, contactez le webmaster';}
}
else // Sinon on affiche une erreur système
{ $alert='Problème lors de l\'upload ! Contactez le webmaster';}
}
else // Sinon on affiche une erreur pour les dimensions et taille de l'image
{$alert='Problème dans les dimensions ou le poids de l\'image ! Poids maximum : 40 ko. Taille maximum : 300 pixels';}
}
else // Sinon on affiche une erreur pour l'extension
{$alert= 'Votre image ne comporte pas l\'extension .jpg ou.gif !'; }
}//fin de si une image est postée
else
{
$sqlQuery = "INSERT INTO actu (titre, date, texte, lien) VALUES ('$titre', '$date', '$texte', '$lien')";
if ($result = MYSQL_QUERY($sqlQuery)) {$alert='Nouvelle actu enregistrée !';} else {$alert='Il y a un problème, contactez le webmaster';}
}//fin de si pas d'image postée
}//fin d'envoi des modifs
} //fin de "si formulaire posté"
//----------------------
// FORMULAIRE
//----------------------
if (!empty($alert)) {echo '<p><span class="erreur">'.$alert.'</span></p>';}
echo '<form enctype="multipart/form-data" name="EditActuForm" action="'.$PHP_SELF.'" method="post">';
echo '<fieldset>';
echo '<p>';
echo '<label for="titre">Titre :</label>';
echo '<input type="text" id="titre" name="titre" size="40" value=""/>';
echo '</p>';
echo '<p>';
echo '<label for="date">Date :</label>';
echo '<input type="text" id="date" name="date" size="15" value=""/> <a href="javascript
:show_calendar(\'EditActuForm.date\');">> Sélectionnez une date</a>';
echo '</p>';
echo '<p>';
echo '<label for="texte">Texte :</label>';
echo '<textarea id="texte" name="texte" cols="37" rows="4">';
echo '</textarea>';
echo '</p>';
echo '<p>';
echo '<label for="lien">Lien :</label>';
echo '<input type="text" id="lien" name="lien" size="40" value=""/>';
echo '</p>';
echo '<p>';
echo '<label for="image">Illustration :</label>';
echo '<input type="file" id="image" name="image"/>';
echo '</p>';
echo '<input type="submit" name="envoye" value="Enregistrer"/>';
echo '</fieldset>';
echo '</form>';
?>
</body>
</html>
Partager