Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana wartości zmiennej za pomocą formularza...
Forum PHP.pl > Forum > Przedszkole
maaciek
Witam, jak zrobić coś takiego:

mamy podstronę z treścią:(tresc.php)
  1. <?php
  2. $nazwa = "Wartość1";
  3. $nazwa2 = "Wartość2";
  4. ?>


Jak zrobić skrypt który działał by tak:
Wchodzę na podstronę powiedzmy edit.php, pojawiają mi się 2 okienka formularza,
wprowadzam w nie jakąś wartość (powiedzmy że $nazwa = "Zmieniona Wartość", $nazwa2 = "Zmieniona Wartość 2")
I daje submit, skutkuje to tym że w pliku tresc.php wartość $nazwa z Wartość1 jest zamieniana na Zmieniona Wartość1, i tak samo w $nazwa2.

Pozdrawiam
szawel
poczytaj o funkcji eval()
http://php.net.pl/manual/pl/function.eval.php
przekazujesz to co wpiszesz do formularza do tej funkcji i ona wykonuje poprostu to jako kod php wiec wartosz sie zmieni
uzycie jej jest dosc niebezpieczne poniewaz mozna tak wykonac dowolny kod php


edit:
sorry chyba nie do konca o to chodzilo bo eval nie zmieni wpisu w pliku
maaciek
probowalem wczesniej z eval...ale nic z tego...

bo chodzi poprostu o to żeby tylko zmienić wartość zmiennej...

może coś takiego?
plik edit.php
  1. <?php
  2.  
  3. $nazwa = "Wartość1";
  4. $nazwa2 = "Wartość2";
  5.  
  6. if(isset($_POST['submit'])){
  7.  file_put_contents('edit.php', '<?php
  8.  $nazwa = "'.$_POST['nazwa'].'";
  9.  $nazwa2 = "'.$_POST['nazwa2'].'";
  10. ?>');
  11. }
  12. else {
  13. ?>
  14. <form action='' method='POST'>
  15. <INPUT TYPE='text' NAME='nazwa' VALUE='<?php echo $nazwa; ?>'><br>
  16. <INPUT TYPE='text' NAME='nazwa2' VALUE='<?php echo $nazwa2; ?>'><br>
  17. <input type='submit' name='submit' value='zapisz' />
  18. <?php
  19. }
  20. ?>


Jednak po kliknieciu zapisz pojawia się:
"Fatal error: Call to undefined function: file_put_contents() in /home/KONTA/WWW/.../edit.php on line 7"
Shili
Jakiej wersji php używasz?
put_file_contest() wymaga przynajmniej 5, jeśli masz mniejszą - skorzystaj z funkcji oferujących podobną funkcjonalność.
maaciek
właśnie problem w tym że 5...

A jednak nie...już działa smile.gif
pablo114
moze tak poprostu...

formularz
  1. <?php
  2. <FORM action=1.php method=post>
  3. <P>
  4. <LABEL for=firstname>n: </LABEL>
  5. <INPUT type=text id=n name=n><BR>
  6. <LABEL for=lastname>n2: </LABEL>
  7. <INPUT type=text id=n2 name=n2><BR>
  8.  
  9. <INPUT type=submit value=Send> 
  10. </P>
  11.  </FORM>
  12. ?>


plik 1.php
  1. <?
  2.  
  3. $nazw = $_POST["n"];
  4. $nazw2 = $_POST["n2"];
  5.  
  6. $nazwa_pliku = '2.php';
  7. $tekst = '<?php $nazwa = '.$nazw.'; $nazwa2 = '.$nazw2.'; ?>';
  8.  
  9.  if (!$wskaznik_pliku = fopen($nazwa_pliku, 'w')) {
  10. echo "Nie mogę otworzyć pliku ($nazwa_pliku)";
  11.  
  12.  exit;
  13.  }
  14.  if (fwrite($wskaznik_pliku, $tekst) === FALSE) {
  15. echo "Nie mogę zapisać do pliku ($nazwa_pliku)";
  16.  
  17.  exit;
  18.  }
  19. echo "zapisano do pliku ($nazwa_pliku)";
  20.  
  21. fclose($wskaznik_pliku); 
  22.  
  23. ?>


i utwórz jeszcze plik 2.php w nim będa te zmienne ktore chcesz modyfikowac
janek1230
A z drugiej strony gdzieś widziałem taki skrypt który nie nadpisuje całego pliku tylko poprostu zmienia wartość zmiennej..;
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-2024 Invision Power Services, Inc.