Probleme Serieux PHP a l'aiiiiiiiiiiiiiide

amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

c'est urrrrrrrrrrrrrrrrrrrrrrrrgggggggggggggggggggggggggggggggggggggggggggggggggggggggennnnnnnnnnt :


Vraiment je ne sais pas quoi dire apart que j'ai un probleme que je crois pas qu'il a une solution !!!!

dans mon code PHP

<form method="POST" action="inserer.php"> <p>
<input name="fichier" type="file" size="60" > </p>
<p><input type="submit" value="importer" name="B1" size="60"></p>
</form>

ici tout va bien , le chemin bel est bien ecrit une fois que je parcour mon fichier , mais dès que je click sur importer pour que je puisse récuperer le chemin de mon fichier dans la page correspondante pour l'afficher ou pour l'utiliser !!!!

$fichier = $_POST['fichier'];
echo $fichier;

c'est la ou il y'a la grande suprise ! il ne m'affiche pas le chamin complet ( par exemple : c:\document and setting\administrateur\mon_fichier_aupploader ) mais il m'affiche juste le dernier nom après le dernier antislash ( mon_fichier_aupploader ) , et dire que cela a marcher dans l'ordinateur d'un ami et dans le mien non , ainsi que je l'es essayer dans un autre ordinateur ca n'a pas marcher ,et meme dans mon pc ca a marcher et après ca a encore lacher ! vraiment c'est urgent j'ai besoin de savoir , j'ai beau fouiller dans les forum sans aucune solution , et je crois que peux etre je doit configurer qq chose en easyPHP ou en WAMP car je l'es essayer tt les deux et ca marche pas !!!
A voir également:

13 réponses

toto
 
Bonjour

"application/x-www-form-urlencoded" est la valeur par défaut de enctype. Pour un upload, justement, il faut la changer et mettre
<form method="POST" action="inserer.php" enctype="multipart/form-data">
0
toto
 
Il faut reprendre l'idée de kryoportail et mettre au début de ton script
<?php
if( isset($_FILES) )
{
  var_dump( $_FILES );
}
echo '---------------<BR>';
?>

pour comprendre ce qui se passe.
0
toto
 
peux-tu dire (cpier-coller) ce que donne var_dump( $_FILES['fichier']) avec Mozilla ?

J'ai fortement l'impression que ton script ne traite ABSOLUMENT PAS le fichier transmis par le formulaire, mais seulement les fichiers déjà présents sur le serveur. Tu fais tes essais en local, non ? Ou en tous cas, le fichier

d'autre part dans <form method="POST" action="inserer_trafic_appel.php"> le ENCTYPE="multipart/form-data" est obligatoire pour télécharger un fichier.
0
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
bon , je suis nouveau dans le forum , donc je ne sais pas comment faire pour modifier ce que j'ai déja écrit , donc je voulais vous aussi que ce probleme est présent dans Mozilla fireFox mais sur internet explorer ca marche sans probleme , j'éspère que cela vous aidera a m'aider et merci d'avance
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kryoportail Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   125
 
Salut,

Au lieu de récupérer $_POST['fichier'];
essaye $_FILES['fichier'];

Cette variables contient un tableau après validation de ton formulaire comme décrite ici :
http://perso.univ-rennes1.fr/pascal.aubry/doc/php_variables/_files.php

essaye plutot ca :

<?php
if( isset($_FILES['fichier']) )
{
	var_dump( $_FILES['fichier'] );
}
?>
<form method="POST" action="inserer.php" enctype="application/x-www-form-urlencoded">
	<p><input name="fichier" type="file" size="60" > </p>
	<p><input type="submit" value="importer" name="B1" size="60"></p>
</form> 



Attention : 'enctype="application/x-www-form-urlencoded"' est nécessaire dans le cadre d'un upload...

Cela devrait te débloquer...

Amicalement,
S@M...
http://kryoportail.ath.cx
-1
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
salut , bon j'ai essayer avec $_FILES comment t'a dit , ca marche toujours pas ,et il me donne le message d'erreur suivant
Notice: Undefined index: fichier in c:\program files\easyphp1-8\www\....

et j'ai aussi essayer avec : enctype="application/x-www-form-urlencoded" et ca marche toujours pas, le probleme c'est que dans internet explorer ca marche bien , mais ce site que je réalise devera biensure être utilisé par tous les navigateurs ... , merci de vos effort et j'éspère que vous m'aidiez car je vais bientot soutenir dans ce projet :s ....
-1
petinouv Messages postés 662 Date d'inscription   Statut Membre Dernière intervention   82
 
