Accueil > Forum > > > > Ouvrir un fichier avec fopen
Ouvrir un fichier avec fopen
dimanche 1 février 2009 à 22:05:38 |
Ouvrir un fichier avec fopen

ecolom
|
Bonjour à tous, j'ai un formulaire avec lequel on peut attacher un fichier. Un second formulaire me permet d'afficher toutes les données encodées par le premier formulaire. J'ai une zone qui affiche le nom du fichier que l'on a attaché. J'aimerais à côté de cette zone placer un bouton voir afin d'éditer le fichier. Mon exemple de code: <tr> <td>Nom du fichier attaché :</td> <td> <input type="text" name="fichierannexe" value="<?php echo $ticket['fichierannexe']; ?>" /></td> <input type='submit' value='voir' <?php if (!($f=fopen("setup.txt","r"))) exit("Unable to open file!"); ?>/> </tr> Malheureusement, j'ai un message erreur et je ne vois pas comment je peux écrire le code afin d'ouvrir le fichier via le bouton VOIR tout en restant dans mon formulaire. Pour l'instant, j'ai fixer le nom de fichier mais par après j'adapterai la variable ' fichierannexe' Chaque chose en son temps. Pouvez-vous m'aider et où me mettre sur la voie svp. Merci à tous.
|
|
lundi 2 février 2009 à 07:44:24 |
Re : Ouvrir un fichier avec fopen

kohntark
|
Salut,
Il te faudra traiter le contenu du fichier avant de l'afficher, sinon gare aux problèmes de sécurité.
if (!($f=fopen("setup.txt","r"))) exit("Unable to open file!"); => Tu ne fais qu'ouvrir le fichier, normal qu'il ne s'affiche pas, en plus c'est dans le value d'un bouton !
Tu peux faire un truc comme ça : A l'arrivée sur la page, tu mets le contenu du fichier dans une variable javascript : if (false === $file = file_get_contents('setup.txt')) { $file = 'Unable to open file !'; }
une tite fonction JS : function showFile() { document.getElementById('fileContent').innerHTML = '<?php echo $file; ?>'; }
Puis le bouton et le div : <div id="fileContent"> </div> <input type="button" onclick="showFile();" value="Voir" />
Cordialement,
Kohntark -
|
|
lundi 2 février 2009 à 21:37:02 |
Re : Ouvrir un fichier avec fopen

ecolom
|
Bonjour, merci pour la réponse Kohntark, j'espèrais ne pas utiliser de JS dans ce type de demande. Le JS et moi, ça fait deux... :-) J'ai essayé d'appliquer les codes que tu m'as transmis mais cela ne fonctionne pas. Voir tes codes en rouge dans mon prog. J'ai insérér les deux premiers codes dans une fonction <script> et le dernier dans la ligne qui correspond à l'affichage du nom de fichier. <?php echo "<html>"; echo "<head>"; echo "<title> Demande intervention</title>"; echo "</head>"; echo "<body>"; include('..\include\gestion_sg\param.inc.php'); $liendb = mysql_connect($host,$user,$pws); mysql_select_db ($database); if ($_REQUEST['enregistre'] == "oui") { $sql = "UPDATE ticket set status = '".$_REQUEST['Status']."',". "imputation = '".$_REQUEST['imputation']."',". "description = '".$_REQUEST['description']."',". "datesouhaitee = '".$_REQUEST['datesouhaitee']."',". "dateprevue = '".$_REQUEST['dateprevue']."',". "operateur = '".$_REQUEST['operateur']."',". "datefin = '".$_REQUEST['datefin']."'". "WHERE numticket = '".$_REQUEST['numticket']."'"; mysql_query ($sql); } echo "<h1>Demande d'intervention IT </h1>"; echo "<p align=left> Fiche Intervention IT - Ticket N°[".$_REQUEST['numticket']."]</p>"; $sql = "SELECT * FROM ticket WHERE numticket = '".$_REQUEST['numticket']."'"; $resultat = mysql_query ($sql); $ticket = mysql_fetch_array ($resultat); ?> <script> if (false === $file = file_get_contents('setup.log')) { $file = 'Unable to open file !'; } function showFile() { document.getElementById('fileContent').innerHTML = '<?php echo $file; ?>'; } </script> <form action="ticket_edite.php" method="post"> <input type="hidden" name="enregistre" value="oui" /> <input type="text" name="numticket" value="<?php echo $_REQUEST['numticket']; ?>" /> <table width="886"> <tr>
<tr> <td>Nom du fichier attaché :</td> <td> <input type="text" name="fichierannexe" value="<?php echo $ticket['fichierannexe']; ?>" /> <div id="fileContent"> </div> <input type="button" onclick="showFile();" value="Voir" /></td> </tr>
Il y a quelque chose qui m'échappe et c'est certainement le placement de ton code dans mon programme. J'ai déjà essayer plusieurs possibilités mais en vains. Peux-tu me dire où je fais l'erreur ?
Merci
|
|
mardi 3 février 2009 à 08:10:50 |
Re : Ouvrir un fichier avec fopen

