Il y a actuellement 259 visiteurs
Vendredi 04 Avril 2025
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Problème codage PHP

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Problème codage PHP

Message le 09 Sep 2009 21:45

Bonsoir à toutes et tous,

Il y a quelques jours, j'ai fait appel à ce forum pour m'aider dans la gestion de l'upload d'un fichier, aujourd'hui je reviens, car arès avoir obtenu de bons éléments de réponse, je me heurte à un nouveau problème.
Le changement de nom de mes fichiers (je souhaiterai que chaque fichier uploadé sois copié avec un nom unique pour chaque visiteur (pas de gestion d'ID sur le site) et un n° d'ordre (ex : fichier001.jpg, fichier002.jpg etc..), mais que si un visiteur suivant upload des images à son tour, que ces dernières ne portent pas le même nom (ex : image001.jpg, image002.jpg, etc...) et ainsi de suite.

Le formulaire de téléchargement comporte 20 champs de sélection de fichier.

Voici un extrait du code php que j'envisage d'utiliser, mais pour l'instant, il ne présente pas d'erreur mais ne fait rien, de plus, débutant en PHP (et en programmation en général), je pense qu'il doit manquer des choses....

<?php

// traitement PHOTO 01
if ($_FILES['phot01']['size'] > $maxsize) $erreur = "La photo 1 est trop lourde.";
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
$extension_upload = strtolower( substr( strrchr($_FILES['phot01']['name'], '.') ,1) );
if ( in_array($extension_upload,$extensions_valides) ) ;


CETTE OPERATION EST REPETEE 20 FOIS (phot02, phot03, etc..

echo "Les photos sélectionnées sont correctes, début du transfert.";

$var = md5(uniqid(rand(), true));
$direc = 'commandes/';


echo "Envoi de la photo 01... Veuillez patienter, merci !";
$nom = "01/{&var}.{$extension_upload}";
$resultat = move_uploaded_file($_FILES['phot01']['tmp_name'],$nom, 'commandes/'); //, $direc;
if ($resultat) echo "Photo 01, transfert réussi";

echo "Envoi de la photo 02... Veuillez patienter, merci !";


LA ENCORE, ON REPETE 20 FOIS L'OPERATION

echo "Transfert complet.";

?>


Ah oui, encore une petite chose, je ne sais pas si la définition d'un répertoire de destination est correcte.

Je ne fais pas de test sur la taille du fichier, c'est voulu.

Merci à toutes celles et ceux qui voudront bien accorder un peu de leur temps à étudier mon problème.
Cordialement,

nonove
nonove
Visiteur
Visiteur
 
Messages: 9
Inscription: 07 Sep 2009 20:14
 


Message le 09 Sep 2009 22:20

Bonsoir,

En fait tout n'est pas clair... Serait-il possible de savoir ce que vous voulez faire exactement ? Uploader 20 images depuis un seul formulaire contenant 20 champs ? Uploader 20 images l'une après l'autre en cliquant sur un bouton suivant.

L'aspect, changement de nom de fichier n'est trop un problème... C'est assez secondaire dans le cas présent...
Avatar de l'utilisateur
webmaster
Big Boss
Big Boss
 
Messages: 4909
Inscription: 11 Jan 2002 01:00
 

Message le 09 Sep 2009 22:30

Re-bonsoir,

Ce que je cherche à faire est clair pour moi, mais à expliquer, j'ai un peu tendance à "alourdir" la chose, désolé.
En fait, j'ai un formulaire contenant 20 champs (de type "input type file"), ce qui permet à un visiteur d'uploader jusqu'à 20 images en une seule fois. Ce qui explique que je renouvelle mes codes 20 fois, en modifiant à chaque fois le nom du fichier (phot01, phot02, etc...)

J'espère être plus clair comme ça.
Merci d'avance de votre aide.
Cordialement,
nonove
nonove
Visiteur
Visiteur
 
Messages: 9
Inscription: 07 Sep 2009 20:14
 

Message le 09 Sep 2009 22:38

Ok, peux tu me mettre sur cette pages le code du formulaire avec tous les champs ?
Avatar de l'utilisateur
webmaster
Big Boss
Big Boss
 
Messages: 4909
Inscription: 11 Jan 2002 01:00
 

Message le 09 Sep 2009 22:43

Sans problème, le voici, mais, petit rappel, je débute en programmation et il est possible que ce ne soit pas très "propre"...

<h1> Transfert de fichiers</h1>
<form action="trans20.php" method="post" enctype="multipart/form-data" name="form20" id="form20">
<p align="center">Photo 01
<input type="file" name="phot01" id="phot01" />
Photo 02
<input type="file" name="phot02" id="phot02" />
</p>
<p align="center">Photo 03
<input type="file" name="phot03" id="phot03" />
Photo 04
<input type="file" name="Phot04" id="Phot04" />
</p>
<p align="center">Photo 05
<input type="file" name="phot05" id="phot05" />
Photo 06
<input type="file" name="phot06" id="phot06" />
</p>
<p align="center">Photo 07
<input type="file" name="phot07" id="phot07" />
Photo 08
<input type="file" name="phot08" id="phot08" />
</p>
<p align="center">Photo 09
<input type="file" name="phot09" id="phot09" />
Photo 10
<input type="file" name="phot10" id="phot10" />
</p>
<p align="center">Photo 11
<input type="file" name="phot11" id="phot11" />
Photo 12
<input type="file" name="phot12" id="phot12" />
</p>
<p align="center">Photo 13
<input type="file" name="phot13" id="phot13" />
Photo 14
<input type="file" name="phot14" id="phot14" />
</p>
<p align="center">Photo 15
<input type="file" name="phot15" id="phot15" />
Photo 16
<input type="file" name="phot16" id="phot16" />
</p>
<p align="center">Photo 17
<input type="file" name="phot17" id="phot17" />
Photo 18
<input type="file" name="phot18" id="phot18" />
</p>
<p align="center">Photo 19
<input type="file" name="phot19" id="phot19" />
Photo 20
<input type="file" name="phot20" id="phot20" />
</p>
<p align="center">
<input type="submit" name="transfert" id="transfert" value="Vérification et envoi des photos" />
</p>
</form>


Voilà, bon courage !
nonove
Visiteur
Visiteur
 
Messages: 9
Inscription: 07 Sep 2009 20:14
 

Message le 10 Sep 2009 07:54

Si tu sais déjà uploader correctement une image, on va donc commencer par le problème du traitement des données du fomulaire avec un boucle au lieu de faire 20 fois le même code.

Pour commencer appèle tes phot1, phot 2et non pas phot01, phot02 dans le formulaire. Ensuite voici une petite boucle toute simple pour uploader tes images en série... On verra déjà si cela fonctionne comme ça avant de traiter l'histoire des nom de fichiers.


// -- Prise en charge de la variable photxx provenant du formulaiure --

$nombre_image_max = 20;
$i=1;

while ($i<=$nombre_image_max){
$image_name = "phot" . $i;

if (isset($_POST["$image_name"])){ // Si la valeur $photxx n'est pas définie on la laisse vide

--> ici tu ajoute ta fonction d'upload d'image sachant de la nom de l'image à uploder est dans $_POST["$image_name"]
}

$i++;
}


Si tu t'en sors avec ça c'est déjà pas mal et on regardera ensuite pour l'histoire des noms d'images...
Avatar de l'utilisateur
webmaster
Big Boss
Big Boss
 
Messages: 4909
Inscription: 11 Jan 2002 01:00
 

Merci et désolé

Message le 25 Sep 2009 21:57

Bonsoir Webmaster,

Tout d'abord, désolé de ne pas avoir donné de nouvelles, mais, déplacement professionnel oblige, je me suis retrouvé assez loin d'une connexion et de temps me permettant de suivre ta réponse.
Ceci étant dit, merci pour ton aide, j'ai repris le principe de ton code (while...) et ai tenté de créer quelquechose qui fonctionne avec mes (très) maigres connaissances, et les nombreux scripts (pas tjrs au top) disponibles sur la toile.
Voila ce que ca donne :

<?php

$MAX_SIZE = 8000000;
$AUTH_EXT = array(".jpg", ".JPG", ".jpeg", ".JPEG", ".bmp", ".BMP", ".PNG", ".GIF", ".png", ".gif");
function isExtAuthorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT)){
return true;
}else{
return false; }
}