essaye de mettre un strip_slashes() sur $_POST['fichier']
-1
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
meme avec strip_slashes() sur $_POST['fichier'] ca marche pas , j'ai continuer alors a programmer , mais en utilisant internet explorer ! c'est vraiment dingues des choses qui peux arriver comme ca et te gacher la vie , si durant ma soutenance on me demande de faire le test sur mozila fire fox je serais fichus, merci pour votre aide
-1
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
ben , je l'es essayer mais comeme ca marche pas , ca cree une nouvelle erreur classique celle de Undefined index: fichier in ... bon , comme j'ai dit , sans tous cela ca marche sur internet explorer , mais il faut que ca marche aussi sur mozzila
-1
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
ben ca marche toujours pas , mais moi avant que je fait un test sur cette variable $_FILES , je veux l'afficher ! tous cela est déja fonctionnel comme j'ai déja dit sur intenet explorer mais pas sur mozilla fire fox , donc je crois qu'il ya quelque chose concernant la configuration de mozilla ,mais j'ai fouiller toute les option disponible et ca marche toujours pas :(
-1
l_epais Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   31
 
Bon, on se calme...

la premiere reponse était la meilleure:
utilise la variable globale $_FILES

il t'as donné le lien suivant:
http://perso.univ-rennes1.fr/pascal.aubry/doc/php_variables/­_files.php
c'est pas pour rien, si tu y avait été et que tu avais tout lu tu aurrais vu qu'il te faut modifier ton form:

<FORM ENCTYPE="multipart/form-data" ACTION="inserer.php" METHOD="POST">
<p><input name="fichier" type="file" size="60" > </p>
<p><input type="submit" value="importer" name="B1" size="60"></p>
</FORM>



@plus
-1
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
ok je me suis calmé et j'ai essayer aussi cette methode , et ca marche toujorus pas , voici mon code :
///// importation_trafic_appel.php


<html>

<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>importation des donneés appels </title>
<style type="text/css">
</style>
</head>

<body>
<center><img src="homepage_logoanart.bmp" ></center>
<hr><br><br><br>
<p> </p>
<font color="blue">Tafic appel mobile en minute:</font>
<form method="POST" action="inserer_trafic_appel.php">

<p>
<input name="fichier" type="file" size="60" >
</p>

<p><input type="submit" value=" importer " name="B1" size="60"></p>

</form>
<form action="vidage_trafic_appel.php" method="post"/>
<input type="submit" value="vider"/>
</form>
<hr>
<a href="anrt2.php"><img src="precedent.png" align="left"/></a><a href="b2.php"><img src="suivant.png" align="right"/></a>
</body>

</html>



/////////////////inserer trafic appel

<html>
<head>
<title>importation|donnees trafic(appel)</title>
<style type="text/css">
</style>
</head>
<body>
<center><img src="homepage_logoanart.bmp"></center>
<hr>
<br><br><br><br>
<?php
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('anrt') or die('Erreur de selection'.mysql_error());

$fichier = $_POST['fichier'] ;

echo $fichier;
?>
<p>
<label></label>
</p>
<?php
/* On ouvre le fichier à importer en lecture seulement */
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{ /* le fichier n'existe pas */
echo "<center><font color=blue size=5> Fichier introuvable !<br>Importation stoppée.</font></center>";
exit();
}

$i=-1;


while (!feof($fp))
{
$i=$i+1;
/* Tant qu'on n'atteint pas la fin du fichier CSV */
$ligne = fgets($fp,4096); /* On lit une ligne du fichier CSV*/

if (strlen($ligne)!=0&&$i!=0)
{

/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);

/* On assigne les variables */
$a = $liste[0];
$b = $liste[1];
$c = $liste[2];
$d = $liste[3];
$e = $liste[4];
$f = $liste[5];
$g = $liste[6];
$h = $liste[7];
$i = $liste[8];
$j = $liste[9];
$k = $liste[10];
$l = $liste[11];
$m = $liste[12];
$n = $liste[13];
$o = $liste[14];
$p = $liste[15];
$q = $liste[16];
$r = $liste[17];
$s = $liste[18];
$t = $liste[19];
$u = $liste[20];
$v = $liste[21];
$w = $liste[22];
$x = $liste[23];
/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO tab2 VALUES('$a','$b','$c','$d','$e','$f','$g','$h','$i','$j','$k','$l','$m','$n','$o','$p','$q','$r','$s','$t','$u','$v','$w','$x','')";
$result= MYSQL_QUERY($query);
}

if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
echo "<center><font color=blue size=5>Erreur dans la base de données :</font></center> ".mysql_error();
print "<br><b><center>Importation stoppée.</center>";
exit();
}

}

echo "<br><b><center><font color=blue size=5>Importation des trafics d'appel terminée, avec succès.</font></center>";

/* Fermeture */
fclose($fp);
MYSQL_CLOSE();

?>
<a href="b1.php"><img src="precedent.png" align="left"/></a><a href="b2.php"><img src="suivant.png" align="right"/></a>
</body>
</html>

ce code la est fonctionnel a 100% sur internet explorer il arrive a importer mon fichier et m'affiche " Importation des trafics d'appel terminée, avec succès " , mais quand j'essaie celui la sur mozilla me donne l'erreur que j'ai programmer " Fichier introuvable Importation stoppée " et pour echo $fichier; il m'affiche la dernière chaine de caractère après le dernier slash du chemin ce qui donne " le_Fichier.csv " tandit que pour internet explorer il m'affiche "C:\Documents and Settings\Administrateur\Bureau\Stage\Fichiers Stage\lec_fichier.csv " ce qui fait que l'application elle marche en totalité et a merveille , donc coté code il ne doit y etre aucune erreur vue que c'est fonctionnel sur internet explorer , mais donc ya qq chose qui le bloque sur mozzila donc j'éspère que vous m'aideriez , mmmmmmmmmmmmmmmmmmmmmmerci d'avaaaaaaaaaaaaaaaaaaaance !!!!
-1
amine-cmoi Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
salut ,

voila ce que ca me donne var_dump( $_FILES['fichier']) : array(5) { ["name"]=> string(22) "mon_fichier.csv" ["type"]=> string(24) "application/vnd.ms-excel" ["tmp_name"]=> string(44) "C:/Program Files/EasyPHP 2.0b1\tmp\php10.tmp" ["error"]=> int(0) ["size"]=> int(11629) }

bon , c'est pas grave , moi je suis entrain de travailler sur un site intranet , j'ai pas besoin de traiter un fichier a distance , je veux juste traiter des fichier qui sont présents dans le même serveurs que le site ,et le code que j'ai réalisé et fonctionnel sur internet explorer et arrive a nous faire atteindre l'objectif de l'application ,sauf que ca marche pas sur mozilla !!! merrrci d'avance et j'attend toujorus la solution
-1