Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem - zmiana z pliku poprzez formularz
Przemo_
post 12.06.2007, 17:18:29
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

Ostrzeżenie: (0%)
-----


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_

Ten post edytował Przemo_ 12.06.2007, 17:20:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Glarden
post 12.06.2007, 17:50:31
Post #2





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

Ostrzeżenie: (0%)
-----


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.


--------------------
Raz, dwa, trzy, baba Jaga patrzy!
http://trelemorele.cba.pl
Go to the top of the page
+Quote Post
Przemo_
post 13.06.2007, 10:40:19
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

Ostrzeżenie: (0%)
-----


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!

Ten post edytował Przemo_ 12.06.2007, 22:15:36
Go to the top of the page
+Quote Post
uli
post 13.06.2007, 12:15:45
Post #4





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował uli 13.06.2007, 12:17:10


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
Przemo_
post 13.06.2007, 18:34:30
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

Ostrzeżenie: (0%)
-----


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_
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 03:51