Voilà j'ai bidouillé un code d'administration de news contenant 3 champs : titre, contenu et une image qui se redimensionne automatique grace à gd. Mais le problème c'est qu'il ne m'écrit pas dans la table. Rien ne se passe, aucune erreur n'est renvoyée, il ne se passe vraiment rien... Il y a surement une erreur dans le code, et j'ai peur que se soit au niveau du code d'upload de l'image, car c'est l'ajout que j'ai fait à ce script qui marche très bien à la base.
Merci de votre aide :)
Voici les 2 fichiers php :
liste_news.php
CODE
<?php
mysql_connect("", "", "");
mysql_select_db("");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['fname']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
$fname = addslashes($_POST['fname']);
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news'] == 0)
{
//-----------------------------------------------------
// Code image
//-----------------------------------------------------
// Taille maximum
$MAX_FILE_SIZE = 300000;
// Dossier de destination du fichier
$folder = "../images/news/";
// Tableau array des différents types
$allowed_types = array("image/jpeg");
// Variables récupérées par methode POST du formulaire
$fname = $HTTP_POST_FILES['fichier']['name'];
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
// Diverses test afin de savoir si :
// Le fichier n'est pas une image jpeg
if(!in_array($ftype, $allowed_types)){$error = 1;}
// La taille du fichier est trop grande
if($fize > $MAX_FILE_SIZE){$error = 2;}
// Le fichier existe déjà
if(file_exists($folder."m_".$fname)){$error = 3;}
// Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
// Switch servant simplement à la gestion des erreurs
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Format de fichier incorrecte. Uniquement .jpeg");
break;
case'2':
echo("Fichier trop volumineux.");
break;
case'3':
echo("Fichier déjà existant.");
break;
}
// Création de la miniature
$source = imagecreatefromjpeg($ftmp); // La photo est la source
$folder = "../images/news/thumbnails/"; // Dossier de destination de la miniature
$destination = imagecreatetruecolor(200, 200); // On crée la miniature vide
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
// On enregistre la miniature
imagejpeg($destination,''.$folder.''.$fname.'');
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $fname . "', '" . time() . "')");
}
else
{
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news'] = addslashes($_POST['id_news']);
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<p> </p>
<p class="smallText">
<table width="324" height="50" align="center" bgcolor="#000000" class="cadre"><tr background="../../data_index2/cellpic1.png">
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table></p>
mysql_connect("", "", "");
mysql_select_db("");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['fname']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
$fname = addslashes($_POST['fname']);
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news'] == 0)
{
//-----------------------------------------------------
// Code image
//-----------------------------------------------------
// Taille maximum
$MAX_FILE_SIZE = 300000;
// Dossier de destination du fichier
$folder = "../images/news/";
// Tableau array des différents types
$allowed_types = array("image/jpeg");
// Variables récupérées par methode POST du formulaire
$fname = $HTTP_POST_FILES['fichier']['name'];
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
// Diverses test afin de savoir si :
// Le fichier n'est pas une image jpeg
if(!in_array($ftype, $allowed_types)){$error = 1;}
// La taille du fichier est trop grande
if($fize > $MAX_FILE_SIZE){$error = 2;}
// Le fichier existe déjà
if(file_exists($folder."m_".$fname)){$error = 3;}
// Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
// Switch servant simplement à la gestion des erreurs
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Format de fichier incorrecte. Uniquement .jpeg");
break;
case'2':
echo("Fichier trop volumineux.");
break;
case'3':
echo("Fichier déjà existant.");
break;
}
// Création de la miniature
$source = imagecreatefromjpeg($ftmp); // La photo est la source
$folder = "../images/news/thumbnails/"; // Dossier de destination de la miniature
$destination = imagecreatetruecolor(200, 200); // On crée la miniature vide
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
// On enregistre la miniature
imagejpeg($destination,''.$folder.''.$fname.'');
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $fname . "', '" . time() . "')");
}
else
{
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news'] = addslashes($_POST['id_news']);
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<p> </p>
<p class="smallText">
<table width="324" height="50" align="center" bgcolor="#000000" class="cadre"><tr background="../../data_index2/cellpic1.png">
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table></p>
rediger_news.php
CODE
<?php
mysql_connect("", "", "");
mysql_select_db("");
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
// On protège la variable "modifier_news" pour éviter une faille SQL
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);
// On place le titre et le contenu dans des variables simples
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
// Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
$titre = '';
$contenu = '';
$fname = '';
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="liste_news.php" enctype="multipart/form-data" method="post">
<p align="center"><span class="smallText">Titre :</span>
<input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p align="center">
<span class="smallText">Contenu :</span><br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" /><br>
<span class="smallText">Image : </span>
<input name="fichier" type="file"/><br><br>
<input type="submit" value="Envoyer" />
</p>
</form></p>
mysql_connect("", "", "");
mysql_select_db("");
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
// On protège la variable "modifier_news" pour éviter une faille SQL
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);
// On place le titre et le contenu dans des variables simples
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
// Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
$titre = '';
$contenu = '';
$fname = '';
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="liste_news.php" enctype="multipart/form-data" method="post">
<p align="center"><span class="smallText">Titre :</span>
<input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p align="center">
<span class="smallText">Contenu :</span><br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" /><br>
<span class="smallText">Image : </span>
<input name="fichier" type="file"/><br><br>
<input type="submit" value="Envoyer" />
</p>
</form></p>
