ecolom
Messages postés68Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention 1 décembre 2012
-
1 févr. 2009 à 22:05
ecolom
Messages postés68Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention 1 décembre 2012
-
3 févr. 2009 à 21:57
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:
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.
ecolom
Messages postés68Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention 1 décembre 2012 3 févr. 2009 à 21:57
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.
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
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.
kohntark
Messages postés3706Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 févr. 2009 à 07:44
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; ?>';
}
ecolom
Messages postés68Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention 1 décembre 2012 2 févr. 2009 à 21:37
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.
echo "Demande d'intervention IT
";
echo " Fiche Intervention IT - Ticket N°[".$_REQUEST['numticket']."]
";$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">
" />
<table width="886">
<tr>
<tr>
<td>Nom du fichier attaché :</td>
<td> " />
</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 ?
kohntark
Messages postés3706Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 3 févr. 2009 à 08:10
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 JSif (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 "";
=>
echo '
<html>
<head>
<title> Demande intervention</title>
</head>
';
$_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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
ecolom
Messages postés68Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention 1 décembre 2012 3 févr. 2009 à 14:42
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
";$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 JSif (false $file file_get_contents('c:\test.txt')) {
$file = 'Unable to open file !';
}
?>
function showFile() {
document.getElementById('fileContent').innerHTML = '<?php echo $file; ?>';
}
</script>
kohntark
Messages postés3706Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 3 févr. 2009 à 19:14
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.
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.