Bonjour à toutes et tous,
je rencontre un souci avec un formulaire PHP qui me permet d'uploader un fichier CSV via un formulaire et vers une base de données.
Je tiens à préciser que ce script fonctionnait il y a 2 ou 3 ans. J'en ai à nouveau besoin mais il semble que le code soit obsolète... Je viens d'y passer la journée et là je flanche et requiert votre aide
Tout se passe dans une seule page. Mais à chaque validation du formulaire, il n'arrive pas à trouver le fichier et me met que le fichier est introuvable (c'est déjà mieux qu'un message d'erreur mais je n'arrive pas à mettre à jour la fonction fopen())
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 <?php switch($_REQUEST['action']) { /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */ case "ajouter": /* On ouvre le fichier à importer en lecture seulement */ if (isset($_POST['fichier'])) $fp = fopen("$fichier", "r"); else { /* le fichier n'existe pas */ echo "Fichier introuvable ! Importation stoppée."; exit(); } while (!feof($fp)) /* Et Hop on importe */ { /* Tant qu'on n'atteint pas la fin du fichier */ $get = fgets($fp,4096); /* On lit une ligne */ $slashed=addslashes($get); $str=trim($slashed); /* On récupère les champs séparés par ; dans liste*/ $ligne = explode(";",$str); /* On assigne les variables */ $id = $ligne[0]; $email = $ligne[1]; /* Ajouter un nouvel enregistrement dans la table */ $query = "INSERT INTO contact VALUES('$id','$email')"; MYSQL_QUERY($query); if(mysql_error()) { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */ print "<br />Erreur dans la base de données : ".mysql_error(); print "<br /><br />Importation stoppée"; exit(); } else /* Tout va bien */ print "<table cellpadding='0' cellspacing='0' border='0'><tr><td width='30'>$id</td><td width='450'>$email</td></tr></table>"; } echo "Importation terminée, avec succès."; /* Fermeture */ fclose($fp); MYSQL_CLOSE(); break; default: ?> <form method="post" enctype="multipart/form-data"> <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=10240000 /> <br /> <b>Fichier au format CSV (séparateur : point virgule) : </b><br /> <input type="file" name="fichier" id="fichier" class="input-doc" /><br /><br /> <input type="submit" name="submit" value="Charger !"> <input type="hidden" name="action" value="ajouter"> </form> <br /> <br /> <? break; } ?>
Merci d'avance pour votre aide et votre temps !
Gregg
Partager