Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Zapis skryptu php do pliku
-xawer-
post
Post #1





Goście







Witam wszystkich.
Czy istnieje mozliwosc zapisu danych w postaci skryptu php do pliku? Nastepnie aby strona z przechywanymi danymi otwierala sie jako strona .php i wykonywala podane skrypty.

np.
Mam formularz, w ktorym jedno pole odpowiada podaniu jakiegos linku (np. http://gory.com/zdjecia/tartry.JPG ), a drugi, zeby podac jego nazwe np ( TATRY). Chcialbym, aby dane przedstawiane byly w postaci <a href="http://gory.com/zdjecia/tartry.JPG">GORY</a>

Wiem, ze link nalezy zapisac do jednej zmiennej, nazwe do drugiej i odpowiednio w php dodac te dane:

$dane = echo '"<a href=".link.">".nazwa."</a>"'
Te dane zapisac maja sie do pliku, jednak z poziomu pliku txt ich zadanie nie zostanie wykonane. Jest ktos w stanie pomoc mi w rozwiazaniu tego problemu? :/
Powód edycji: dodalem tag (cysiaczek)
Go to the top of the page
+Quote Post
b_chmura
post
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


nie wiem czemu ale pod górkę lecisz

tak na chłopski rozum nie lepiej będzie jeśli dane w pliku będziesz przechowywał w poniższy sposób:

Kod
nazwa1|link1
nazwa2|link2
nazwa3|link3
nazwa4|link4
...


i obsługiwał to przykładowym skryptem:

  1. <?php
  2. $filename = 'plik.txt';
  3. $file = file($filename);
  4.  
  5. foreach($file as $line)
  6. {
  7. $dana = explode('|', $line);
  8. echo '<a href="'.$dana[1].'">'.$dana[0].'</a>'
  9. }
  10. ?>


w/w skrypt wyświetli Ci wszystkie linki z ich nazwami.
Go to the top of the page
+Quote Post
-xawer-
post
Post #3





Goście







Zrobilem tak jak powiedziales.

W pliku index.php znajduje sie formularz z polami o $pole1 i $pole2.
Zapisuje to do zmiennej $dane = $pole1."|".$pole2 do pliku .txt
Natomiast w drugim pliku, pliku 'podglad.php' wpisalem to co mi napisales. Zamiast jednak wyswietlania
wartosci z pliku 'plik.txt' nie wyswietla nic, pusta strone. Wiesz co moze byc nie tak?
Go to the top of the page
+Quote Post
b_chmura
post
Post #4





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


masz włączone raportowanie błędów?
w 8 linijce zapomniałem o średniku na końcu.

Pamiętaj też o prawidłowej ścieżce do pliku.
Go to the top of the page
+Quote Post
-xawer-
post
Post #5





Goście







tak, srednik wstawilem wczesniej. Plik znajduje sie w tym samym folderze co index.php i przegladaj.php
Go to the top of the page
+Quote Post
b_chmura
post
Post #6





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


w takim razie sprawdź czy masz coś w pliku plik.txt w innym wypadku wina leży w innej części Twojego kodu
Go to the top of the page
+Quote Post
-xawer-
post
Post #7





Goście







index.php wyglada w nastepujacy sposob:
  1. <?php
  2. $pole1 = trim($_POST['pole1']);
  3. $pole2 = trim($_POST['pole2']);
  4.  
  5. if (empty($pole1) and empty($pole2)) {
  6. echo '<div align=center> <form action="" method="post">
  7. Adres:<br>
  8. <input type="text" name="pole1" size=50 /><br />
  9. <br><br><br>Opis:<br>
  10. <textarea name="pole2" style="width: 500px; height:100px;">
  11. </textarea><br />
  12. <input type="submit" value="Zapisz" /></form>';
  13. }
  14.  
  15. else {
  16.  
  17. $dane = $pole1."|".$pole2."\n";
  18. $file = "baza.txt";
  19. $fp = fopen($file,"a");
  20. flock($fp, 2);
  21. fwrite($fp, $dane);
  22. flock($fp, 3);
  23. fclose($fp);
  24. echo "Link zostal zapisany!<br />";
  25.  
  26. echo "<a href=\"podglad.php\">Zobacz wpisane dane</a>";
  27. }
  28.  
  29. ?>


natomiast podglad.php
  1. <?php
  2. $filename = 'baza.txt';
  3. $file = file($filename);
  4.  
  5. foreach($file as $line)
  6. {
  7. $dana = explode('|', $line);
  8. echo '<a href="'.$dana[1].'">'.$dana[2].'</a>';
  9. }
  10. ?>


w pliku baza.txt wszystko zapisuje sie bezproblemowo. Naprawde nie wiem gdzie istnieje blad sad.gif
Go to the top of the page
+Quote Post
b_chmura
post
Post #8





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


no ale kolego explode oddaje podzielony string w tablicy ponumerowaną od 0, czemu zmieniłeś przy echo na dana[1] i dana[2]?

zmień to tak jak powinno być

$dana[0] - nazwa
$dana[1] - link
Go to the top of the page
+Quote Post
-xawer-
post
Post #9





Goście







No tak. Przepraszam za to. Sam nie wiem czemu to zrobilem wczesniej, ech.. wybacz.

Jeszcze jedno pytanie. W przypadku gdybym chcial dodac dodatkowe pola formularza typu: "Kto ten link podal" albo "O ktorej godzinie" .
W jaki posob moglbym zrobic wywietlanie tego w ten sposob:
'Dodano 2.12.2007 przez Uzytkownik
JAKIS TAM LINK"

Nie wiem jak to zrobic bo podajze $dana dzieli ten string na 2 czesci. Ale jak to zrobic zeby dzielilo na wiecej a zarazem podawalo je w osobnych linijkach? Bardzo prosze o pomoc
Go to the top of the page
+Quote Post
b_chmura
post
Post #10





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


nie dzieli je na dwie części, dzieli je na te rozdzielone znakiem |

Kod
wartosc0|wartosc1|wartosc2|wartosc3|wartosc4|wartosc5...

każda wartość będzie w z miennej $dana[$i] gdzie $i to numer wartości
Go to the top of the page
+Quote Post
-xawer-
post
Post #11





Goście







Super wielkie dzieki za pomoc!
Wszystko dziala znakomicie oprocz jednego szkopulu. Link dodany przez formularz dodaje sie do adresu strony.
Krotkomowiac po kliknieciu przycisku TATRY otwiera sie strona 'www.stronanaktorejjestskrypt.com/www.gory.com/zdjecia/tatry.JPG'
Niby z kodem wszystko ok, a jednak.
Tak przy okazji chcialbym ci bardzo podziekowac za pomoc b_chmura smile.gif jestes wielki!
Go to the top of the page
+Quote Post
b_chmura
post
Post #12





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


w echo musisz dodać http:// przed $dana[0]
lub podając w formularzu link musisz podać http:// przed www.example.pl
Go to the top of the page
+Quote Post
-xawer-
post
Post #13





Goście







Wszystko dziala jak nalezy. Jeszcze raz dziekuje b_chmura za pomoc smile.gif) pozdrawiam.
Go to the top of the page
+Quote Post
VonPiter
post
Post #14





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.12.2007

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


Mam baze
CODE

id||nazwa1||nazwa2||
id||nazwa1||nazwa2||


Nie mam problemu z odczytem i wyswietlaniem, ze zmiana danych w bazie oraz dopisywaniem rekordow, nie potrafie jednak usunac rekordu. Jak usunac np 5 z 10 rekordow ?
Go to the top of the page
+Quote Post
b_chmura
post
Post #15





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


  1. <?php
  2. $dane = file($plik);
  3. $nr = 4; //numer linii do usunięcia (liczmy od 0)
  4.  
  5. unset($dane[$nr]);
  6.  
  7. file_put_contents($plik, $dane);
  8. ?>


EDIT
Cytat
Jak usunac np 5 z 10 rekordow ?

rozumiem że miałeś na myśli jak usunąć piąty z dziesięciu.

Ten post edytował b_chmura 26.01.2008, 19:44:38
Go to the top of the page
+Quote Post
VonPiter
post
Post #16





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.12.2007

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


no jasne guitar.gif
chyba za dlugo siedze przy kompie , musze sie zresetowac sciana.gif

dzieki exclamation.gif!!
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 Aktualny czas: 21.08.2025 - 01:57