Boucle php qui ne marche pas

Signaler
Messages postés
1
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
10 février 2010
-
Messages postés
112
Date d'inscription
jeudi 31 août 2006
Statut
Membre
Dernière intervention
3 février 2011
-
Bonjour chers tout le monde :) !

Aujourd'hui, alors que je développait mon site internet, j'ai eu un problème. Je vous explique : les visiteurs peuvent uploader un nombre indéfini de fichiers sur le serveur. Ils nomment ces fichiers différemment, et le tout est enregistré dans une table sql. Voici un aperçu de mon script pour renommer les fichiers, et d'autres :
<?php
$liste_rep = scandir($dirname);

$i = 0;

$num = count($liste_rep);

while($i < $num){
                if(in_array($liste_rep[$i], Array('.', '..'))) {
                    $i++;
                    continue;
                }
?>
<tr>
<td width="50%">
<?php echo $liste_rep[$i]; ?>
</td>
<td>
" type="hidden" value="<?php echo $liste_rep[$i]; ?>" />
" type="text" value="Nom de la chanson" onclick="if(this.value== 'Nom de la chanson') this.value = '';" onblur="if(this.value== '') this.value = 'Nom de la chanson';" />
" type="text" value="Numéro dans l'album"  />
" /> Supprimer
</td>
</tr>
<?php
$i++;
}
 ?>

En fait, ce script liste tous les fichiers contenus dans un dossier, et propose ensuite de les rennomer.
Et voici le script qui ne marche pas, celui qui permet d'insérer le tous dans une table sql :

<?php
extract($_POST);
 $numero = "0";
while(!empty($_POST[numero+1])) {

$numerocomplet = $numero+1;
$nomcomplet = $nom.$numero+1;
$supprcomplet = $suppr.$numero+1;

if($supprcomplet == true) {
$directoire = $dir.$numerocomplet;
unlink($directoire);
}
else {
mysql_query("ma requête sql");	
}
} ?>



Ah oui car on peut choisir de supprimer le fichier. En fait je regarde si il y a un fichier, puis je regarde si on veut le supprimer, sinon je l'enregistre. Et comme il y a un nombre aléatoire de fichiers à enregistrer (source plus haut), eh bien il faut savoir combien il y en a et les enregistrer dans mysql avec leurs noms respectifs. Dans le formulaire, il y a pour chaque fichier "nom" plus un numéro qui augmente de 1 à chaque fois (donc on obtient par exemple nom1 pour le premier fichier). Et ça pareil pour la suppression, et tout ça tout ça :)

Voilà je suis complètement pommé, cela ne marche pas, si quelqu'un veut bien m'aider, je lui serait très reconnaissant :)

3 réponses

Messages postés
112
Date d'inscription
jeudi 31 août 2006
Statut
Membre
Dernière intervention
3 février 2011
1

extract($_POST);

$numero = 0; //

while(!empty($_POST[$numero + 1])) {

$numerocomplet = $numero+1;

$nomcomplet    = $nom.$numero+1;

$supprcomplet  = $suppr.$numero+1;

if($supprcomplet == true){

$directoire = $dir.$numerocomplet;

unlink($directoire);
}
else{
mysql_query("ma requête sql");	
}
} 
?>


En jaune les idées à creuser...

$numero = "0"; -> C'est un string et non un int

while(!empty($_POST[numero + 1])) -> [numero + 1] manque le $ de la variable ? et si tu additione un string et un int ca ne donne pas un int

$dir existe-il ? je ne l'ai vu nul part...
Messages postés
112
Date d'inscription
jeudi 31 août 2006
Statut
Membre
Dernière intervention
3 février 2011
1
oueps en lève les "" "" je ne savais pas que ca marchait pas dans le code source...
Messages postés
112
Date d'inscription
jeudi 31 août 2006
Statut
Membre
Dernière intervention
3 février 2011
1
Bon l'éditeur de texte comprends rien ... je réécris...

extract($_POST);

$numero = 0;

while(!empty($_POST[$numero + 1])) {

$numerocomplet = $numero+1;

$nomcomplet    = $nom.$numero+1;

$supprcomplet  = $suppr.$numero+1;

if($supprcomplet == true){

$directoire = $dir.$numerocomplet;

unlink($directoire);
}
else{
mysql_query("ma requête sql");	
}
}