comment uploader un fichier excel en php pour alimenter une base de données ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comment uploader un fichier excel en php pour alimenter une base de données ?

par fab » 30 sept. 2008, 03:57

Euh je me permets d'intervenir car il faut faire attention même très attention quand on manipule des fichiers!
Petit exemple :
On upload un fichier du nom de toto.txt sur un site de lyrics!
On vérifie l'extension .txt
On inclue le fichier de maniere sur la page censer afficher les paroles du superbe artiste
Les paroles :
<?php include('totot.txt'); ?>
Et là tu permets qui tous les gentils utilisateurs de ton site de paroles d'executer du code sur ton site :p

Verdict : l'extension est une première vérification mais il faut être méfiant et ne pas considerer le fichier fiable pour autant avec par exemple utiliser file_get_contents() pour en utiliser le contenu

par Victor BRITO » 29 sept. 2008, 21:01

Pour le traitement, il faut s'assurer que le fichier uploadé est bien un fichier Excel (on vérifiera donc si l'extension du fichier correspond bien à du .xls ou .xlsx, et non à un fichier PHP contenant du script potentiellement nuisible). C'est ce qui manque dans ton code.

comment uploader un fichier excel en php pour alimenter une

par freud » 29 sept. 2008, 20:02

Bonjour à la communauté :)

J'aimerais savoir comment uploader un fichier excel en php pour alimenter une base de données ?

avec chaque donnée correspondant à une rubrique.
la première ligne c'est les rubriques
ensuite les lignes suivantes c'est les données

un enregistrement pour chaque ligne

une foultitude d'enregistrements
viennent alimenter la table qui contient chaque enregistrement

J'aimerais un bout de code php pour uploader le fichier le plus simple possible
en créant un nouveau répertoire sur le serveur j'en ai déjà un mais pour comparaison ...
<FORM method="POST" ENCTYPE="multipart/form-data">
<INPUT type=hidden name=MAX_FILE_SIZE VALUE=2048>
<INPUT type=file name="nom_du_fichier">
<INPUT type=submit value="Envoyer">
</FORM>

:

Array
(
[nom_du_fichier] => Array
(
[name] => MaBelleImage.jpg
[type] => image/jpg
[tmp_name] => chemin_complet_du_fichier_uploadé
[error] => 0
[size] => 1000
)

)

<?
if ($_FILES['nom_du_fichier']['error']) {
switch ($_FILES['nom_du_fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !");
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !");
break;
}
}
else {
// $_FILES['nom_du_fichier']['error'] vaut 0 soit UPLOAD_ERR_OK
// ce qui signifie qu'il n'y a eu aucune erreur
}
?>


<?

if ((isset($_FILES['nom_du_fichier']['fichier'])&&($_FILES['nom_du_fichier']['error'] == UPLOAD_ERR_OK)) {
$chemin_destination = '/var/www/fichiers/';
move_uploaded_file($_FILES['nom_du_fichier']['tmp_name'], $chemin_destination.$_FILES['nom_du_fichier']['name']);
}
?>
ensuite approvisionner la base de données en changeant les données excel pour être compatible avec MysQL
par un mécanisme subtil que les noobs comme moi ne connaissent pas !

Ce message s'adresse aux experts du php!!

Merci à tous !