Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Panel Administracyjny. Edycja plików.
Forum PHP.pl > Forum > PHP
Kaiba Ziom
Witam, robie pod własną strone panel admina i chce zrobić tam coś takiego że jak wejde w:
Panel=>Modyfikuj=>index.php
To moge zedytować cały index.php .
Tzn:
Pojawia się takie okienko , naprzykład takie w jakim pisze się posty na forum smile.gif.
A w nim cała zawartość indexu.php i moge to zedytować i zapisać. smile.gif

Mam jeszcze jedną prośbe.
Jak wchodze w :
Panel=>Modyfikuj=>config.php
To w config.php mam zmienne typu:
  1. <?php
  2. $title = 'Tytuł strony'
  3. ?>



To też chce zedytować .
$title jest w linijce numer 3.
Chce żeby to wyglądało następująco:
Tytuł: [Okno] a w nim zawartość $title.
I też jak zedytuje to jest przycisk zapisz.

Z góry dziękuje za pomoc. smile.gif))
Jestem początkującym web masterem w php więc proszę o ścisłe wytłumaczenie smile.gif.
Pozdrawiam
skowron-line
file_get_contents
i to co pobierzesz ta funkcja wrzucasz w pole textarea i modyfikujesz potem uzyj funkcji
fwrite

poczytaj i zacznij cos sam robic. jak natrafisz na problem to pokaz kod
Turgon
skowron: Lepiej file_put_contents. Mniej kodu tongue.gif
Kaiba Ziom
Fajnie blink.gif Tyle że nic nie rozumiem tongue.gif .
Może jakiś skrypt?
Turgon
Manual php.net :-) Ale żeby nie było dam też przykład.
  1. <?php
  2. if(isset($_POST['file'])) file_put_contents('config.php',$_POST['file']);
  3. $file = file_get_contents('config.php');
  4. print '<form method="POST"><textarea name="file">'.$file.'</textarea><input type="submit" /></form>';
  5. ?>

Nie testowałem, więc nie ręczę, że działa.
Kaiba Ziom
Działa ale nie wszystko tiredsmiley.gif .
Okno jest 100x20 -.- , a jak klikne submit to wyskakuje błąd w linii numer 2.
  1. <?php
  2. if(isset($_POST['file'])) file_put_contents('index.php',$_POST['file']);
  3. $file = file_get_contents('index.php');
  4. print '<form method="POST"><textarea width="900" height="100%" name="file">'.$file.'</textarea><input type="submit" /></form>';
  5. ?>

Ustawiłem width ale dalej tak samo małe okienko :/.
Zrobiłem coś takiego:
  1. <?php
  2. print '<center>';
  3. if(isset($_POST['file'])) file_put_contents('index.php',$_POST['file']);
  4. $file = file_get_contents('index.php');
  5. echo '<form method="POST"><textarea style="width: 1000px; height: 1000px" name="file">'.$file.'</textarea><br><input type="submit" value="Zapisz" /></form>';
  6. print '</center>';
  7. ?>

Chodzi wszystko oprócz zapisz sad.gif.
Turgon
Chłopcze, kurs http://kurs.browsehappy.pl i dopiero mi tutaj ze skargami przychodź. Z resztą piszę. Skryptu nie testowałem.
Kaiba Ziom
Wiem że nie testowałeś :S.
Ale wywala błąd w 3 linijce jak daje zapisz.
Turgon
Ja nie jasnowidz, więc błędu nie odgadnę. Może go pokażesz ?
Kaiba Ziom
Fatal error: Call to undefined function: file_put_contents() in D:\INTERNET\WebServ\httpd\ntibia\admin.php on line 3
Turgon
A jaką masz wersję PHP ? Podpowiadam php_info();
kwiateusz
a ja ze ta funkcja jest w php 5 i wyżej... jak masz starsza to upgraduj, albo pobaw sie z fwrite itp.
Kaiba Ziom
Chodzi ale jak zapisuje robi mi głupoty z pliku ://.
przykład:
Normalnie:
  1. <?php include"./menu/items.php" ?>

Po Zapisaniu
  1. <?php include\\\"./menu/items.php\\\" ?>



  1. <?php
  2. print '<center>';
  3. if(isset($_POST['file'])) file_put_contents('index.php',stripslashes($_POST['file']));
  4. $file = file_get_contents('index.php');
  5. echo '<form method="POST"><textarea style="width: 500px; height: 500px" name="file">'.$file.'</textarea><br><input type="submit" value="Zapisz" /></form>';
  6. print '</center>';
  7. ?>

Mam coś takiego , a teraz jak zrobić aby pobierał z index.php z linii numer 3?
W linii 3 mam zmienną $title .
  1. <?php
  2. print '<center>';
  3. if(isset($_POST['file'])) file_put_contents('index.php',stripslashes($_POST['file']));
  4. $plik=file("index.php");
  5. $wpis="$title=".$wartosc;
  6. for ($i=0; $i<count($plik)); $i++)
  7. If ($i!=3) fwrite($zapis, $plik[$i]);
  8. else fwrite($zapis, $wpis."rn");
  9. echo '<form method="POST"><textarea style="width: 500px; height: 500px" name="file">'.$wpis.'</textarea><br><input type="submit" value="Zapisz" /></form>';
  10. print '</center>';
  11. ?>

Mam coś takiego ale nie chodzi sad.gif.
erix
Cytat
  1. <?php
  2. $wpis="$title=".$wartosc;
  3. ?>

Zwróć uwagę na cudzysłowy: http://pl.php.net/manual/pl/language.variables.php

PS. Stosuj klamerki do konstrukcji warunkowych. Zawsze (IMHO) czytelniej będzie.

Tak nawiasem, dlaczego nie skorzystasz z preg_replace" title="Zobacz w manualu PHP" target="_manual? Przynajmniej nie będziesz uzależniony od "fizycznego" położenia linijek z danymi.
Kaiba Ziom
Szczerze mówiąc to nie za bardzo umie ://.
Pomóżcie ;>.
  1. <?php
  2. $wpis = "$title=" $wartosc;
  3. ?>

Tak? tongue.gif
erix
nie...
Gdybyś uważnie przeczytał to, co jest napisane na zalinkowanej stronie manuala, to byś zauważył, że:
  1. <?php
  2. $wpis = "$title=".$wartosc;
  3. ?>

to jest co innego niż
  1. <?php
  2. $wpis = '$title='.$wartosc;
  3. ?>
Kaiba Ziom
  1. <?php
  2. print '<center>';
  3. if(isset($_POST['file'])) file_put_contents('index.php',stripslashes($_POST['file']));
  4. $plik=file("index.php");
  5. $wpis = '$title='.$wartosc;
  6. for ($i=0; $i<count($plik)); $i++)
  7. If ($i!=3) fwrite($zapis, $plik[$i]);
  8. else fwrite($zapis, $wpis."rn");
  9. echo '<form method="POST"><textarea style="width: 500px; height: 500px" name="file">'.$wpis.'</textarea><br><input type="submit" value="Zapisz" /></form>';
  10. print '</center>';
  11. ?>

bład w linii 14
:
  1. <?php
  2. for ($i=0; $i<count($plik)); $i++)
  3. ?>

Parse error: parse error, unexpected ')', expecting ';' in
://
Zmieniłem na :
  1. <?php
  2. for ($i=0; $i<count($plik); $i++)
  3. ?>


Teraz wywala błąd w linii 15
Warning: fwrite(): supplied argument is not a valid stream resource in

  1. <?php
  2. else fwrite($zapis, $wpis."rn");
  3. ?>


teraz juz nie wiem :s
erix
A plik czym otwierasz? Nie widzę żadnej linijki z fopen" title="Zobacz w manualu PHP" target="_manual.
Kamson
  1. <?php
  2. function file_put_contents($n,$d) {
  3. $f=@fopen($n,"w");
  4. if (!$f) {
  5.  return false;
  6. } else {
  7.  fwrite($f,$d);
  8. fclose($f);
  9.  return true;
  10. }
  11. }
  12. ?>


jak masz php starsze jak 5 winksmiley.jpg

potem kod Turgon'a działa smile.gif
Kaiba Ziom
Dawno mnie nie było dry.gif .
  1. <?php
  2. function file_put_contents($n,$d) {
  3. $f=@fopen($n,"w");
  4. if (!$f) {
  5.  return false;
  6. } else {
  7.  fwrite($f,$d);
  8. fclose($f);
  9.  return true;
  10. }
  11. }
  12. print '<center>';
  13. if(isset($_POST['file'])) file_put_contents('index.php',stripslashes($_POST['file']));
  14. $plik=file("index.php");
  15. $wpis = '$title='.$wartosc;
  16. for ($i=0; $i<count($plik); $i++)
  17. If ($i!=3) fwrite($zapis, $plik[$i]);
  18. else fwrite($zapis, $wpis."rn");
  19. echo '<form method="POST"><textarea style="width: 500px; height: 500px" name="file">'.$wpis.'</textarea><br><input type="submit" value="Zapisz" /></form>';
  20. print '</center>';
  21. ?>

Bład :

Fatal error: Cannot redeclare file_put_contents() in D:\INTERNET\WebServ\httpd\ntibia\admin.php on line 11
erix
Bo masz PHP5. Wywal funkcję file_put_contents ze swojego kodu.
Kamson
wcześniej jej nie miał a teraz ma;) dziwne
matx132
ja powiem jedno mi dziala takie cos:D:D

  1. <?php
  2. if(isset($_POST['file'])) file_put_contents('index.php',$_POST['file']);
  3. $file = file_get_contents('index.php');
  4. print '<form method="POST"><textarea style="width: 1000px; height: 1000px" name="file">'.$file.'</textarea><input type="submit" /></form>';
  5. ?>
PeterBass
Witam.
Mam coś takiego
  1.  
  2. <?php
  3. if(isset($_POST['file'])) file_put_contents('filmografia.php',$_POST['file']);
  4. $file = file_get_contents('filmografia.php');
  5. print ('<br>');
  6. print '<form method="POST"><textarea style="width: 1000px; height: 500px" name="file">'.$file.'</textarea><input type="submit" /></form>';
  7. ?>

I za każdym razem jak klikam "prześlij" wyskakuje mi "\".
Da się to jakoś wyłączyć, bądź zablokować?
Proszę o rozwiązanie, bądź o poprawiony skrypt.

Z góry serdecznie dziękuję i pozdrawiam.
PeterBass
erix
magic quotes?
PeterBass
Jestem dopiero początkującym webmasterem.
Czy mógłby/mogłaby Pan/i wkleić gotowy skrypt?
Bardo byłbym wdzięczny. smile.gif
Pozdrawiam.
PeterBass
erix
Zlecenia, to nie ten dział.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.