Bonjour, je suis nouveau sur ce forum et c'est avec désespoir que je post ici afin d'avoir de l'aide, je vous préviens je suis un très grand débutant qui essaye de comprendre j'ai donc fait un script d'upload de 4 images a partir d'une class qui me crée la miniature, il se trouve que je souhaiterais que le script renommer mes images automatiquement avec un time() ou un rename ou rand() etc...... avant de l'uplodé sur le serveur et de l'inséré dans ma BDD, je joins tous le code mais attention je vous demande juste un peu d'indulgence je suis vraiment débutant dans le domaine et il se peu que mon code pour certain le trouverons vraiment nul, si par contre vous avez des chose a me conseiller etcc vos idée et vos conseille seront les bien venu.

Pouvez-vous me dire a partir de ce script a quel moment et a quel endroit je peu placé un bout de code qui me permettre de renommer mes images par la date et l'heure d'aujourd'hui ou par une incrémentation pour éviter d'avoir le même nom d'image sur mon serveur.



require "../imgClass.php";
require "../config.php";

/* Appel du fichier contenant la fonction pagination() */
include('../libs/pagination.php');

/* Connexion à la BDD (se place normalement dans un fichier externe) */
define('DB_HOST', '....');
define('DB_USER', '....');
define('DB_PASSWORD', '....');
define('DB_NAME', '....');
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$dbc)
{
trigger_error('Connexion à la BDD impossible : ' . mysqli_connect_error() );
exit();
}

//Traitement données.
if(!empty($_FILES)){
$img = $_FILES['img'];
$img2 = $_FILES['img2'];
$img3 = $_FILES['img3'];
$img4 = $_FILES['img4'];

$ext = strtolower(substr($img['name'],-3));
$ext = strtolower(substr($img2['name'],-3));
$ext = strtolower(substr($img3['name'],-3));
$ext = strtolower(substr($img4['name'],-3));

$allow_ext = array('jpg');//posibilité d'ajouter des extentions autre exemple('jpg','png','gif')
$erreur1 = '';
if(empty($_FILES['img']['name'])
|| empty($_FILES['img2']['name'])
|| empty($_FILES['img3']['name'])
|| empty($_FILES['img4']['name']))
{
$erreur1 = '<h2 style="font-weight:bold; font-size:19px; margin:1px 323px">Veuillez charger toutes les images !</h2>';
}

$erreur2 = '';
if((file_exists('../../photos-motos-occasions/grand-format/'.$img['name']))
|| (file_exists('../../photos-motos-occasions/grand-format/'.$img2['name']))
|| (file_exists('../../photos-motos-occasions/grand-format/'.$img3['name']))
|| (file_exists('../../photos-motos-occasions/grand-format/'.$img4['name'])))
{
$erreur2 = '<h2 style="font-weight:bold; font-size:19px; margin:1px 323px">Le nom d\'une des images existe déja !</h2>';
}
else{


if(in_array($ext,$allow_ext)){
move_uploaded_file($img['tmp_name'],"../../photos-motos-occasions/grand-format/".$img['name']);
move_uploaded_file($img2['tmp_name'],"../../photos-motos-occasions/grand-format/".$img2['name']);
move_uploaded_file($img3['tmp_name'],"../../photos-motos-occasions/grand-format/".$img3['name']);
move_uploaded_file($img4['tmp_name'],"../../photos-motos-occasions/grand-format/".$img4['name']);

Img::creerMin("../../photos-motos-occasions/grand-format/".$img['name'],"../../photos-motos-occasions/photo-annonce/",$img['name'],170,128);

Img::creerMin("../../photos-motos-occasions/grand-format/".$img2['name'],"../../photos-motos-occasions/min/",$img2['name'],140,68);

Img::creerMin("../../photos-motos-occasions/grand-format/".$img3['name'],"../../photos-motos-occasions/min/",$img3['name'],140,68);

Img::creerMin("../../photos-motos-occasions/grand-format/".$img4['name'],"../../photos-motos-occasions/min/",$img4['name'],140,68);


Img::convertirJPG("../../photos-motos-occasions/grand-format/".$img['name']);
Img::convertirJPG("../../photos-motos-occasions/grand-format/".$img2['name']);
Img::convertirJPG("../../photos-motos-occasions/grand-format/".$img3['name']);
Img::convertirJPG("../../photos-motos-occasions/grand-format/".$img4['name']);
extract($_POST);
$GrandFormat1 = "../../photos-motos-occasions/grand-format/".$img2['name'];
$GrandFormat2 = "../../photos-motos-occasions/grand-format/".$img3['name'];
$GrandFormat3 = "../../photos-motos-occasions/grand-format/".$img4['name'];
$PhotoAnnonce = "../../photos-motos-occasions/photo-annonce/".$img['name'];
$PhotoAnnonce2 = "../../photos-motos-occasions/grand-format/".$img['name'];
$Miniature1 = "../../photos-motos-occasions/min/".$img2['name'];
$Miniature2 = "../../photos-motos-occasions/min/".$img3['name'];
$Miniature3 = "../../photos-motos-occasions/min/".$img4['name'];

$date = $_POST['date'];
$sql="INSERT INTO motosOccasions (
titreAnnonce,
Cyleindre,
Annee,
Prix,
AncienPrix,
Type,
Marque,
Modele,
Couleur,
MiseEnCirculation,
Kilometrage,
Garantie,
Descriptif,
GrandFormat1,
GrandFormat2,
GrandFormat3,
PhotoAnnonce,
PhotoAnnonce2,
Miniature1,
Miniature2,
Miniature3,

date) VALUES (

'".mysql_real_escape_string($titreAnnonce)."',
'".mysql_real_escape_string($Cyleindre)."',
'".$Annee."',
'".$Prix."',
'".$AncienPrix."',
'".mysql_real_escape_string($Type)."',
'".mysql_real_escape_string($Marque)."',
'".mysql_real_escape_string($Modele)."',
'".mysql_real_escape_string($Couleur)."',
'".mysql_real_escape_string($MiseEnCirculation)."',
'".$Kilometrage."',
'".mysql_real_escape_string($Garantie)."',
'".mysql_real_escape_string($Descriptif)."',
'".$GrandFormat1."',
'".$GrandFormat2."',
'".$GrandFormat3."',
'".$PhotoAnnonce."',
'".$PhotoAnnonce2."',
'".$Miniature1."',
'".$Miniature2."',
'".$Miniature3."',
NOW())";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
if($req);
$modif = "<img style=\"margin:-7px 460px;\" src=\"../images/valide.gif\"/><h2 style=\"margin:-13px 110px -4px; color:GreenYellow\">Nouvelle annonce importer avec succé</h2>";

}
else{
$nonmodif = "<img style=\"margin:-7px 460px;\" src=\"../images/error.gif\"/><h2 style=\"margin:-13px 110px -4px; color:GreenYellow\">Votre fichier n'est pas une image JPG ou un fichier non conforme</h2>";
}
}
}


