Mon scipt bug. C'est à cause des arrays (enfin je crois)...
Posté : 19 févr. 2007, 23:37
Bonsoir,
J'ai fais un script d'upload pour photos avec formulaires.
Et je bloque sur l'affichage des erreurs (si il y en a) ou sinon des messages de confirmation.
De temps en tant le script affiche ce qu'il faut de temps en temps il n'affiche rien du tout
...
J'ai remarqué que si j'essaye d'uploader un .avi il n'affiche aucun message.
Je résume en gros ce j'ai fait pour le détail il y a le script (je l'ai modifier pour que vous puissiez l'essayer sur votre ordi sans ma BDD):
1) une boucle pour afficher 6 formulaires d'upload, avec comme nom $_FILE[fichier_1] $_FILE[fichier_2] etc
2) une boucle qui vérifie:
- si chaque image uploadée ne pas trop grande (1Mo max)
si ce n'est pas le cas je met $erreur[$i] = 'blablabla'
- si l'extension est bonne
si ce n'est pas le cas je met $erreur[$i] = 'blablabla'
- si l'image n'a pas de $erreur[$i] on lui met $message[$i]
3) Message de confirmation et, ou d'erreur
Je sais vraiment pas où est l'erreur et je cherche depuis déjà un bon moment.
Merci d'avance à tous ceux qui pourront m'aider à comprendre où est ma faute.
J'ai fais un script d'upload pour photos avec formulaires.
Et je bloque sur l'affichage des erreurs (si il y en a) ou sinon des messages de confirmation.
De temps en tant le script affiche ce qu'il faut de temps en temps il n'affiche rien du tout
J'ai remarqué que si j'essaye d'uploader un .avi il n'affiche aucun message.
Je résume en gros ce j'ai fait pour le détail il y a le script (je l'ai modifier pour que vous puissiez l'essayer sur votre ordi sans ma BDD):
1) une boucle pour afficher 6 formulaires d'upload, avec comme nom $_FILE[fichier_1] $_FILE[fichier_2] etc
2) une boucle qui vérifie:
- si chaque image uploadée ne pas trop grande (1Mo max)
si ce n'est pas le cas je met $erreur[$i] = 'blablabla'
- si l'extension est bonne
si ce n'est pas le cas je met $erreur[$i] = 'blablabla'
- si l'image n'a pas de $erreur[$i] on lui met $message[$i]
3) Message de confirmation et, ou d'erreur
<h1>Ajout image pour les diaporamas (HTML)</h1>
<?php
/**********************************/
/** VERIFICATION ET UPLOAD **/
/**********************************/
if (isset($_POST['submit']) && !isset($erreur))
{
$ID_titre = $_POST['ID_titre'];
if (!empty($ID_titre)) // si l'album a bien ete choisi
{
//on commence les verifications mais seulement si le formulaire est rempli
for ($i = 1; $i <=6 ; $i++)
{
$fichier = $_FILES['fichier_'.$i.''];
if ($fichier['error'] != 4)
{
//verif extention images
$extensions_valides = array( 'jpg', 'jpeg', 'gif', 'png');
$extension_upload = substr(strrchr($fichier['name'], '.') ,1);
if (!in_array($extension_upload,$extensions_valides))
{
$erreur[$i] = 'L\'extension du fichier numéro '.$i.' n\'est pas correcte vous pouvez envoyer les fichier suivants: .jpg .jpeg .gif .png';
}
//verif taille
$taille_max = 1048576; //env. 1Mo
if ($fichier['size'] > $taille_max)
{
$erreur[$i] = 'Le fichier numéro '.$i.' est trop volumineux';
}
// si il n'y pas d'erreur ici c'est que tout est bon on procède alors au déplacement du fichier
if (empty($erreur[$i]))
{
$message[$i] = 'Le fichier numéro '.$i.' est arrivé à bon port<br>';
}
}
}
}
else
{
$erreur[0] = 'Choisissez un titre.';
}
}
?>
<?php
/*********************************/
/**********FORMULAIRES************/
/*********************************/
?>
<form action="" method="post" enctype="multipart/form-data">
<label>Choisissez le titre de l'album dans le quel vous voulez ajouter des photos
<select name="ID_titre">
<option value="0">Faites votre choix...</option>
<option value="2">2eme Album</option>
<option value="1">Voici le premier album photos</option>
</select>
</label><br>
<?php // on affiche les 6 formulaires
for($nbr=1; $nbr <= 6; $nbr++)
{
echo '<label>Fichier numéro '.$nbr.'<input type="file" name="fichier_'.$nbr.'"/></label><br>';
}
?>
<input type="submit" name="submit" value="Envoyer"/>
</form>
<?php
/**********************************/
/**Message erreur et confirmation**/
/**********************************/
if (!empty($erreur))
{
echo '<hr>';
for ($i = 0; $i <=6 ; $i++)
{
echo $erreur[$i] . '<br />';
}
}
if (!empty($message))
{
echo '<hr>';
foreach($message as $element)
{
echo $element . '<br />';
}
}
?>
<?php
echo '<br><br><br><br><br><br><br><br><br><br>';
?>
Je sais vraiment pas où est l'erreur et je cherche depuis déjà un bon moment.
Merci d'avance à tous ceux qui pourront m'aider à comprendre où est ma faute.