J' ai l' habitude d' utiliser le tp de script de news, et j' ai decidé de le melanger avec celui sur l' upload.
Ca fonctionne a un detail prés, j' ai dans ma bdd les chaps ID CAT et IMAGE
IMAGE est juste censé enregistrer le nom de l' image modifié. Je ne sais pas pourquoi j' ai juste un gros "Array" a la place du nom de l' image.
id bigint(20)
cat varchar(255)
image text
voici le code:
<?php
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une cat ?
//-----------------------------------------------------
if (isset($_POST['titre2']))
{
$titre2 = addslashes($_POST['titre2']);
$photo = $_FILES['photo'];
$dossier = '../themes/'.$config['theme'].'/images/miniatures/';
$fichier = time()."_".$_FILES['photo']['name'];
$taille_maxi = 5000000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
}
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
?>
<?php
// On vérifie si c'est une modification de cat ou pas
if ($_POST['id_cat'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO cat VALUES('', '" . $titre2 . "', '" . $_FILES['photo'] . "')");
}
else
{
// On protège la variable "id_cat" pour éviter une faille SQL
$_POST['id_cat'] = addslashes($_POST['id_cat']);
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE cat SET titre='" . $titre2 . "', image='" . $photo . "' WHERE id='" . $_POST['id_cat'] . "'");
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une cat ?
//--------------------------------------------------------
if (isset($_GET['supprimer_cat'])) // Si on demande de supprimer une cat
{
// Alors on supprime la cat correspondante
// On protège la variable "id_cat" pour éviter une faille SQL
$_GET['supprimer_cat'] = addslashes($_GET['supprimer_cat']);
mysql_query('DELETE FROM cat WHERE id=\'' . $_GET['supprimer_cat'] . '\'');
}
?>
<table width="700">
<tr>
<th width="112" align="left" valign="top">Modifier</th>
<th width="138" align="left" valign="top">Supprimer</th>
<th width="434" align="center" valign="top">Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM cat ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les cat
{
?>
<tr>
<td align="left" valign="top"><?php echo '<a href="rediger_cat.php?modifier_cat=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td align="left" valign="top"><?php echo '<a href="liste_cat.php?supprimer_cat=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td align="left" valign="top"><?php echo stripslashes($donnees['cat']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les cat
?>