kohntark
|
Salut,
Je n'ai regardé que très rapidement. <script> if (false === $file = file_get_contents('setup.log')) { $file = 'Unable to open file !'; } function showFile() { document.getElementById('fileContent').innerHTML = '<?php echo $file; ?>'; } </script> => <script type="text/javascript"> <?php // c'est du php ici, pas du JS if (false === $file = file_get_contents('setup.log')) { $file = 'Unable to open file !'; } ?> function showFile() { document.getElementById('fileContent').innerHTML = '<?php echo $file; ?>'; } </script>
Ton script est difficile à lire, par ex : echo "<html>"; echo "<head>"; echo "<title> Demande intervention</title>"; echo "</head>"; echo "<body>"; => echo ' <html> <head> <title> Demande intervention</title> </head> <body>';
$_REQUEST['Status'] => mauvaise idée, il peut y avoir des problèmes de sécurité $status = strip_tags($_POST['status']);
$sql = "UPDATE ticket set status = '".$_REQUEST['Status']."',". "imputation = '".$_REQUEST['imputation']."',". "description = '".$_REQUEST['description']."' => Après traitement sécurité des variables issues du formulaire (comme ci dessus) $sql = "UPDATE ticket SET status = '$Status', imputation = 'imputation'', description = 'description', [etc ...]
C'est nettement plus lisible et moins lourd, non ?
Cordialement,
Kohntark -
|
|
mardi 3 février 2009 à 14:42:17 |
Re : Ouvrir un fichier avec fopen

ecolom
|
Hello,
j'ai appliqué le code script que tu as modifié. Mais sans résultat, j'ai tjrs en bas de l'explorer une erreur sur la page.
J'ai changé aussi la partie echo. En fait je me suis inspirer du livre PHP5 de micro application qui utilisait les code echo " <HTML>"; Ta méthode fonctionne alors je l'applique. ;-) ça me permet aussi d'apprendre d'autres subtilités de ce langage. Pour ce qui est des variables, je testerai plus tard car mon gros soucis c'est que ce foutu fichier ne s'ouvre pas quand j'appuie sur le bouton. C'est un fait que ce que tu écris est plus simple que tout mes ".$_REQUEST ( c'était encore un extrait que j'ai appliqué du livre PHP5 ). pfffffff.
Ma question est : La partie script que tu as écrite ci-dessus doit-elle etre placée entre les head ou après la ligne Form de mon formulaire ? Si c'est entre les head, c'est incorrect car les echo perturbent ton script. Si c'est en dessous de la ligne Form, ça ne fonctionne pas. Puis-je ajouter le chemin du fichier C:\TEST.TXT ? Helpppppp... J'en rêve de ce code 
<?php echo ' <html> <head> <title> Demande intervention</title> </head> <body>'; include('..\include\gestion_sg\param.inc.php'); $liendb = mysql_connect($host,$user,$pws); mysql_select_db ($database); if ($_REQUEST['enregistre'] == "oui") { $sql = "UPDATE ticket set status = '".$_REQUEST['Status']."',". "imputation = '".$_REQUEST['imputation']."',". "description = '".$_REQUEST['description']."',". "datesouhaitee = '".$_REQUEST['datesouhaitee']."',". "dateprevue = '".$_REQUEST['dateprevue']."',". "operateur = '".$_REQUEST['operateur']."',". "datefin = '".$_REQUEST['datefin']."'". "WHERE numticket = '".$_REQUEST['numticket']."'"; mysql_query ($sql); } echo "<h1>Demande d'intervention SG </h1>"; echo "<p align=left> Fiche Intervention IT - Ticket N°[".$_REQUEST['numticket']."]</p>"; $sql = "SELECT * FROM ticket WHERE numticket = '".$_REQUEST['numticket']."'"; $resultat = mysql_query ($sql); $ticket = mysql_fetch_array ($resultat); ?> <form action="ticket_edite.php" method="post"> <script type="text/javascript"> <?php // c'est du php ici, pas du JS if (false === $file = file_get_contents('c:\test.txt')) { $file = 'Unable to open file !'; } ?> function showFile() { document.getElementById('fileContent').innerHTML = '<?php echo $file; ?>'; } </script> <input type="hidden" name="enregistre" value="oui" /> <input type="text" name="numticket" value="<?php echo $_REQUEST['numticket']; ?>" /> <table width="886"> <tr> <td>Nom du fichier attaché :</td> <td> <input type="text" name="fichierannexe" value="<?php echo $ticket['fichierannexe']; ?>" /></td> </tr> <div id="fileContent"> </div> <input type="button" onclick="showFile();" value="Voir Le Fichier Annexe" /> As-tu une autre idée kohntark ?
Merci
|
|
mardi 3 février 2009 à 19:14:05 |
Re : Ouvrir un fichier avec fopen

