Voilà le code... qui va faire hurler Cyrano vu ma présentation (dont je suis conscient !).
En fait le script marche parfaitement pour poster les fichiers mais quand il y a une erreur de type fichier trop gros ou extention incorrecte je tombe sur "page non trouvée" !
Si je ne mets pas de fichier (j'ai le cas normalement et ça doit générer un message d'erreur) et bien pas de message d'erreur, le script est validé et le dossier créé alors qu'il ne devrait pas.
Pour la page du formulaire il est inchangé (cf mon message du 06 Nov 2005, 19:20 page précédente).
Voilà le code :
<?php
$jeu_=$_GET['jeu'];
$lang_=$_GET['lang'];
$erreur="Validé !";
if(isset($_FILES['fichier']))
{
$DeniedExtensions=array('.php', '.php3', '.php5', '.phtml', '.asp', '.aspx', '.ascx', '.jsp', '.cfm', '.cfc', '.pl', '.bat', '.exe', '.dll', '.reg', '.cgi', '.vbs', '.htm', '.html', '.shtml', '.js');
$total2=count($DeniedExtensions);
$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<$total2;$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)&&filesize($var_fich2)>$taille_max)
{
$erreur='Votre fichier doit faire moins de 80Mo !';
}
}
}
else
{
$erreur='Veuillez envoyer au moins un fichier !';
}
if($erreur=="Validé !")
{
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);
$gdt="Merci !";
if($jeu_=="new")
{
$jeu_=$num_new2;
}
$txt="Accès à la page du jeu.";
$rbq="liste";
}
else
{
$gdt="Attention !";
$txt="Retour au formulaire.";
$rbq="post";
}
echo'<p class="titre">'.$gdt.'</p><p>'.$erreur.'<br />';
echo'<a href="index.php?lang='.$lang_.'&rub='.$rbq.'&jeu='.$jeu_.'">'.$txt.'</a></p>';
include("m_retour.php"); include("m_stats.php");
?>
Ne voyez-vous pas les erreurs ?
Merci !

pas moyen de trouver la solution....
le problème viendrait du "if(isset($_FILES['fichier'])){ " ?