Voilà ce que j'ai fait :
rub_post.php
<?
/*
jeu = nouveau jeu (jeu=new)
= sauvegarde (jeu=*)
com = commentaire (com=* avec *=numéro de la sauvegarde)
script pour ajout jeu / -> sauvegarde / commentaire
*/
?>
<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="100000000" />
<fieldset>
<p class="base_Rouge">Sélectionnez le(s) fichier(s) que vous voulez envoyer :<br />
<? for($i=1;$i<=10;$i++){echo'<label for="fichier_'.$i.'">Fichier'.$i.' :</label><input id="fichier_'.$i.'" name="fichier_'.$i.'" type="file" size="40" /><br />';} ?>
</p>
</fieldset>
<p><input name="post_submit" id="post_submit" type="submit" value="Envoyer" /></p>
</form>
<p> </p>
<p> </p>
<? include("m_retour.php"); include("m_stats.php");?>
rub_post_rez.php
<p class="titre">Merci !</p>
<?
$jeu_=$_GET['jeu'];
$lang_=$_GET['lang'];
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";
$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'];
$liste5=array();
$handle5=opendir($dossier_j);
while($file5=readdir($handle5)){
$pt5=strrpos($file5,".");
$folder_name=$file5;
$num5=substr($file5,2); // supprimable
$fich5=$dossier_j."/".$file5."/details.php";
if (@file_exists($fich5)){
array_push($liste5,$num5);}} // remplacer $num5 par $file5 si supprimé
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);
$sujet="Ajout d'une sauvegarde sur S.O.S. Sauvegardes !";
$corps="
auteur : ".$auteur_w." \n
mail : ".$mail_w." \n
site : ".$site_w." \n
date : ".$date_w." \n
jeu : ".$_GET['jeu']." \n
nom du jeu (si nouveau) : ".$nom_jeu." \n
titre : ".$titre_w." \n
note : ".$note_w." \n \n
commentaire : \n".$commentaire_w;
$entete="From:".$email2."\r\nReply-To:".$email2;
mail ($email1,$sujet,$corps,$entete);
if(isset($_FILES['photo'])){
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'zip', 'rar', '7z', 'vmi', 'vms', 'ddc');
//faille sécu ici -> voir PHPfrance pour le "denied extensions" à la place
$taille_max = 83886080;
$dest_dossier = $dossier_j."/".$dossier_s_new."/";
if( !in_array( substr(strrchr($_FILES['fichier']['name'], '.'), 1), $extensions_ok ) )
{ $erreur = 'Veuillez sélectionner un fichier de type zip, rar, 7z, png, gif, jpg, vmi, vms, ddc !'; }
elseif( file_exists($_FILES['fichier']['tmp_name']) and filesize($_FILES['fichier']['tmp_name']) > $taille_max)
{ $erreur = 'Vos fichiers doivent faire moins de 80Mo !'; }
if(!isset($erreur)) {
$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);
}}
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>';}
include("m_retour.php"); include("m_stats.php");
?>
Voilà.
La création des dossiers et fichiers marche bien mais l'upload des fichiers par le visiteur lui ne fonctionne pas.
Je ne trouve pas l'erreur en fait... (P.S.: mon site est chez Free si ça change quelque chose)