kohntark
|
Salut,
La partie script que tu as écrite ci-dessus doit-elle etre placée entre les head ou après la ligne Form de mon formulaire ? En principe pas besoin. Par contre passer "<script type="text/javascript">" en dessous du code php qui le suit est une bonne idée (encore qu'il s'agisse plus d'un pb de présentation que d'autre chose)
Pour ce qui est des variables, je testerai plus tard car mon gros soucis c'est ... C'est aussi que ton code est peu lisible et que, dans certain cas cela peut poser pb (nottament le REQUEST) Un code bien présenté et 100 fois plus facile à débogguer !
J'ai retouché un peu le code; certaines lignes pour la lisibilité, d'autres pour le fonctionnement.
<?php include('..\include\gestion_sg\param.inc.php'); $liendb = mysql_connect($host,$user,$pws); mysql_select_db ($database);
if (isset($_POST['enregistre']) && $_POST['enregistre'] == 'oui') { $sql = "UPDATE ticket set status = '".$_REQUEST['Status']."',". "imputation = '".$_REQUEST['imputation']."',". "description = '".$_REQUEST['description']."',". "datesouhaitee = '".$_REQUEST['datesouhaitee']."',". "dateprevue = '".$_REQUEST['dateprevue']."',". "operateur = '".$_REQUEST['operateur']."',". "datefin = '".$_REQUEST['datefin']."'". "WHERE numticket = '".$_REQUEST['numticket']."'"; if (false == $q = mysql_query($sql)) die(mysql_error().'<br />'.$sql); }
$sql = "SELECT * FROM ticket WHERE numticket = '".$_POST['numticket']."'"; $resultat = mysql_query ($sql); $ticket = mysql_fetch_array ($resultat);
if (false === $file = @file_get_contents('c:/test.txt')) { $file = 'Unable to open file !'; } ?>
<html> <head> <title>Demande intervention</title> </head> <body>
<?php echo "<h1>Demande d'intervention SG </h1> <p align=left> Fiche Intervention IT - Ticket N°[".$_POST['numticket']."]</p>"; ?>
<script type="text/javascript"> function showFile() { document.getElementById('fileContent').innerHTML = '<?php echo nl2br($file); ?>'; } </script>
<form action="ticket_edite.php" method="post"> <input type="hidden" name="enregistre" value="oui" /> <input type="text" name="numticket" value="<?php echo $_POST['numticket']; ?>" /> <table width="886"> <tr> <td>Nom du fichier attaché :</td> <td> <input type="text" name="fichierannexe" value="<?php echo $ticket['fichierannexe']; ?>" /> </td> </tr> </table> </form>
<div id="fileContent"> </div> <input type="button" onclick="showFile();" value="Voir Le Fichier Annexe" /> ... ??
Il y a encore de nombreuses erreurs dans ce code, mais dans un premier temps assure toi que le bouton "voir" fonctionne. Attention : La lecture du fichier c:/test.txt risque d'échouer suivant comment il est écrit et dépend de la manière dont il l'a été (éditeur de texte, OS, etc ...) Si ça ne fonctionne pas écrit une simple phrase dans le fichier (sans retour à la ligne) et re teste.
Où est ton bouton de validation du formulaire ?
Bon courage,
Kohntark -
|
|
mardi 3 février 2009 à 21:57:37 |
Re : Ouvrir un fichier avec fopen

