Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Te serait il possible, si bien sur tu en à un, de me monter un exemple ?
la partie formulaire.html puis la partie verif.php ?
merci d'avance ;-)
Hors ligne
Salut^^
Du coup j en ai fait un,
la meilleur solution est de stocker tes name dans un tableau:
dans ta page html:
<table> <form method="post" enctype="multipart/form-data" action="verif_upload.php"> <tr><td><input type="file" id="Upload" size="35" name="Upload[]"></td></tr> <tr><td><input type="file" id="Upload" size="35" name="Upload[]"></td></tr> <tr><td><input type="file" id="Upload" size="35" name="Upload[]"></td></tr> <tr><td><input type="file" id="Upload" size="35" name="Upload[]"></td></tr> <tr><td><input type="file" id="Upload" size="35" name="Upload[]"></td></tr> <tr><td><input type="submit" value="Envoyer"></td></tr> </form> </table>
et le fichier "verif_upload"
<?php
$images_autorisees = 'jpg';
$dossier = './upload/';
$nbr_upload = '5';//nombre de champs d'upload
$total_envoi ='1';//j'initialise mon compte de fichiers
for($i = 0; $i < sizeof($_FILES['Upload']['name']); $i++)
{
if(empty($_FILES['Upload']['name'][$i])){//j'ajoute 1 a chaques champ rempli
$total_envoi = $total_envoi+1;
}
$envoi = htmlentities(addslashes($_FILES['Upload']['name'][$i]));//je desactive les requette nocives
if($envoi != False){//si le fichier est different que vide je continue
$extension = strrchr($envoi,'.');
if($extension != '.'.$images_autorisees){//si c'est different que .jpg, j'affiche une erreur
echo 'Merci de ne poster que des images au format jpg!';
exit();
}
$nomFichier = $_FILES["Upload"]["name"][$i];
//nom temporaire sur le serveur:
$nomTemporaire = $_FILES["Upload"]["tmp_name"][$i] ;
//type du fichier choisi:
$typeFichier = $_FILES["Upload"]["type"][$i] ;
//poids en octets du fichier choisit:
$poidsFichier = $_FILES["Upload"]["size"][$i] ;
//code de l'erreur si jamais il y en a une:
$codeErreur = $_FILES["Upload"]["error"][$i] ;
if(copy($nomTemporaire, $dossier.$nomFichier)){
echo("<br>l'upload a réussi") ;
}
else{
echo("<br>l'upload a échoué") ;
}
}
else{
if($total_envoi > $nbr_upload){//si tout les champ sont vide je demande au moins un fichier
echo 'Veuillez envoyer au moins un fichier!';
exit();
}
}
}
?>Voili^^
Dernière modification par Asherah (21-11-2007 12:57:52)
Hors ligne
voici ce que j'obtient :
Warning: copy(./upload/7bcf1525marxer1.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\test\verif.php on line 32 l'upload a échoué Warning: copy(./upload/kimbrer6172 001.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\test\verif.php on line 32 l'upload a échoué Warning: copy(./upload/7bcf1525marxer3.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\test\verif.php on line 32 l'upload a échoué Warning: copy(./upload/kimbrer6172 002.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\test\verif.php on line 32 l'upload a échoué Warning: copy(./upload/7bcf1525marxer2.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\test\verif.php on line 32 l'upload a échoué
Hors ligne
Mais lorsque cela fonctionnera est-ce que les photos serons stockées sur le serveur ou seront elles envoyées par mail avec mon formulaire en pièces jointes ??
Hors ligne
augtemps pour moi j'avais oublié de créer le repertoire upload... ça marche parfaitement merci c'est super.
par compte les photos sont bien copié ds le repertoire mais coté mail je reçois que les données cochées et remplies mais pas de photos en piece jointe. est ce possible de recevoir les photos dans mon mail ?
Hors ligne
elles seront stocké sur le serveur. ensuite tu peut faire un script qui te les renvoi par mail.
dans ton message d'erreur il te dit qu'il ne trouve pas le dossier pour uploader les images, c'est donc que tu as une erreur dans le chemin que tu lui a fourni.
J'ai oublié de te preciser mais si tu prend le script tel-quel, ca va de soit que tu doit crée un dossier "upload" a l'endroit ou est ton script.
Hors ligne
Ce que je te conseil c'est de plutot faire un mail d'avertissement avec un message html qui t'afficheras par <img src> les images qui ont été uploader, enfin apres c'est comme tu veut, mais faire une piece jointe c'est pas super facile... et sur ce coup je ne peut pas t'aider car je ne peut pas utiliser la fonction mail().
Hors ligne
en tout cas vraiment merci merci merci ;-)
en gros ça me pose pas trop de probleme d'allé chercher les photos sur mon serveur, mais si 2 personnes remplissent mon formulaire en joignant chacune des photos je vais être embêté pour savoir à qui appartient les photos du répertoire.
tu vois ce que je veut dire ?
mais bon au pire je pe débrouillerai à trier lol...
Hors ligne
une fois mon formulaire rempli et les photos selectionné j'arrive sur une page blache ou est inscrit :
l'upload a réussi
l'upload a réussi
l'upload a réussi
l'upload a réussi
l'upload a réussi
ça fonctionne mais c'est pas tres joli, comment pui-je ajouter :
" Merci, votre demande sera traitée par notre équipe au plus vite , "
RETOUR AU SITE EN CLIQUANT ICI ( genre : www.google.fr )
Hors ligne
recevoir la photo directement dans le mail sans qu'elle soit en pièce jointe tu veut dire ? un peut comme qd tu reçois un mailing ?
Hors ligne
tiens^^
j'ai pas pu verifier si ca marchais, mais ca devrait^^
assure toi si tu est en local d'avoir ton SMTP configuré, ou si tu es chez un hebergeur que celui-ci autorise l'envoi de mail (c'est pas forcement le cas).
<?php
/////////////////////////////Gestion des images\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
$images_autorisees = 'jpg';
$dossier = 'upload/';
$nbr_upload = '5';//nombre de champs d'upload
//////////////////////////////////////////////////////////////////////////////////
///////////////////////////////Gestion du mail\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//a envoyer a:
$a = 'ton-adresse@hotmail.fr;
//sujet:
$sujet = 'Alerte nouvelles données';
// Message
//////////////////////////////////////////////////////////////////////////////////
$total_envoi ='1';//j'initialise mon compte de fichiers
for($i = 0; $i < sizeof($_FILES['Upload']['name']); $i++)
{
if(empty($_FILES['Upload']['name'][$i])){//j'ajoute 1 a chaques champ rempli
$total_envoi = $total_envoi+1;
}
$envoi = htmlentities(addslashes($_FILES['Upload']['name'][$i]));//je desactive les requette nocives
if($envoi != False){//si le fichier est different que vide je continue
$extension = strrchr($envoi,'.');
if($extension != '.'.$images_autorisees){//si c'est different que .jpg, j'affiche une erreur
echo 'Merci de ne poster que des images au format jpg!';
exit();
}
$nomFichier = $_FILES["Upload"]["name"][$i];
//nom temporaire sur le serveur:
$nomTemporaire = $_FILES["Upload"]["tmp_name"][$i] ;
//type du fichier choisi:
$typeFichier = $_FILES["Upload"]["type"][$i] ;
//poids en octets du fichier choisit:
$poidsFichier = $_FILES["Upload"]["size"][$i] ;
//code de l'erreur si jamais il y en a une:
$codeErreur = $_FILES["Upload"]["error"][$i] ;
if(copy($nomTemporaire, $dossier.$nomFichier)){
$url = 'http://'.$_SERVER['HTTP_HOST'].''.dirname($_SERVER["PHP_SELF"]).'/';
$images.= '<a href="'.$url.''.$dossier.''.$nomFichier.'"><img src="'.$url.''.$dossier.''.$nomFichier.'">'.$url.''.$dossier.''.$nomFichier.'</a><br>';
}
}
if($total_envoi > $nbr_upload){//si tout les champ sont vide je demande au moins un fichier
echo 'Veuillez envoyer au moins un fichier!';
exit();
}
}
//////////////////////////////////////////message\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
$message = 'Vous avez recus de nouvelles images!<br>'.$images;
mail($a, $sujet, $message);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
echo 'Merci, votre demande sera traitée par notre équipe au plus vite. <br> Vous allez etre redirigé vers le site dans 2 secondes.<meta http-equiv="refresh" content="2; www.google.fr ">';
?>Dernière modification par Asherah (21-11-2007 16:23:23)
Hors ligne
au passage remplace:
/////////////////////////////Gestion des images\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ $images_autorisees = 'jpg'; $dossier = './upload/';//<---------------------------------------------- $nbr_upload = '5';//nombre de champs d'upload
par:
/////////////////////////////Gestion des images\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ $images_autorisees = 'jpg'; $dossier = 'upload/'; $nbr_upload = '5';//nombre de champs d'upload
Hors ligne
Merci,
visiblement une erreur sur cette ligne : $sujet = 'Alerte nouvelles données';
Parse error: parse error in c:\program files\easyphp1-8\www\test\verif.php on line 13
///////////////////////////////Gestion du mail\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //a envoyer a: $a = 'monmail@yahoo.Fr; //sujet: $sujet = 'Alerte nouvelles données'; // Message //////////////////////////////////////////////////////////////////////////////////
Hors ligne