JuliuStation

Inscris le 26/04/2010 à 09:52
  • Nombre de sujets
    1
  • Nombre de messages
    4
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
JuliuStation
Bonjour / Bonsoir
Dans le cadre d'un site "marchand", je souhaite faire un tableau qui se générerait dynamiquement lorsque quelqu'un uploaderait un nouveau produit (Une nouvelle ligne pour chaque nouveau produit). Mais quelques problèmes se posent à moi.

Tout d'abord, je souhaiterais que mon script renomme une image au moment où elle est uploadée. Voila le script qui receptionne le formulaire d'envoi :
<?php

$connexion = mysql_connect("localhost", "xx", "xx");
$selection_bd = mysql_select_db("xxxx", $connexion);


if(isset($_POST['nom'])) $nom = $_POST['nom']; else $nom="";
if(isset($_POST['appellation'])) $appellation = $_POST['appellation']; else $appellation="";
if(isset($_POST['millesime'])) $millesime = $_POST['millesime']; else $millesime="";
if(isset($_POST['description'])) $description = $_POST['description']; else $description="";
if(isset($_FILES['image'])) $image = $_FILES['image']['name'];

if (empty($_POST['nom']) ){
echo "Erreur : le nom n'a pas été donné.";
}else if (empty($_POST['appellation']) ){
echo "Erreur : l'appellation n'a pas été donnée.";
}else if (empty($_POST['millesime']) ){
echo "Erreur : le millésime de ce vin n'a pas été donné.";
}else if (empty($_POST['description']) ){
echo "Erreur : la description n'a pas été donnée.";
}else if(empty($_FILES['image']['tmp_name'])){
echo "Erreur : Aucune image n'a été choisie.";
}

$requete= "INSERT INTO catalogue_cdc VALUES (NULL, '$nom', '$appellation', '$millesime', '$description', '$image')";
//LANCEMENT DE LA REQUETE EN TEXTE
$resultat= mysql_query($requete);

if (is_uploaded_file($_FILES['image']['tmp_name'])) {

copy($_FILES['image']['tmp_name'], "./images/catalogue/" . $_FILES['image']['name']);
echo "L'envoi a été effectué.<br/> <a href='ajout_vin.php'>Effectuer un autre envoi</a>&nbsp;&nbsp;<a href='select.php'>Visionnez le catalogue du site</a>";
} else { echo "L'envoi a échoué <a href='ajout_vin.php'>Réessayer</a>";}
mysql_close($connexion);
?>

Je souhaiterais donc que les images soient renommées, comme par exemple "img01.jpg","img02.jpg","img03.jpg", etc. afin que je puisse les appeler par ailleurs en incrémentant dans une boucle for
Quelques suggestions ?

Ses derniers messages sur les forums

forum
JuliuStation
Ah d'accord, je crois avoir compris où je bloquais. En fait j'imaginais qu'un script d'envoi restait en sécurité à partir du moment où il n'était pas mis en ligne avec le reste du site.. Mais je suppose que comme l'envoi s'effectue en HTTP, il y a nécéssairement besoin de mettre les deux côtés (formulaire.php / envoi_bdd.php) tout deux en ligne pour que le protocole soit valide ? C'est peut être une question conne ^^'

Bref, voila un début de code pour sécuriser l'envoi :
//MEGA CONDITION DE CONTRÔLE DU FICHIER
//VERIF DU POIDS DU FICHIER <800ko (D'ABORD SUR LA MACHINE LOCALE -> 'name') ("filesize" plus sécurisé que $_FILES['size'])
if (filesize($_FILES['image']['name'])<800000){
echo "Le poids de l'image est supérieure à la limite autorisée (800Ko). Réduisez celle-ci.";}
// VERIF DU FORMAT DU FICHIER (.GIF OBLIGATOIRE)
else if(exif_imagetype($_FILES['image']['name']) != IMAGETYPE_GIF){
echo "Le type d'image n'est pas valide. Ce script ne tolère que le .gif";}
else if (is_uploaded_file($_FILES['image']['tmp_name'])== FALSE) {
echo "Il y a eut un problème lors de l'upload de l'image";}

//COPIE DU FICHIER TEMPORAIRE VERS DOSSIER (BDD) .
else {
copy($_FILES['image']['tmp_name'], "./images/catalogue/" . $_FILES['image']['name']);
echo "L'envoi a été effectué.<br/> <a href='ajout_vin.php'>Effectuer un autre envoi</a>&nbsp;&nbsp;<a href='select.php'>Visionnez le catalogue du site</a>";
} else { echo "L'envoi a échoué <a href='ajout_vin.php'>Réessayer</a>";}


Il semble y avoir encore quelques soucis. N'hésitez pas à me dire ce qui ne va pas.
JuliuStation
Ah si, j'y pense.. Il faudrait faire une vérif par rapport à l'extension quand même, pour que ce soit toujours le même format image uploadé, histoire que je puisse aller les chercher après par une simple incrémentation en boucle.

Mais j'ai cru comprendre que $_FILES['type'] était peu fiable selon les navigateurs non ?
JuliuStation
Je préfère laisser le choix de laisser un champ libre, au cas où il manquerait des infos sur le produit, ce qui peut arriver.

Pour la sécurité, il s'agit d'un envoi uniquement en backoffice, ca ne sera que du côté propriétaire que l'envoie des fichiers se feront, donc ils n'auront aucun intérêt à attaquer leur propre site.

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours