Téléchargement
illégal
Posez votre question Signaler

Editeur de fichier html & PHP

pinouf42 351Messages postés 11 novembre 2007Date d'inscription 23 mai 2012Dernière intervention - Dernière réponse le 8 avril 2010 à 15:09
Bonjour,
Je voudrais faire un editeur de fichier html & php pour mon site, histoire de pouvoir le gérer sans logiciel.
J'ai fait ceci (le chemin du fichier étant déjà indiqué précédemment et le code de la page est bien affiché):
Disons que $fichier = "../index.php"
-----------------------------------------
PAGES2.PHP:
-----------------------------------------
<?php
$fichier = $_POST['chemin'];
if($_POST['Submit']){
$open = fopen($fichier,"w+");
$text = $_POST['update'];
fwrite ($open, stripslashes($text));
fclose($open);
echo ("Fichier mis à jour.<br />");
$file = file($fichier);
foreach($file as $text) {
echo ($text."<br />");
}
}else{
$file = file($fichier);
echo ("<form action=".$PHP_SELF." method='post'>");
echo ("<textarea Name='update' cols='115' rows='20'>");
foreach($file as $text) {
echo ($text);
}
echo ("</textarea>");
echo ("<br /><br /><center><input name='Submit' type='submit' value='Changer la page' />\n
</center></form>");
}
?>

Quand je clique sur le bouton Changer la page. Ca ne change rien.
Merci d'avance
Lire la suite 

Editeur de fichier html & PHP »

33 réponses
Réponse
+1
moins plus
Un submit n'est peut-être pas considéré comme un champ... La condition if($_POST['Submit']) n'est peut-être jamais vraie. Essaye de mettre if(isset($_POST['update'],$_POST['chemin'])
Ajouter un commentaire
Réponse
+0
moins plus
Je ne vois pas l'erreur...
Perso j'utilise :
unlink($fichier);$open=fopen($fichier,"a+");
Essaye peut-être...

A part action=".$PHP_SELF." où il faudrait mettre des apostropes comme action='".$PHP_SELF."', tout est parfait, apparemment
Ajouter un commentaire
Réponse
+0
moins plus
Si tu regardes le code source, y a-t-il quelque chose qui est bizarre ?
Ajouter un commentaire
Réponse
+0
moins plus
C'est à dire?
Ajouter un commentaire
Réponse
+0
moins plus
Vois-tu une erreur quelconque ? une balise non refermée, des guillemets mal placés...
rd_9- 17 févr. 2010 à 21:55
Si il met un post, la réponse est probablement non...
Ajouter un commentaire
Réponse
+0
moins plus
Si tu enlèves le "\n" ???
Ajouter un commentaire
Réponse
+0
moins plus
Le \n n'est pas dans la partie d'ecriture du fichier. Normalement il ne change en rien le probleme.
Ajouter un commentaire
Réponse
+0
moins plus
Qu'entends-tu par "Quand je clique sur le bouton Changer la page. Ca ne change rien. " ?
rd_9- 17 févr. 2010 à 22:00
On peut facilement penser qu'il s'agit de la page qu'il veut modifier, puisque c'est le sujet...
Ajouter un commentaire
Réponse
+0
moins plus
Et bien, sa exécute la page mais il n'y a aucune modification.

J'utilise ce même code pour une autre page mais au lieu d'avoir $fichier, j'ai une valeur bien définie: texte.txt

Et lorsque je clique sur changer, ca fonctionne !!!

PS: si je change en if(isset($_POST['update'],$_POST['chemin']) j'ai une erreur:
Parse error: syntax error, unexpected '{' in /homepages/24/d284401489/htdocs/admin/pages2.php  on line 126

La ligne 126 est : if(isset($_POST['update'],$_POST['chemin']){
rd_9- 17 févr. 2010 à 22:05
Pour ton PS, désolé, il faut mettre une autre parenthèse ")" à la fin :
if(isset($_POST['update'],$_POST['chemin'])){
pinouf42- 17 févr. 2010 à 22:06
Que je suis débile ^^
Merci :p

EDIT: toujours pareil =(
Ajouter un commentaire
Réponse
+0
moins plus
C'est donc qu'il y a 2 instruction contraire :
Disons que $fichier = "../index.php" 
----------------------------------------- 
PAGES2.PHP: 
----------------------------------------- 
<?php
$fichier = $_POST['chemin']


La 1ère dit que $fichier='../index.php', la 2ème dit que c'est égale à $_POST['chemin']. Supprime l'une des deux !
Ajouter un commentaire
Réponse
+0
moins plus
En fait quand j'ai dit disons que $fichier="../index.php" c'est parce que j'ai un formulaire avant qui me demande le chemin vers le fichier. Et je dit que dedans j'ai inséré ../index.php donc la valeur $fichier est égale à ../index.php

Merci d'avance
Ajouter un commentaire
Réponse
+0
moins plus
Et alors essaye de mettre au début de cette page l'instruction $fichier="../index.php" à la place de $_POST['chemin'] (juste pour tester). Ca donne quoi ?
Ajouter un commentaire
Réponse
+0
moins plus
Ca fonctionne, je ne sais pas comment cela ce fait???
Ajouter un commentaire
Réponse
+0
moins plus
Mais je voudrais pouvoir specifier avant le fichier que je veux modifier =(
Ajouter un commentaire
Réponse
+0
moins plus
On avance ;-)
Test numéro 2 : met ça au début du code (en re-modifiant le test 1, biensur) :
echo ('"'. $_POST['chemin'] .'"');
En haut de ta page (quand tu la visualise) il doit y avoir des guillemets. Il y a-t-il un texte dedan :-p ?
C'est juste pour vérifier que $_POST['chemin'] possède bien une valeur
Ajouter un commentaire
Réponse
+0
moins plus
Oui il y a bien le texte ../index.php
Ajouter un commentaire
Réponse
+0
moins plus
Et fait pareil juste après $fichier = $_POST['chemin']; avec $fichier cette fois ?
Ajouter un commentaire
Réponse
+0
moins plus
J'ai encore le même texte ;)
Ajouter un commentaire
Réponse
+0
moins plus
Ou le vilain :-P
Essaye de mettre $fichier = $_POST['chemin']; juste APRES le if(isset($_POST['update'],$_POST['chemin'])){,
et/ou de mettre $open = fopen($_POST['chemin'],"w+");
Ajouter un commentaire
Réponse
+0
moins plus
J'avais déjà essayé de le mettre après le if(isset... mais sa ne fonctionnais pas, il ne m'ouvrait aucun fichier.
En mettant $_POST['chemin'] dans fopen sa ne change rien.
Ajouter un commentaire
Ce document intitulé « Editeur de fichier html & PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Editeur de fichier html & PHP - page 2