Modifié par lorenzo16000 (11 Mar 2011 - 17:02)
Alors, alors, alors ... plusieurs choses qui devraient t'aider à optimiser ton dév Smiley cligne

1. Si tu veux modifier ton nom de fichier, tu peux le faire (par exemple après avoir déterminé l'extension), en faisant un :

/* Récupère le nom du fichier sans l'extension, ajoute la date yyyymmjj, puis rajoute l'extension */
$img['name'] = basename($img['name'], '.' . $ext) . date('Ymd') . '.' .$ext;


2. Tu te répètes souvent en appliquant les mêmes traitements sur 4 fichiers différents. Passe plutôt par une boucle foreach, du type :

foreach($_FILES as $file) {
    // ton traitement sur ton fichier
    // ...
}

Ca te réduira le risque d'erreur, ça t'évite la contrainte d'envoyer systématiquement 4 images (si j'en ai que 3, il se passe quoi ?!) ... Et surtout, c'est beaucoup plus simple à maintenir et à relire ...
Règle de base : DRY (Don't Repeat Yourself) Smiley cligne

3. Pour te connecter à ta BDD, je passerais plutôt sur PDO, qui est la couche d'abstraction de PHP aux bases de données. De cette façon, si ton hébergement change demain, et passe de MySQL à PostgreSQL (par exemple), tu n'as pas tous tes appels en BDD à ré-écrire, mais seulement la ligne de connexion Smiley cligne

4. Si tu veux vraiement gérer des messages d'erreurs (excellente initiative), regarde du côté de la gestion des Exceptions dans PHP, ça te permettra d'améliorer encore ton code ...

Bon courage pour la suite !