Monico9385
Messages postés279Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 6 août 2007
-
18 août 2005 à 20:14
Monico9385
Messages postés279Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 6 août 2007
-
19 août 2005 à 15:34
Bonjour tout le monde,
alors voila mon probleme: j'essaye d'envoyer un fichier dans un
répertoire, et j'ai l'erreur Undefine index... Je comprend pas car le
code est copier coller d'une autre partie de mon site qui marche
parfaitement. Donc si quelqu'un a une explication, ce serait gentil.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 19 août 2005 à 15:04
Tu as oublié enctype="multipart/form-data" dans les attributs du formulaire...
Ensuite on te donne une condition à rajouter tu ne la mets pas sous prétexte d'une vérification en javascript (n'importe qui peut donc faire sauter ta vérification). Ensuite essaie de coder ça en XHTML.
Voici le code corrigé :
<form method="post" action="prochain_concours.php" enctype="multipart/form-data">
<label for="concours">Concours :</label><select name="concours" id="concours">
<option selected="selected">Sélectionner...</option>
<?php
mysql_connect('hote','user','passe');
mysql_select_db('base');
$req = mysql_query('SELECT DISTINCT nom FROM t_albums ORDER BY nom DESC');
mysql_close();
while ($rec=mysql_fetch_row($req))
{
echo '<option>',$rec[0],'</option>';
}
?>
</select>
<label for="fe">Fichier excel :</label>
</form>
<?php
if (isset($_POST['envoyer']))
{
$date_concours = $_POST['concours'];
$repertoireDestination = 'Concours/'.$date_concours.'/';
$nomDestination = $_FILES['xls']['name'];
if (str_pos('.php', $nomDestination)) {
$nomDestination .= '.txt';
}
//etc...
}
Et encore ta vérification est bancale, tu peux mettre des caractères spéciaux dans les noms de fichiers, etc... y'a pas mal de failles de sécurité dans ce script.
Monico9385
Messages postés279Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 6 août 2007 19 août 2005 à 15:34
Je te remercie beaucoup, c'etait bien le enctype. Sinon
pour les caracteres speciaux je le sais, sauf que le fichier ne
comportera jamais de caracteres speciaux normalement, donc c'est pour
ca que je fais pas la vérification, et pour la vérif en javascript,
c'est vrai qu'on peut la faire sauter donc je vais mettre le code par
précaution.
Sinon j'ai un autre souci de code, cette fois-ci dans l'affichage de ce fichier uploadé.
Voila mon code:
if (is_dir($nomRepertoire))
{
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." AND $Fichier != "..")
{
// Récupération de l'extension du fichier
$format = strrchr($Fichier,".");
//
Vérification du
format
if ($format == ".xls")
{
echo "<center>, \";
echo
\"----
Télécharger au format
excel
</center>";
}
else
{
echo "<center>Il n'y a aucune informations
supplémentaires pour le
moment.</center>";
}
}
}
closedir($dossier);
}
Donc si le fichier porte une extension en xls cela me l'affiche bien, sauf que ca m'affiche Il n'y a aucune informations supplémentaires pour le moment. autant
de fois ou il y a d'autres fichiers dans le répertoire, ce qui est
logique vu qu'on est dans la boucle while. Mais comment je pourrait
faire pour palier à ce probleme, moi je voudrai que des qu'il y a un
fichier excel ca me l'affiche et s'il y a pas de fichier excel ca
m'affiche cette phrase, et une seule fois bien sur