Salut a tous! Donc je vous explique mon problème. Je suis en train de faire une zone d'upload et j'ai une partie qui ne fonctionne pas.
J'ai la pasge index.php sur laquelle je demande dans quel dossier l'utilisateur veut uploader ses images, pour cela, je liste tous les dossier présents dans le répertoire /pics qui est le repertoire général des images, chaque sous dossier correspond a un thème. Puis dans la liste je propose de créer un dossier.
Ensuite je demande a l'utilisateur combien d'images il veut uploader. Après quoi il valide son choix et il se retrouve sur la page upload.php, sur cette page je commence par vérifier si les variables existent et si l'utilisateur veut uploader ses images dans un dossier existant ou en créer un nouveau puis après tout sa il y a une boucle qui crée autant d'input file que l'utilisateur a d'images a uploader.
Bon après cette longue explication voici les source (j'ai enlever la parti html pour plus de lisibilité)
index.php
upload.php
Quand on ne rempli qu'un champ sur index.php ( pour les dossier ou les images) tout se passe bien, le message d'erreur contenu par $resultat s'affiche bien et on est bien redirigé sur index.php.
Mais quand on rempli les deux champs, quoique l'on fasse, on retombe toujours sur 'Désolé une erreur s'est produite, veuillez réessayer.'! Pourtant $up_failed est égale a 0! Et ce que je ne comprends pas c'est que théoriquement, avec les deux derniere condition que j'ai mises:
On ne devrait jamais pouvoir tomber sur:
SVP aidez moi je ne comprends plus rien
Merci d'avance.
Modifié par Sleep-0 (27 Jan 2007 - 23:46)
J'ai la pasge index.php sur laquelle je demande dans quel dossier l'utilisateur veut uploader ses images, pour cela, je liste tous les dossier présents dans le répertoire /pics qui est le repertoire général des images, chaque sous dossier correspond a un thème. Puis dans la liste je propose de créer un dossier.
Ensuite je demande a l'utilisateur combien d'images il veut uploader. Après quoi il valide son choix et il se retrouve sur la page upload.php, sur cette page je commence par vérifier si les variables existent et si l'utilisateur veut uploader ses images dans un dossier existant ou en créer un nouveau puis après tout sa il y a une boucle qui crée autant d'input file que l'utilisateur a d'images a uploader.
Bon après cette longue explication voici les source (j'ai enlever la parti html pour plus de lisibilité)
index.php
<form method="post" action="upload.php" enctype="multipart/form-data">
<fieldset class="out">
<fieldset class="in">
<h5>Dans quel dossier voulez-vous uploader vos images?</h5>
<?php
$rep = opendir("pics/");
while($dossier = readdir($rep))
{
if (($dossier!=".") && ($dossier!=".."))
{
echo "<label><input type=\"radio\" name=\"dossier\"value=".$dossier."/>".$dossier."</label><br/>";
}
}
closedir($rep);
?>
<label><input type="radio" name="dossier" value="0"/></label><label>Nouveau : <input type="text" name="new_dossier"/></label><br/>
</fieldset>
<fieldset class="in">
<h5>Combien d'images voulez-vous uploader?</h5>
<input type="text" size="3" name="nb_img"/><br/>
</fieldset>
<center><input class="button" type="submit" value="-Go!-"/><input class="button" type="reset" value="-Effacer-"/></center>
</fieldset>
</form>
upload.php
<?php
$up_failed = 0;
if(isset($_POST['dossier']))
{
if($_POST['dossier']='0')
{
if((isset($_POST['new_dossier'])) AND (!empty($_POST['new_dossier'])))
{
mkdir('/pics'.$_POST['new_dossier'].'');
$dossier = $_POST['new_dossier'];
}
else
{
header('Refresh: 2; URL=http://raptor21.free.fr/upload/new_dossier');
$resultat = "<p>Vous avez oublier de spécifier le nom du nouveau dossier, veuillez réessayer.</p>";
$up_failed++;
}
}
else
{
$dossier = $_POST['dossier'];
}
}
else
{
header('Refresh: 2; URL=http://raptor21.free.fr/upload/dossier2');
$resultat = "<p>Vous avez oublier de spécifier le nom du dossier, veuillez réessayer.</p>";
$up_failed++;
}
if((isset($_POST['nb_img'])) AND (!empty($_POST['nb_img'])))
{
$images = $_POST['nb_img'];
}
else
{
header('Refresh: 2; URL=http://raptor21.free.fr/upload/img');
$resultat = "<p>Vous avez oublier de spécifier le nombre d'images a uploader, veuillez réessayer.</p>";
$up_failed++;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php
if($up_failed!=0)
{
echo $resultat;
echo $up_failed;
}
elseif($up_failed=0)
{
?>
<form method="post" action="exe.php" enctype="multipart/form-data">
<fieldset class="out">
<h5>Il ne vous reste plus qu'a selectionner vos images!</h5>
<input type="hidden" name="dossier" value="<?php echo $dossier;?>"/><br/>
<?php
$nb_files = 0;
while($nb_files != $images)
{
$nb_files++;
echo '<input type="file" name="img'.$nb_files.'"/><br/>';
}
?>
<input type="submit" value="uploader"/>
</fieldset>
</form>
<?php
}
else
{
echo "<p>Désolé une erreur s'est produite, veuillez réessayer.</p>";
echo $up_failed;
}
?>
Quand on ne rempli qu'un champ sur index.php ( pour les dossier ou les images) tout se passe bien, le message d'erreur contenu par $resultat s'affiche bien et on est bien redirigé sur index.php.
Mais quand on rempli les deux champs, quoique l'on fasse, on retombe toujours sur 'Désolé une erreur s'est produite, veuillez réessayer.'! Pourtant $up_failed est égale a 0! Et ce que je ne comprends pas c'est que théoriquement, avec les deux derniere condition que j'ai mises:
<?php
if($up_failed!=0)
{
echo $resultat;
echo $up_failed;
}
elseif($up_failed=0)
{
?>
<form method="post" action="exe.php" enctype="multipart/form-data">
<fieldset class="out">
<h5>Il ne vous reste plus qu'a selectionner vos images!</h5>
<input type="hidden" name="dossier" value="<?php echo $dossier;?>"/><br/>
<?php
$nb_files = 0;
while($nb_files != $images)
{
$nb_files++;
echo '<input type="file" name="img'.$nb_files.'"/><br/>';
}
?>
<input type="submit" value="uploader"/>
</fieldset>
</form>
<?php
}
On ne devrait jamais pouvoir tomber sur:
else
{
echo "<p>Désolé une erreur s'est produite, veuillez réessayer.</p>";
echo $up_failed;
}
?>
SVP aidez moi je ne comprends plus rien

Merci d'avance.
Modifié par Sleep-0 (27 Jan 2007 - 23:46)