$nombre_image_max=20;
$i=1;

while ($i<=$nombre_image_max){
$image_name = "img".$i;

if(isset($_FILES["$image_name"]))
{

if(!empty($_FILES["$image_name"]["name"])){

$nomFichier = $_FILES["$image_name"]["name"] ;
$nomTemporaire = $_FILES["$image_name"]["tmp_name"] ;
$typeFichier = $_FILES["$image_name"]["type"] ;
$poidsFichier = $_FILES["$image_name"]["size"] ;
$codeErreur = $_FILES["$image_name"]["error"] ;
$extension = strrchr($nomFichier, ".");

if($poidsFichier <> 0){
if($poidsFichier < $MAX_SIZE){
if(isExtAuthorized($extension)){
$uploadOk = move_uploaded_file($nomTemporaire, "commandes/$nomFichier");
if($uploadOk){
echo("<b> + Image $i : L'upload de [$nomFichier] a réussi !<br><br></b>");
..........................................etc.......}
}
$i++;
}
?>

Si tu peux et si tu veux me donner ton avis, je suis preneur.

Alors encore merci pour ton aide précieuse.

Bon j'ai d'autres soucis, mais je vais faire des recherches et crééer un nouveau post le cas échéant.

Cordialement,

Nonove
nonove
Visiteur
Visiteur
 
Messages: 9
Inscription: 07 Sep 2009 20:14
 

Message le 25 Sep 2009 22:36

Avant que je te donne mon avis, en l'état ça marche ?
Avatar de l'utilisateur
webmaster
Big Boss
Big Boss
 
Messages: 4909
Inscription: 11 Jan 2002 01:00
 

Message le 25 Sep 2009 22:44

Oui, ca fonctionne, j'ai fait des tests, mais c'est comme bcp de choses, les tests fonctionnent, il faut voir à l'usage, mais ca me semble assez probant...
Merci
nonove
Visiteur
Visiteur
 
Messages: 9
Inscription: 07 Sep 2009 20:14
 



Sujets similaires

Message [réglé] Probleme carte ethernet
Bonjour a tous,Depuis hier je rencontre un problème avec ma carte ethernet. Mon PC m'informe que celui-ci n'est pas connecté a internet (icône de la barre des taches). Par contre j'ai internet par le biais de mon VPN. Avez vous une petite idée ? Par avance merci
Réponses: 35

Message probleme affichage ecran
salut tout le monde Je suis sur windows 11 depuis environ janvier 2025 : ma dernière Édition : Windows 11 Professionnel Version 24H2 (build du système d'exploitation 26100.3323 )Installé le ?01/?03/?2025Build du système d?exploitation 26100.3323Expérience Pack d?expérience de fonctionnalités Windo ...
Réponses: 10

Message Problème mise à jour windows 11
Salut à tous, j'ai un souci sur mon ordinateur hp tout en un, à l'époque de la sortie de Win11 j'vavais forcé le passage car mon ordinateur n'avait les prérecquis, tout a toujours bien fonctionner sans problème, sauf depuis peu, je ne peux plus faire de MAJ sur windows update, il y a écrit "Vou ...
Réponses: 8

Message Probleme Meta Facebook pour page pro
Bonjour à tous, est ce quelqu'un ici s'y connait en Meta facebook pour la gestion des pages pro et les liens instagram? Je m'explique en 2021 j'ai créer mon entreprise avec une page Facebook qui était rattaché à mon profil perso ou j'avais la gestion intégrale, puis en 2022 un profil instagram profe ...
Réponses: 2

Message problème jeu pc indiana jones et le cercle ancien
Bonjour,Pourriez-vous m'aider à résoudre l'erreur " english missing vulkan device extensions please update your graphics driver or gpu vk KHR ray querry" au moment de démarrer le jeu pc "Indiana Jones et le cercle ancien" sur un pc avec la configuration :Carte mère F898 Saber ...
Réponses: 9

Message Problème USB 3 sur mini PC (SSD M2 externe)
Bonjour a tous, j'ai un problème sur un mini PC fonctionnant sur un Intel N100. Il y a 2 port usb2 et 2 ports usb3. Mon problème ? Il semble que certains perifériques ne fonctionnent pas correctement (en l'occurence, les boitiers externes pour SSD M2).Si le SSD M2 est connecté sur un USB3 j'obtiens ...
Réponses: 5

Message probleme avec le logiciel nvidia
Bonjour,Oui DDU est très efficace , on s'en sert surtout quand on change de fabricant de carte graphique de AMD vers Nvidia par exemple. Il nettoie tout.Bonne journée.
Réponses: 13


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.