Help stage redirection php urgent

Fermé
nicow57 - 1 juil. 2008 à 13:59
 nicow57 - 2 juil. 2008 à 11:10
bonjour
actuellement en stage , je n'arrive pas a finir mon projet j 'espere quelqu un ici serra la clé
je m'explique sur une premiere page j'ai un bouton parcourir et un bouton importer . le bouton parcourir permet d'aller chercher un fichier .sql contenant des requetes. et le bouton importer ouvre un message d 'alerte " voulez vous vraiment importer les données? oui/non" et pour le moment je boucle sur ma page en redirigeant vers la meme.

le nom de la page dans laquel je me trouve est "../front/plugin_import.config.form.php" C'est à dire que j'appelle exactement la meme page mais j'aimerais pouvoir traiter les informations entrée auparavant.
en gros lap remiere fois on utilise un premier chemin sur lekel on utilise les fonctions ensuite un autres etc... mais ca ne marche pas...


echo "<form enctype=\"multipart/form-data\" action=\"../front/plugin_import.config.form.php\" method=\"post\" onsubmit=\"return confirm('Etes vous sur de vouloir importer le fichier?')\">"; 
echo "<input type=\"file\" name=\"_filepath\">"; 
echo "<input type=\"hidden\" name=\"filepath\">"; 
echo "<input type=\"submit\" name=\"Submit\" value=\"importer\" >"; 

$lien = $_FILE['-filepath']; 
if (isset($lien) && $lien['name'] != ""){ 

$req =file_get_contents($lien['tmp_name']); 
$DB->query($req); 
};



Help plz Il me reste plus que ca pour que mon plugin fonctionne et que je réussisse mon stage ...
ca fait une semaine que je cherche ...
merci
A voir également:

3 réponses

macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
1 juil. 2008 à 14:37
Bonjour.

... mais ca ne marche pas...
En clair ?
Message d'erreur, page vide, ou ça ne fait pas ce que tu voudrait ?

Voilà déjà un début d'explication :
echo "<input type=\"file\" name=\"_filepath\">";
[...]
$lien = $_FILE['-filepath'];
0
...mais ca ne marche pas...

ben j'ai l'impression que rien ne se passe aucune valeur est entré dans ma table. J'ai testé directement les requetes contenue dans le fichier sql ( celui que je vais chercher avec le input file) grace à phpmy admin et les requetes fonctionnent. Le probleme ne vien donc pas de la .

en fait ce que j'aimerais pour être précis et si cela est possible c'est :

_l'utilisateur utilise le bouton parcourir pour trouver le cheminvers un fichier d 'extension .sql sur le DD
_clique sur le bouton importer
_ apparition du message d'alerte voulez vous vraiment importer . L utilisateur clique sur OK
_ traitement des informations cad que l 'on remplis la base de donnée
$req =file_get_contents($lien['tmp_name']); // pour recuperer le contenue du fichier.
$DB->query($req); //pour executer les requetes.
_redirection vers la meme page au cas ou l 'utilisateur voudrait utiliser d autres fichiers.

j 'espere avoir était plus claire . Je pensais y arriver avec le code précedant mais aucune valeur n'est ajouté à la BdD . J'ai beau chercher dasn tous les sens je toruve pas.

merci en tout cas de prendre mon sujet en considération.
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
1 juil. 2008 à 15:10
Je ne connais pas trop le système d'upload de php ($_FILE etc.), donc je te fais confiance sur la récupération des infos...

En vrac :
// Mode débug : On affiche le contenu de $_POST et $_FILE
if (isset ($_POST)) {
var_dump($_POST);
echo '<br />';
}
if (isset ($_FILE)) {
var_dump($_FILE);
echo '<br />';
}
// Fin mode débug