ecolom
|
Réponse acceptée !
Re, D'accord avec toi pour la présentation du code. Mais je me suis inspiré du livre PHP5 pour pouvoir commencer à dev. dans ce langage. Si en plus les livres se retournent contre moi...  Merci pour tes explications qui me sont très utiles et qui me permettent d' ouvrir les yeux sur le sujet. J'ai adapté selon tes indications et il n'y a plus de message erreur. Par contre, j'ai systématiquement ==> Unable to open file ! j'ai changé à plusieurs reprises la façon d'écrire le path. Sans résultat. Je pense que nous sommes dans le bon.... Une question : Pourquoi avoir ajouté ==> nl2br($file) cela exprime un saut de ligne . Cela ne m'intèresse pas du fait que je veux ouvrir le fichier à l'extérieur de mon formulaire. Il faut savoir aussi que j'aurai plusieurs extensions de files. DOC - JPG - TXT - XLS - PDF
Afin qu'il n'y ait pas confusion dans les idées, j'ai ajouté le code ci-dessous pour effectuer un parcourir sur le disque. <input type="file" name="fichierannexe" /> Je sélectionne le fichier désiré et clique sur bouton droit pour afficher le popup windows. A partir de là, je peux choisir delete - rename - etc.. surtout ouvrir et dans ce cas, le fichier s'ouvre comme je le désire. Le bouton qui se trouve dans mon code doit récupérer la variable de ma zone fichierannexe et dès que l'on clique dessus il doit ouvrir le fichier extérieurement à mon formulaire. Comme j'ai fait avec <input type="file"> Afin de ne pas tout mélanger. Je ne travaille pas avec la variable pour l'instant et je fixe le fichier dans le code. Quand tu me dis qu'il y aurait encore de nombreuses erreurs, tu m'inquiètes là  Dans le code que j'ai déposé sur le forum, tu n'as pas toutes les lignes car j'ai limité l'affichage pour ne pas avoir des pages et des pages de code. Je n'ai pas mis les autres zones de résultats ni la fin de mon fichier car j'ai jugé qu'il ne serait pas utile pour mon prob. de Foutuuuuu Boutonnnnn. Merci pour ton message, du COURAGE, je vais en avoir besoin car je rame. Le prog. que j'ai écrit "via le livre" fonctionne et se met à jour avec la Db. Reste le bouton..grrrrrrrrr Par contre j'adapterai tes codes et conseils après cette recherche interminable. Si t'as d'autres idées... Merci
|
|
Cette discussion est classée dans : fichier, ouvrir, formulaire, zone, fopen
Répondre à ce message
Sujets en rapport avec ce message
ouvrir un fichier distant [ par GroSam ]
Salut!J'aimerais savoir si il est possible d'ouvrir/ecrir dans un fichier texte placé dans un réseau interne. Je sais que ca marche en locale avec$fp
Ouvrir fichier distant [ par donbesada ]
Salut à tous!J'ai besoin de votre aide pour ouvrir un fichier distant en php. Je sais que la fonction "fopen" le permet mais je ne connais pas sa synt
Comment ouvrir un fichier qui est un url sans fopen ? [ par mifinoufou ]
Bonjour, j'aimerais ouvrir un fichier url mais la fonction fopen() ne fonctionne pas car sur le serveur la config allow_url_fopen doit etre à off. Exi
histoire de formulaire [ par escaflone1 ]
salut bon je me pose des p'tites questions et j'essaye de comprendre un peu le php.j'essaye de faire un formulaire ou on rentre un chiffre et lorsque
comment ouvrir un fichier à l'aide d'un bouton dans un formulaire?? [ par betama ]
salutje voudrais savoir comment ouvrir un fichier à l'aide d'un bouton "ouvrir" dans un formulaire c'est à dire lorsque je clique sur le bouton "ouvri
Lecture Fichier [ par _toutfou ]
Bonjour, Voila ce que j'ai besoin de faire :Ouvrir un fichier en lectureRecuperer son contenu et le placer dans un tableau pour chaque ligne du tab
Ouvrir un fichier [ par keket ]
Bonjour, voila, j'ai un petit problème que je n'arrive pas a régler. Je crée un fichier .csv dans un répertoire. et je voudrai une fois mon fichier re
zone membre [ par montana75013 ]
bonjour a tous ,desole je suis debutant en php j'ais quelque question pour vous.en faite j'ai cree un site http://pap.underground.free.fr/</f
Modification de fichier txt [ par Annadrill ]
Bonjour,voila: j'ai créé un formulaire qui m'affiche dans la le fichier.txt,que l'on peut modifier puis réécrire dans le fichier.txt.mon problème est
ouvrir en direct un csv généré [ par caviar ]
Saluté,j'ai un petit pb à la c** ...Je génère un fichier CSV depuis un script php avec les headers qui vont bien pour lancer direct le téléchargement.
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|