Il y a actuellement 310 visiteurs
Jeudi 25 Avril 2024
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 Problème de signatue avec gmail.
Bonsoir, voilà je voudrai mettre une bannière comme signature pour mes emails envoyés avec gmail. Je ne sais pas trop comment faire ? Quelqu'un pourrait il m aider? Merci.
Réponses: 7

Message probleme avec mon compte outlook
Salut tout le mondevoilà, je m'explique en espérant que je sois compréhensible : de façon aléatoire et pas systématique, mais c'est récurrent, il ne se passe pas 15 jours, je recoit arriver sur mon bureau après démarrage de mon pc ou parfois même pc allumer et fonctionnel pendant la journée un m ...
Réponses: 9

Message [Réglé] probleme USB
Bonjour a tous,Je ne sais ou poster mon problème d'USB je le post donc ici . Mon souci vient du fait que lorsque je branche mon intercom SENA SRL 3 sur les USB mon PC sous W10 j'ai l'impression que celui-ci se connecte deux fois car j'entends bien le son de la connexion se faire deux fois et j'ent ...
Réponses: 5

Message Problème avec la KB5034441
Bonjour,Certains ont du rencontrer ce problème avec cette mise à jour qui a bien du mal à passer.Je viens de recevoir ce correctif proposé par Microsoft :ICI.Je vous le dit de suite personnellement si j'étais dans le même cas que vous j'attendrai une réelle mise à jour mise en place par Microsoft.Je ...
Réponses: 12

Message encore un probleme mise à jour windows KB5001716
Salut à vous cela commence, j'avoue, à devenir pénible, j'en suis désolé, mais ce soir au 5 mars 2024 est apparu un nouveau problème sur Windows update la mise à jour KB5001716 ne veut pas s'installer, j'ai eu beau redémarrer mon pc pour voir si cela pouvait fonctionner rien à faire cette mise à jou ...
Réponses: 28

Message [Réglé] problème de barre inexistante sur pc portable asus
Bonjour,Depuis hier, en allumant mon pc portable asus modèle F 402 S, il bloque sur le bureau, je n'ai plus la barre de tâches donc les icônes à côté de l'heure comme avant et la souris fait un rond et impossible de cliquer et d'ouvrir des fichiers ou d'aller sur internet c'est bizarre, est-ce une ...
Réponses: 9

Message probleme avec le nouvel Outlook !
Bonjour,à la maison, nous nous partageons 7 adresses : outlook.fr, orange.fr, live.fr, libello.com, hotmail.com et 2 gmail.com.Tout était parfait jusqu'au moment où le nouvel OUTLOOK s'est imposé.Là, un seul compte a survécu, @outlook.fr, impossible d'afficher les 6 autres !Quand on ouvre la message ...
Réponses: 5


Qui est en ligne

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


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