Il y a actuellement 551 visiteurs
Vendredi 05 Décembre 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 Probleme d'affichage : haut de l'écran qui apparait en bas
Bonjour/BonsoirJ'ai un probleme lorsque mes jeux sont lancés (pas tous en meme temps, je rassure)Lorsque j'allume minecraft ou Hogwards Legacy que j'utilise en ce moment, j'ai un bug d'affichage qui est le suivant ... Le haut de mon écran apparait en bas en sautant. Peu importe que je suis en plein ...
Réponses: 1

Message [Réglé] Problème sur écran neuf
Bonjour,j'ai encore un souci suite au sujet de mon écran ICI. Etant donné qu'il est noté réglé, peut-être qu'il n'est plus trop "visible".Mon ancien écran ayant rendu l'âme après 17 ans, j'ai acheté un écran Acer 24 pouces cba242yabir trouvé en solde à 109? chez Leclerc. Je le trouve franc ...
Réponses: 14

Message [Résolu]probleme Ads by Images+
Depuis quelque jours avec mon moteur de recherche Google sur Firefox, c'est ajouté Ads by Images+merci
Réponses: 16

Message AVS Video Converter problème
Bonsoir à tous, J'esaie d'installer AVS Video COnverter, un vieux programme sont je stockais le dossier compressé .rar, mais Win 10 (ou 11 mnt je sais même plus lol) refuse de l'ouvrir. Il m'indique en rouge le message suivant : ''Cette application a été bloqué pour ma protection, un administrateur ...
Réponses: 4

Message problème d'installation Windows 11 sur pc Asus
Bonjour,Pourriez-vous m'aider pour effectuer l'installation de Windows 11 sur un pc gamer " Asus G11 CD K" acheté en 2018 car je n'arrive pas à la finaliser car à 77 %, il redémarre et ensuite cela m'affiche "reboot and select proper boot device or insert boot media in selected boot ...
Réponses: 5

Message [Résolu] probleme ecran noir de 1 à 2 secondes
Salut tout le monde Décidément......... J'ai un problème sur mon pc qui n'est pas grave, mais qui est perturbant. Je m'explique lorsque je fais un clic droit sur un fichier ou dossier dans l'explorateur de fichier ou sur le bureau, j'ai un écran noir qui apparait brièvement et qui fait redémarrer t ...
Réponses: 42

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: 15


Qui est en ligne

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


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