<form action="index.php?lang=<?=$_GET['lang']?>&rub=post_rez&jeu=<?=$_GET['jeu']?>" method="post" enctype="multipart/form-data" id="post_script" name="post_script">
<input type="hidden" name="MAX_FILE_SIZE" value="83886080" />
<fieldset>
<p class="base_Rouge">Sélectionnez le(s) fichier(s) que vous voulez envoyer :<br />
<label for="fichier">Fichier : </label><input id="fichier" name="fichier" type="file" size="40" /><br />
<label for="fichier_2">Fichier : </label><input id="fichier_2" name="fichier_2" type="file" size="40" /><br />
</p>
</fieldset>
<p>Cliquez sur le bouton suivant pour valider et attendez le chargement complet de la page suivante qui peut prendre de nombreuses minutes suivant votre vitesse de connexion à Internet et la taille du fichier envoyé.</p>
<p><input name="post_submit" id="post_submit" type="submit" value="Valider" /></p>
</form>
page de traitement des fichiers :
if(isset($_FILES['fichier'])){
unset($erreur);
$extensions_ok = array('avi', 'mpg', 'mpeg', 'divx', 'mp3', 'wma', 'png', 'gif', 'jpg', 'jpeg', 'zip', 'rar', '7z', 'tar', 'vmi', 'vms', 'ddc');
//faille sécu ici -> voir PHPfrance pour le "denied extensions" à la place
$taille_max = 83886080;
if( !in_array( substr(strrchr($_FILES['fichier']['name'], '.'), 1), $extensions_ok ) )
{$erreur = 'Veuillez sélectionner un fichier de type zip, rar, 7z, tar, png, gif, jp(e)g, mp3, wma, avi, mpg, mpeg, divx, vmi, vms ou ddc !';}
elseif( file_exists($_FILES['fichier']['tmp_name']) and filesize($_FILES['fichier']['tmp_name']) > $taille_max)
{$erreur = 'Votre fichier doit faire moins de 80Mo !';}
if(!isset($erreur)) {
$dest_dossier = $dossier_j."/".$dossier_s_new."/";
$dest_fichier = basename($_FILES['fichier']['name']);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier.$dest_fichier);
}
else {echo '<p class="titre">Attention !</p><br />'.$erreur;}
}
<input id="fichier" name="fichier" type="file[]" size="40" />
tu récupère donc :echo $_FILES['fichier']['name'][0];//nom du 1er fichier
echo $_FILES['fichier']['name'][1];//nom du 2eme fichier
et tu inclus ton code dans une boucle foreach() ou alors tu compte le nombre d'éléments du tableau count($_FILES['fichier']['name'])(dépend si tous les champs file sont remplis ou pas).
<input id="fichier" name="fichier[]" type="file" size="40" />
ensuite le count() tu le place lors de la récupération, tu teste si le formulaire a été validé avec un isset comme tu l'a fait:
if(isset($_FILES['fichier']))
{
$total=count($_FILES['fichier']['name']);
for($i=0; $i <$total;$i++)
{
//ici code d'upload
// tu travaile avec ce genre de variable
$_FILES['fichier']['name'][$i]
}
}<form action="index.php?lang=<?=$_GET['lang']?>&rub=post_rez&jeu=<?=$_GET['jeu']?>" method="post" enctype="multipart/form-data" id="post_script" name="post_script">
<input type="hidden" name="MAX_FILE_SIZE" value="83886080" />
<fieldset>
<p class="base_Rouge">Sélectionnez le(s) fichier(s) que vous voulez envoyer :<br />
<? for($i=1;$i<=20;$i++){echo'
Fichier '.$i.' : <input id="fichier[]" name="fichier[]" type="file" size="40" /><br />';} ?>
</p>
</fieldset>
<p>Cliquez sur le bouton suivant ("Valider") pour valider et attendez le chargement complet de la page suivante qui peut prendre de nombreuses minutes suivant votre vitesse de connexion à Internet et la taille du fichier envoyé.<br />
<input name="post_submit" id="post_submit" type="submit" value="Valider" /></p>
</form>
et le fichier de traitement :
if(isset($_FILES['fichier'])){
unset($erreur);
$extensions_ok = array('avi', 'mpg', 'mpeg', 'divx', 'mp3', 'wma', 'png', 'gif', 'jpg', 'jpeg', 'zip', 'rar', '7z', 'tar', 'vmi', 'vms', 'ddc');
//faille sécu ici -> voir PHPfrance pour le "denied extensions" à la place
$taille_max = 83886080;
$total=count($_FILES['fichier']['name']);
for($i=0; $i <$total;$i++) {
if( !in_array( substr(strrchr($_FILES['fichier']['name'][$i], '.'), 1), $extensions_ok ) )
{$erreur = 'Veuillez sélectionner un fichier de type zip, rar, 7z, tar, png, gif, jp(e)g, mp3, wma, avi, mpg, mpeg, divx, vmi, vms ou ddc !';}
elseif( file_exists($_FILES['fichier']['tmp_name'][$i]) and filesize($_FILES['fichier']['tmp_name'][$i]) > $taille_max)
{$erreur = 'Votre fichier doit faire moins de 80Mo !';}
}
if(!isset($erreur)) {
// ici je traite d'autres champs du formulaire
for($i=0; $i <$total;$i++) {
$dest_dossier = $dossier_j."/".$dossier_s_new."/";
$dest_fichier = basename($_FILES['fichier']['name'][$i]);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
move_uploaded_file($_FILES['fichier']['tmp_name'][$i], $dest_dossier.$dest_fichier);
}
Mais où est donc mon erreur ???
echo $_FILES['fichier']['name'][$i];
sinon décompose:
$var=substr(strrchr($_FILES['fichier']['name'][$i], '.'), 1);
echo $var
if( !in_array( $var, $extensions_ok ))
<p align="center" class="gdtitre">Soumettre un fichier</p>
<hr />
<p>Vous pouvez ici m'envoyer vos sauvegardes.</p>
<p> </p>
<form action="index.php?lang=<?=$_GET['lang']?>&rub=post_rez&jeu=<?=$_GET['jeu']?>" method="post" enctype="multipart/form-data" id="post_script" name="post_script">
<p>Pseudo : <input name="auteur" id="auteur" /> (utilisez celui du forum SVP)</p>
<p>Adresse E-mail : <input id="mail" name="mail" /></p>
<p>Site perso : <input id="site" name="site" /></p>
<? if ($_GET['jeu']=="new") {echo '<p>Nom du jeu : <input id="nom" name="nom" /></p>';} ?>
<p>Support du jeu :
<select id="support" name="support">
<option selected>Windows</option>
<option>DreamCast</option>
<option>MegaDrive / Genesis</option>
<option>MasterSystem</option>
<option>GameGear</option>
<option>XBox</option>
<option>PlayStation 2</option>
<option>PlayStation</option>
<option>PSP</option>
<option>GameCube</option>
<option>Nintendo64</option>
<option>SuperNintendo / SNES / SuperFamicom</option>
<option>Nintendo / NES / Famicom</option>
<option>DS</option>
<option>GameBoy Advance</option>
<option>GameBoy / GameBoy Color</option>
<option>NGage</option>
<option>arcade</option>
<option>Linux</option>
<option>MacOS</option>
<option>Amiga</option>
</select></p>
<p>Titre de la sauvegarde : <input id="titre" name="titre" /></p>
<p>Note (en %) donnée à l'avancement de la sauvegarde :
<select id="note" name="note">
<option selected>Non notée</option>
<? for($i=1;$i<=100;$i++){echo'<option>'.$i.'</option>';} ?>
</select></p>
<p>Vos commentaires et détails sur cette sauvegarde :<br /><textarea id="commentaire" name="commentaire" rows="6" cols="75"></textarea></p>
<input type="hidden" name="MAX_FILE_SIZE" value="83886080" />
<fieldset>
<p class="base_Rouge">Sélectionnez le(s) fichier(s) que vous voulez envoyer :<br />
<? for($i=1;$i<=20;$i++){echo'
Fichier '.$i.' : <input id="fichier[]" name="fichier[]" type="file" size="40" /><br />';} ?>
</p>
</fieldset>
<p>Cliquez sur le bouton suivant ("Valider") pour valider et attendez le chargement complet de la page suivante qui peut prendre de nombreuses minutes suivant votre vitesse de connexion à Internet et la taille du fichier envoyé.<br />
<input name="post_submit" id="post_submit" type="submit" value="Valider" /></p>
</form>
<p> </p>
<p> </p>
<? include("m_retour.php"); include("m_stats.php");?>
<?
$jeu_=$_GET['jeu'];
$lang_=$_GET['lang'];
if(isset($_FILES['fichier'])){
unset($erreur);
$extensions_ok = array('avi', 'mpg', 'mpeg', 'divx', 'mp3', 'wma', 'png', 'gif', 'jpg', 'jpeg', 'zip', 'rar', '7z', 'tar', 'vmi', 'vms', 'ddc');
//faille sécu ici -> voir PHPfrance pour le "denied extensions" à la place
$taille_max = 83886080;
$total=count($_FILES['fichier']['name']);
for($i=0; $i <$total;$i++) {
$var_fich0=$_FILES['fichier']['name'][$i];
$var_fich=substr(strrchr($var_fich0, '.'), 1);
$var_fich2=$_FILES['fichier']['tmp_name'][$i];
if( !in_array( $var_fich, $extensions_ok ))
{$erreur = 'Veuillez sélectionner un fichier de type zip, rar, 7z, tar, png, gif, jp(e)g, mp3, wma, avi, mpg, mpeg, divx, vmi, vms ou ddc !';}
elseif( file_exists($var_fich2) and filesize($var_fich2) > $taille_max)
{$erreur = 'Votre fichier doit faire moins de 80Mo !';}
}
if(!isset($erreur)) {
echo '<p class="titre">Merci !</p>';
if ($_GET['jeu']=="new"){
$liste6=array();
$handle6=opendir(".");
while($file6=readdir($handle6)){
$pt6=strrpos($file6,".");
$folder_name=$file6;
$fich6=$file6."/nom.php";
if (@file_exists($fich6)){
array_push($liste6,$file6);}}
closedir($handle6);
$num_new2=count($liste6);
$num_new2++;
$dossier_j="j_".$num_new2;
mkdir ($dossier_j,0700);
copy("./images/index.htm",$dossier_j."/index.htm");
$dossier_s_new="s_1";
if (empty($_POST["nom"])){$nom_jeu="-> Jeu non spécifié";}
else {$nom_jeu=$_POST["nom"];}
$Fnm3=$dossier_j."/nom.php";
$inF3=fopen($Fnm3,"w");
fwrite($inF3,$nom_jeu);
fclose($inF3);
}
else {
$dossier_j="j_".$_GET['jeu'];
$fich_nom="./".$dossier_j."/nom.php";
if (@file_exists($fich_nom) && filesize($fich_nom)>0){
$fd=fopen($fich_nom,"r");
$nom_jeu=fread($fd,filesize($fich_nom));
fclose($fd);}
$liste5=array();
$handle5=opendir($dossier_j);
while($file5=readdir($handle5)){
$pt5=strrpos($file5,".");
$folder_name=$file5;
$fich5=$dossier_j."/".$file5."/details.php";
if (@file_exists($fich5)){
array_push($liste5,$file5);}}
closedir($handle5);
$num_new=count($liste5);
$num_new++;
$dossier_s_new="s_".$num_new;
}
mkdir ($dossier_j."/".$dossier_s_new,0700);
copy("./images/index.htm",$dossier_j."/".$dossier_s_new."/index.htm");
$Fnm=$dossier_j."/".$dossier_s_new."/details.php";
$ouvre_w = '<'.'?';
$ferme_w = '?'.'>';
$auteur_w = '$auteur="'.$_POST["auteur"].'";';
$mail_w = '$mail="'.$_POST["mail"].'";';
$site_w = '$site="'.$_POST["site"].'";';
$titre_w = '$titre="'.$_POST["titre"].'";';
$note_w = '$note="'.$_POST["note"].'";';
$date_w = '$date="'.date("d/m/Y").'";';
$inF=fopen($Fnm,"w");
fwrite($inF,$ouvre_w."\n".$auteur_w."\n".$mail_w."\n".$site_w."\n".$titre_w."\n".$date_w."\n".$note_w."\n".$ferme_w);
fclose($inF);
$commentaire_w=$_POST["commentaire"];
$Fnm2=$dossier_j."/".$dossier_s_new."/commentaire.php";
$inF2=fopen($Fnm2,"w");
fwrite($inF2,$commentaire_w);
fclose($inF2);
for($i=0; $i <$total;$i++) {
$var_fich0=$_FILES['fichier']['name'][$i];
$var_fich2=$_FILES['fichier']['tmp_name'][$i];
$dest_dossier = $dossier_j."/".$dossier_s_new."/";
$dest_fichier = basename($var_fich0);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
move_uploaded_file($var_fich2, $dest_dossier.$dest_fichier);
}
$sujet="Ajout d'une sauvegarde sur S.O.S. Sauvegardes !";
$corps=
$auteur_w." \n".
$mail_w." \n".
$site_w." \n".
$date_w." \n
jeu : ".$_GET['jeu']." \n
nom du jeu : ".$nom_jeu." \n".
$titre_w." \n".
$note_w." \n \n
commentaire : \n".$commentaire_w;
$entete="From:".$email2."\r\nReply-To:".$email2;
mail ($email1,$sujet,$corps,$entete);
if($jeu_=="new"){echo '<p> </p><p><a href="index.php?lang='.$_GET['lang'].'&rub=liste&jeu='.$num_new2.'">Accès à la page du jeu.</a></p><p> </p>';}
else{echo '<p> </p><p><a href="index.php?lang='.$_GET['lang'].'&rub=liste&jeu='.$_GET['jeu'].'">Retour à la page du jeu.</a></p><p> </p>';}
}
else {echo '<p class="titre">Attention !</p><br />'.$erreur.'<p><a href="index.php?lang='.$_GET['lang'].'&rub=post&jeu='.$jeu.'">Retour au formulaire.</a></p>';}
}
include("m_retour.php"); include("m_stats.php");
?>
J'obtiens toujours le même message, le premier : celui d'erreur d'extention ('Veuillez sélectionner un fichier de type zip, rar, 7z, tar, png, gif, jp(e)g, mp3, wma, avi, mpg, mpeg, divx, vmi, vms ou ddc !).<form action="index.php?lang=<?=$_GET['lang']?>&rub=post_rez&jeu=<?=$_GET['jeu']?>" method="post" enctype="multipart/form-data" id="post_script" name="post_script">
<input type="hidden" name="MAX_FILE_SIZE" value="83886080" />
<fieldset>
<p class="base_Rouge">Sélectionnez le(s) fichier(s) que vous voulez envoyer :<br />
<? for($i=1;$i<=20;$i++){echo'
Fichier '.$i.' : <input id="fichier[]" name="fichier[]" type="file" size="40" /><br />';} ?>
</p>
</fieldset>
<p>Cliquez sur le bouton suivant ("Valider") pour valider et attendez le chargement complet de la page suivante qui peut prendre de nombreuses minutes suivant votre vitesse de connexion à Internet et la taille du fichier envoyé.<br />
<input name="post_submit" id="post_submit" type="submit" value="Valider" /></p>
</form>
Page de traitement :
<?
if(isset($_FILES['fichier'])){
unset($erreur);
$extensions_ok = array('avi', 'mpg', 'mpeg', 'divx', 'mp3', 'wma', 'png', 'gif', 'jpg', 'jpeg', 'zip', 'rar', '7z', 'tar', 'vmi', 'vms', 'ddc');
$taille_max = 83886080;
$total=count($_FILES['fichier']['name']);
for($i=0; $i <$total;$i++) {
$var_fich0=$_FILES['fichier']['name'][$i];
$var_fich=substr(strrchr($var_fich0, '.'), 1);
$var_fich2=$_FILES['fichier']['tmp_name'][$i];
if( !in_array( $var_fich, $extensions_ok ))
{$erreur = 'Veuillez sélectionner un fichier de type zip, rar, 7z, tar, png, gif, jp(e)g, mp3, wma, avi, mpg, mpeg, divx, vmi, vms ou ddc !';}
elseif( file_exists($var_fich2) and filesize($var_fich2) > $taille_max)
{$erreur = 'Votre fichier doit faire moins de 80Mo !';}
}
if(!isset($erreur)) {
for($i=0; $i <$total;$i++) {
$var_fich0=$_FILES['fichier']['name'][$i];
$var_fich2=$_FILES['fichier']['tmp_name'][$i];
$dest_dossier = $dossier_j."/".$dossier_s_new."/";
$dest_fichier = basename($var_fich0);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
move_uploaded_file($var_fich2, $dest_dossier.$dest_fichier);
}
} ?>
Et donc j'ai toujours la même erreur : le message que mon ou mes fichiers n'ont pas la bonne extention (1er type d'erreur de mon script).$extensions_ok = array('avi', 'mpg', 'mpeg', 'divx', 'mp3', 'wma', 'png', 'gif', 'jpg', 'jpeg', 'zip', 'rar', '7z', 'tar', 'vmi', 'vms', 'ddc');
for($i=0; $i <$total;$i++) {
$var_fich0=$_FILES['fichier']['name'][$i];
$var_fich=substr(strrchr($var_fich0, '.'), 1);
if( !in_array( $var_fich, $extensions_ok ))
{$erreur = 'Veuillez sélectionner un fichier de type zip, rar, 7z, tar, png, gif, jp(e)g, mp3, wma, avi, mpg, mpeg, divx, vmi, vms ou ddc !';}
}if(isset($_FILES['fichier'])){
unset($erreur);
$DeniedExtensions = array('.php','.php3','.php5', '.phtml','.asp','.aspx','.ascx', '.jsp','.cfm','.cfc','.pl','.bat','.exe','.dll','.reg', '.cgi','.vbs','.htm','.html','.shtml','.js');
$taille_max = 83886080;
$total=count($_FILES['fichier']['name']);
for($i=0; $i <$total;$i++) {
$var_fich0=$_FILES['fichier']['name'][$i];
$var_fich2=$_FILES['fichier']['tmp_name'][$i];
for($a=0; $a<count($DeniedExtensions); $a++)
{
$findit = strpos($var_fich0, $DeniedExtensions[$a]);
if ($findit !== false)
{$erreur = 'Veuillez sélectionner un fichier de type différent de php, html, exe !';}
}
if( file_exists($var_fich2) and filesize($var_fich2) > $taille_max)
{$erreur = 'Votre fichier doit faire moins de 80Mo !';}
}
if(!isset($erreur)) {
et après comme tout à l'heure.
if(isset($_FILES['fichier']))
{
unset($erreur);
$DeniedExtensions = array('.php', '.php3', '.php5', '.phtml', '.asp', '.aspx', '.ascx', '.jsp', '.cfm', '.cfc', '.pl', '.bat', '.exe', '.dll', '.reg', '.cgi', '.vbs', '.htm', '.html', '.shtml', '.js');
$taille_max = 83886080;
$total = count($_FILES['fichier']['name']);
for($i = 0; $i < $total; $i++)
{
$var_fich0 = $_FILES['fichier']['name'][$i];
$var_fich2 = $_FILES['fichier']['tmp_name'][$i];
for($a = 0; $a < count($DeniedExtensions); $a++)
{
$findit = strpos($var_fich0, $DeniedExtensions[$a]);
if ($findit !== false)
{
$erreur = 'Veuillez sélectionner un fichier de type différent de php, html, exe !';
}
}
if( file_exists($var_fich2) and filesize($var_fich2) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 80Mo !';
}
}
}
if(!isset($erreur))
{
Tu trouves pas ça plus clair comme ça ?