// On commence par regarder si on a déjà envoyé un fichier
if (isset ($_FILE['_filepath']) && ($_FILE['_filepath'] != "")) {
// Le traitement à faire si tout est OK
   $lien = $_FILE['_filepath'];
   $req =file_get_contents($lien['tmp_name']); 
// Mode débug : on affiche le contenu de $req
echo $req.'<br />';
// Fin débug
   $DB->query($req); 
}
// Le traitement à faire si on a envoyé un $_FILE['_filepath'] vide
else {
// On affiche le formulaire
   echo "<form enctype=\"multipart/form-data\" action=\"../front/plugin_import.config.form.php\" method=\"post\" onsubmit=\"return confirm('Etes vous sur de vouloir importer le fichier?')\">"; 
   echo "<input type=\"file\" name=\"_filepath\">"; 
   echo "<input type=\"hidden\" name=\"filepath\">"; 
   echo "<input type=\"submit\" name=\"Submit\" value=\"importer\" >"; 
}


A vérifier :
- file_get_contents n'existe que depuis la version 4.3.0 de php
- Avant de faire le file_get_contents, il ne faut pas faire un open ?
- Tu te connectes à la base ?
0
le gros inconvénient c 'est que je réalise un plugin donc integré à une autre application du coup je ne vois pas les message d 'erreur mais une page blanche
Merci pour ce que tu ma passé je vais me pencher dessus
0
nicow57 > nicow57
1 juil. 2008 à 17:24
bon apres quelque vérification oui je usis bien connecté à la base de donnée : le $DB -> query foncionne lorsque je rentre la requete manuellement

je n'arrive toujours pas à récuperer le bon chemin d'accee au fichier
deplus apres recherche mysql_query qui correspond à mon $DB->query ne peut utiliser qu 'une requete en meme temps

$req_explosee = explode(";", $req); devrait théoriquement me permetre de séparé mes requetes .


ALORS on a donc
// Mode débug : On affiche le contenu de $_POST et $_FILE
if (isset ($_POST)) {
var_dump($_POST);
echo '<br />';
}
if (isset ($_FILE)) {
var_dump($_FILE);
echo '<br />';
}
// Fin mode débug

// On commence par regarder si on a déjà envoyé un fichier
if (isset ($_FILE['_filepath']) && ($_FILE['_filepath'] != "")) {
// Le traitement à faire si tout est OK
$lien = $_FILE['_filepath'];
$req =file_get_contents($lien['tmp_name']);
$req_explosee = explode(";", $req);
// Mode débug : on affiche le contenu de $req
echo $req.'<br />';
// Fin débug
while (( j'ai pas encore toruvé la condition))
$DB->query($req_explode[i]);
i=i+1;
}
// Le traitement à faire si on a envoyé un $_FILE['_filepath'] vide
else {
// On affiche le formulaire
echo "<form enctype=\"multipart/form-data\" action=\"../front/plugin_import.config.form.php\" method=\"post\" onsubmit=\"return confirm('Etes vous sur de vouloir importer le fichier?')\">";
echo "<input type=\"file\" name=\"_filepath\">";
echo "<input type=\"hidden\" name=\"filepath\">";
echo "<input type=\"submit\" name=\"Submit\" value=\"importer\" >";
}

mais je pense que vu que j'ai réussi a ajouter des valeurs a partir de ce script le probleme vien plus de la récupération du chemin d'acces
help plz
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89 > nicow57
1 juil. 2008 à 17:48
Tu as passé le script avec les instructions de débuggage ?

Il y a une bonne intro sur $_FILES ICI
0
nicow57 > macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008
2 juil. 2008 à 11:10
BON apres reflexion je crois que c l'appel récursif sur la meme page qui fait tout raté

admetons en effet qu on recupere le chemin la premiere fois dans une variable

comme ce ci
$chemin= $_FILES['fichier']['filename'];

lors du click sur importer on recharge la meme page du coup $_FILES['fichier']['filename']; se vide et donc c 'est impossible de récuperer le chemin du fichier .

enfin c'est une question plutot ...
0