Upload de fichiers problématique
Posté : 16 févr. 2008, 15:29
Bonjour à tous,
Déjà, désolé si je ne poste pas ce message à la bonne place, c'est la première fois que je met les pieds sur ce forum...
J'ai un gros souci avec mon code d'upload de fichiers. Tout à l'air de fonctionner normalement, seulement rien ne s'enregistre dans la base de donnée. Inutile de dire que c'est assez frustrant!!!
Je n'arrive pas à voir où ça coince. Le login (username et mot de passe) sont bons. Un de vous pourra-t'il me dire où est le problème?
Merci d'avance!!!
Teng'
PS: Je met le code et la structure de la BDD...
PS2: La page s'appelle rediger_news.php…

Déjà, désolé si je ne poste pas ce message à la bonne place, c'est la première fois que je met les pieds sur ce forum...
J'ai un gros souci avec mon code d'upload de fichiers. Tout à l'air de fonctionner normalement, seulement rien ne s'enregistre dans la base de donnée. Inutile de dire que c'est assez frustrant!!!
Je n'arrive pas à voir où ça coince. Le login (username et mot de passe) sont bons. Un de vous pourra-t'il me dire où est le problème?
Merci d'avance!!!
Teng'
PS: Je met le code et la structure de la BDD...
PS2: La page s'appelle rediger_news.php…

<?php
//Initialisation de la variables $infos
$infos = '';
//Initialisation des variables du formulaire (mise à '' si elles sont vides)
empty($_POST['contenu']) ? $contenu = '' : $contenu = htmlentities(addslashes($_POST['contenu']));
empty($_POST['titre_news']) ? $titre_news = '' : $titre_news = htmlentities(addslashes($_POST['titre_news']));
empty($_POST['titre']) ? $titre = '' : $titre = htmlentities(addslashes($_POST['titre']));
//Vérification du titre de la news, du contenu et du titre du fichier
if ($titre_news == '')
{ $infos .= "- Vous devez définir le titre de la news!<br>";
}
if ($contenu == '')
{ $infos .= "- Vous devez entrer le contenu de la news!<br>";
}
if ($titre == '')
{ $infos .= "- Vous devez donner un titre au fichier chargé!<br/>";
}
//Pour savoir si le fichier a été uploadé, on vérifie que le fichier est bien dans le tableau des fichiers
if (!empty($_FILES['fichier']['size']))
{ //On récupère la taille, le nom et le nom du fichier temporaire
$f1_size = $_FILES['fichier']['size'];
$f1_name = $_FILES['fichier']['name'];
$f1_tmpname = $_FILES['fichier']['tmp_name'];
//Récupération de l'extension du fichier (on prend ce qui suit le dernier point et on le met en minuscule
$ext = strtolower(substr($f1_name,strrpos($f1_name, ".")+1));
//Création du tableau des extensions acceptées
$valides = array("jpg","pdf","doc","xls");
//On vérifie la taille et le type de fichier
if ($f1_size > 3000000)
{ $infos .= "- Le fichier est trop volumineux!<br>";
}
if (!in_array($ext,$valides))
{ $infos .= "- Ce type de fichier n'est pas accepté!<br>";
}
//Si tout est bon (aucune erreur dans $infos), on déplace le fichier
if ($infos == '')
{ move_uploaded_file($f1_tmpname, "../fichiers/{$f1_name}") or $infos .= "- Impossible d'enregistrer la news, contacter le webmaster!<br>";
}
if ($infos == '')
{ //Connection à la base de donnée
mysql_connect("localhost", "***", "***") or die (mysql_error());
mysql_select_db("nosoiseauxch1");
mysql_query("INSERT INTO news VALUES ('','$titre_news','$contenu', 'titre','$f1_name', '$f1_size' );") or die (mysql_error());
}
}
//Si le formulaire n'a pas encore été validé, on n'affiche pas les erreurs
if (empty($_POST['MAX_FILE_SIZE'])) $infos = '';
//Si il y a eu une erreur ou si le formulaire n'a pas encore été validé (Facile à savoir, tant que le formulaire n'est pas validé, MAX_FILE_SIZE est vide), on l'affiche
if ($infos != '' || empty($_POST['MAX_FILE_SIZE'])):
?>
<p><span style="color:red"><?php echo $infos; ?></span></p>
<form method="post" action="rediger_news.php" enctype="multipart/form-data">
<label for="titre_news">Titre de la news:</label><br/>
<input type="text" name="titre_news" id="titre_news"/><br/>
<label for="contenu">Contenu de la news:</label><br />
<textarea name="contenu" id="contenu"></textarea><br />
<label for="fichier">Fichier (max. 3Mo):</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
<input type="file" name="mon_fichier" id="mon_fichier" /><br />
<label for="titre">Titre du fichier (max 80 caractères):</label><br />
<input type="text" name="titre" value="Titre du fichier" id="titre" /><br />
<input type="submit" name="submit" value="Envoyer" />
</form>
<?php ENDif;
if ($infos == '' && !empty($_POST['MAX_FILE_SIZE']))
{
?>
<p>Transfert réussi!</p>
<?php
}
?>