Bonjour à Tous,
je me penche depuis peux à l'upload de fichier couplé à la base de données.
Tous c'est parfaitement passé, alors je voudrais l' améliorer,
Je voudrais que lorsque l' on enregistre un partenaire dans la BDD et que le champs d' image n' a pas été renseigné (en clair si l'on ne veu pas déposer de photo) le champs soit vide (ou conserve celui qui était déja renseigné si il s' agit d' une modification)
Voici ce que j'ai pour le moment, un simple upload
ajout_partenaire.php :
<!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>Ajouter un partenaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
label {
display:block;
width:150px;
float:left;
}
</style>
</head>
<body>
<h1>Ajouter un partenaire</h1>
<form method='POST' action='confirm_ajoutpartenaire.php' enctype='multipart/form-data'>
<p>
<label for="titre">Nom : </label><input type="text" name="titre" id="titre" /><br />
<label for="descriptif">Description : </label><textarea name="descriptif" id="descriptif" rows="10" cols="50"></textarea><br />
<label for="lien">Lien : </label><input type="text" name="lien" id="lien" /><br />
<input type='hidden' name='MAX_FILE_SIZE' value='250000'>
<input type='file' name='fichier'>
<input type='submit' value='Envoyer'>
</p>
</form>
</body>
</html>
et confirm_ajoutpartenaire.php
<?php
include('connect.php');
$titre = mysql_escape_string($_POST['titre']);
$descriptif = mysql_escape_string($_POST['descriptif']);
$lien = mysql_escape_string($_POST['lien']);
$dossier = 'img/partenaire/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['fichier']['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...';
}
if(($taille)>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//formatage du nom (suppression des accents, remplacements des espaces par "-")
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //correct si la fonction renvoie TRUE
{
echo 'Upload effectué avec succès !';
$chemin = $dossier . $fichier;
mysql_query("INSERT INTO partenaire (`titre`,`descriptif`,`img_chemin`,`lien`) VALUES ('$titre','$descriptif','$chemin','$lien');") or die (mysql_error());
}
else //sinon, cas où la fonction renvoie FALSE
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Si quelqu' un a une idée je suis preneur
Il vaut mieux une bière dans une main que deux n' importe quoi d' autre