Petit nouveau ! |
9 Messages
15 juin 2008, 16:37
Bonjour,
je ne vais pas vous laisser comme ça

j'ai encore un problème:
j'ai ajouter la fonction date("his") histoire de ne pas écraser les images du même nom ce qui donne un truc genre 043020maphoto.jpg au lieu de maphoto.jpg. le problème c'est que ma BDD ne récupère pas 043020maphoto.jpg mais plutôt maphoto.jpg une fois que le formulaire est envoyé.
<?php
// Si les variables existent
if (isset($_POST['titre']) AND isset($_POST['lien']) AND isset($_FILES['image']))
{
// Si on a quelque chose à enregistrer
if ($_POST['titre'] != NULL AND $_POST['lien'] != NULL AND $_FILES['image'] != NULL)
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("projet");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$titre = mysql_real_escape_string(htmlspecialchars($_POST['titre']));
$lien = mysql_real_escape_string(htmlspecialchars($_POST['lien']));
$image = ($_FILES['image']['name']);
// Ensuite on enregistre le message
mysql_query("INSERT INTO albums VALUES('', '$titre', '$lien', '$image', '".time()."')");
// On se déconnecte de MySQL
mysql_close();
}
}
?>
<?php
$dossier = '../images/';
$fichier = basename($_FILES['image']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['image']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image']['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, txt ou doc...';
}
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);
if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . date("his") . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Code : Tout sélectionner
<form id="formulaires" action="upload.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Informations personnelles</legend>
<p>
<label for="form_titre"><strong>Titre : </strong></label>
<input type="text" name="titre" />
</p>
<p>
<label for="form_lien"><strong>Lien : </strong></label>
<input type="text" name="lien" />
</p>
<p>
<label for="form_image"><strong>Image : </strong></label>
<input type="file" name="image" />
</p>
<p>
<input id="envoyer" type="submit" value="Envoyer" />
</fieldset>
</p>
</form>
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]