Probleme Serieux PHP a l'aiiiiiiiiiiiiiide

Fermé
amine-cmoi Messages postés 15 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008 - 15 août 2008 à 02:39
amine-cmoi Messages postés 15 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008 - 29 août 2008 à 16:33
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

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
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
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 vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
15 août 2008 à 02:53
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 dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 125
15 août 2008 à 05:35
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 vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
15 août 2008 à 21:25
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 jeudi 1 mars 2007 Statut Membre Dernière intervention 20 mai 2009 82
15 août 2008 à 23:31
essaye de mettre un strip_slashes() sur $_POST['fichier']
-1
amine-cmoi Messages postés 15 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
22 août 2008 à 13:59
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 vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
24 août 2008 à 21:51
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 vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
27 août 2008 à 15:30
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 vendredi 24 août 2007 Statut Membre Dernière intervention 12 août 2010 31
27 août 2008 à 15:44
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 vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
28 août 2008 à 11:56
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 vendredi 15 août 2008 Statut Membre Dernière intervention 29 août 2008
29 août 2008 à 16:33
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