Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem - zmiana z pliku poprzez formularz
Forum PHP.pl > Forum > Przedszkole
Przemo_
Witam.
Ostatnio zaczalem sobie pisac CMS'a dla wlasnego uzytku.
Kilka rzeczy nie podobalo mi sie wiec postanowilem je zmienic :
-chce zmienic,by wszystkie ustawienia byly w jednym pliku.
umiem dodac do pliku jakis.php $blabla itp.
ale teraz tutaj zaczyna sie moj problem.
A mianowicie chcialbym zapisane juz dane w pliku jakis.php zmieniac poprzez formularze na stronie.
TZN. gdy mam np:
  1. <?
  2. $admin = "czlowiek";
  3. $admin_pass = "haselko";
  4. ?>

To bym chcial zmieniac je z poziomu strony poprzez formularze.
Formularz zrobilem sam ale nie umiem tego zmienic.
Domyslam sie, ze to trzeba poprzez:
1)otwarcie pliku
2)zapis
3)zamkniecie pliku
Na tym moja wiedza sie konczy.
Nie umiem tego zrobic. Patrzylem na tego typu skrypty ale to nie pomoglo.
Bardzo prosilbym o wskazowki, gdyz dopiero sie zaczynam uczyc PHP.

Pozdrawiam Przemo_
Glarden
Mam takie dwa skrypciory. Pierwszy, działa tylko wtedy, kiedy wiesz, w której linijce jest zapisane to, co chcesz zmienić:
  1. <form action='zmien.php' method='post'>
  2. Zmien haslo na: <input type='text' name='haslo'/>
  3. <input type='submit' value='Zmien'/>
  4. </form>
  5. <hr>
  6. <?php
  7. if (isset ($_POST['haslo'])) {
  8. $haslo = $_POST['haslo'];
  9. $tab = file('dane.txt');
  10. $tab[2] = "$admin_pass = ".$haslo.";rn"; //dwójkę zastąp linijką, w której jest zapisana zmienna do zmiany. (liczenie zacznij od 0)
  11. $plik = fopen('dane.txt', 'w');
  12. $n = 0;
  13. while ($n<count($tab)) {
  14. $zapis = fwrite($plik, $tab[$n]);
  15. $n++;
  16. }
  17. echo ("Haslo zmienione!");
  18. }
  19. ?>


Teraz drugi sposób, ale w pliku z danymi musisz mieć znaczniki "<?php" i "?>".
  1. <form action='zamien2.php' method='post'>
  2. Zmien haslo na: <input type='text' name='haslo'/>
  3. <input type='submit' value='Zmien' />
  4. </form>
  5. <hr>
  6. <?php
  7. if (isset ($_POST['haslo'])) {
  8. $haslo = $_POST['haslo'];
  9. include ("dane.txt");
  10. $plik = fopen('dane.txt', 'w');
  11. $zapis = fwrite($plik, "<?phprn$admin = ".$admin.";rn$admin_pass = ".$haslo.";rn?>");
  12. fclose($plik);
  13. echo ("Zmiany zapisane.");
  14. }
  15. ?>


Ten drugi jest chyba trochę lepszy, bo nie musisz z nim liczyć linijek.
Przemo_
zaraz przetestuje i dam znac czy dziala!

//EDIT Drugi sposob nie dziala sad.gif zaraz zobacze pierwszy.

sluchajcie moze ja cos zle robie.
a robie tak :
PLIK edytuj.php
  1. <form action='zamien.php' method='post'>
  2. Zmien haslo na: <input type='text' name='haslo'/>
  3. <input type='submit' value='Zmien'/>
  4. </form>
  5. <hr>
  6. <?php
  7. if (isset ($_POST['haslo'])) {
  8. $haslo = $_POST['haslo'];
  9. $tab = file('dane.txt');
  10. $tab[2] = "$admin_pass = ".$haslo.";rn"; //dwójkę zastąp linijką, w której jest zapisana zmienna do zmiany. (liczenie zacznij od 0)
  11. $plik = fopen('zapisywane_dane.txt', 'w');
  12. $n = 0;
  13. while ($n<count($tab)) {
  14. $zapis = fwrite($plik, $tab[$n]);
  15. $n++;
  16. }
  17. echo ("Haslo zmienione!");
  18. }
  19. ?>


Plik z ustawieniami :
  1. <?php
  2. $admin = "czlowiek";
  3. $admin_pass = "haselko";
  4. ?>


i mam tez plik
zamien.php
a w nim :
  1. <?php
  2. ZAPISANO!!!
  3. ?>

i nie idzie. jak cos to prosilbym o dokladną instrukcje
Pozdro

dobra... mam dzieki poradzilem sobie tym pierwszym sposobem. THX Glarden

sluchajcie... kolejny problem
a mianowicie mam plik edytuj.php
  1. <form action='edytuj.php?z=haslo' method='post'>
  2. Zmien haslo na: <input type='text' name='haslo'/>
  3. <input type='submit' value='Zmien'/>
  4. </form>
  5. <hr>
  6. <?php
  7. if (!isset($z)) $z = "";
  8.  if ($z == haslo) {
  9. $haslo = $_POST['haslo'];
  10. $tab = file('ustawienia.php');
  11. $tab[1] = "$admin = ".$haslo.";rn"; //dwójkę zastąp linijką, w której jest zapisana zmienna do zmiany. (liczenie zacznij od 0)
  12. $plik = fopen('ustawienia.php', 'w');
  13. $n = 0;
  14. while ($n<count($tab)) {
  15. $zapis = fwrite($plik, $tab[$n]);
  16. $n++;
  17. }
  18.  echo ("Haslo zmienione!");
  19. }
  20.  
  21. ?>


a plik ustawienia.php to
  1. <?
  2. $admin = "admin";
  3. ?>


i owszem skrypt zmienia $admin na taki jaki chce ale jak dodaje go do pliku to bez "" czyli wychodzi wtedy
  1. <?php
  2. <
  3. $admin = admin;
  4. ?>

wczesniej bylo all dobrze. niewiem dlaczego teraz tak jest sad.gif
a ja nie moge tak miec, poniewaz mam require w index.php, ktory pokazuje mi title na glownej z pliku ustawienia.php i jak $admin jest bez "" to
  1. <?php
  2. Parse error: parse error in c:usrkrasnalwwwprzemoustawienia.php on line 2
  3. ?>

i dopiero jak dodam recznie to cacy chodzi.
wiec niewiem co zle robie.
Pozdro!
uli
linia 11 w edytuj.php :

  1. <?php
  2. $tab[1] = "$admin = "".$haslo."";rn"; //dwójkę zastąp linijką, w której jest zapisana zmienna do zmiany. (liczenie zacznij od 0)
  3. ?>
Przemo_
Cytat(uli @ 13.06.2007, 13:15:45 ) *
linia 11 w edytuj.php :

  1. <?php
  2. $tab[1] = "$admin = "".$haslo."";rn"; //dwójkę zastąp linijką, w której jest zapisana zmienna do zmiany. (liczenie zacznij od 0)
  3. ?>

Wielkie Dzieki. Wszystko dziala.
Pozdrawiam Przemo_
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.