Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Automatyczne utworzenie strony .php o podanym wzorze
picia2004
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 31.07.2009

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


Czy istnieje możliwość utworzenia strony w ten sposób? Jeśli tak, to w jaki sposób to powinno przebiegać?

- użytkownik podaje w formularzu nazwę np. 'Piłka nożna'
- skrypt zamienia polskie znaki i spację ['pilka_nozna']
- tworzy plik php o podanej nazwie ['pilka_nozna.php']
Do tej pory wszystko działało i...
- w pliku zostaje zapisany kod z wzoru [który zawiera zmienne, które musi pobrać z formularza tworzącego plik]

Próbowałem użyć funkcji: fputs();, lecz się nie sprawdziła. Poza tym ciąg z wzoru musi przyjąć zmienną z formularza. Nie bardzo wiem jak tego dokonać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




1. Daj kod
2. Może masz problem ze chmodami?

Nie do końca rozumiem czy nie działa Ci całość czy tylko zapisywanie danych pobranych z formularza.
Go to the top of the page
+Quote Post
picia2004
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 31.07.2009

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


Nie działa zapis wzoru, po prostu tak jakby go nie odczytywało - ciągi znaków normalnie zapisywało, ale z wzoru korzystać nie chce... W utworzonym pliku [np. pilka_nozna.php] wyświetla: 'Resource id #6'.

Skrypt do wykonania poleceń
  1. if(! empty($_POST['name']))
  2. {
  3. $name = $_POST['name'];
  4. $name = strtolower($name);
  5. $name = str_replace(" ", "_", $name);
  6. $name = str_replace("ą", "a", $name);
  7. $name = str_replace("ć", "c", $name);
  8. $name = str_replace("ę", "e", $name);
  9. $name = str_replace("ł", "l", $name);
  10. $name = str_replace("ó", "o", $name);
  11. $name = str_replace("ż", "z", $name);
  12. $name = str_replace("ź", "z", $name);
  13. $file = fopen("".$name.".php","w+");
  14. $wzor = fopen("wzor.php","w+");
  15. fputs($file,"$wzor");
  16. fclose($file);
  17. fclose($wzor);
  18. echo ("Wykonano!");
  19. }
  20.  
  21. <form action="add_file.php" method="POST">
  22. <input type="text" name="name" />
  23. <button type="submit">Utwórz plik</button>
  24. </form>
  25. ');


wzor.php
  1. <?
  2. echo ("". $_POST['name'] ."");
  3. ?>


Ten post edytował picia2004 13.08.2009, 10:11:00
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przeciez $wzor zawiera to co zwrocilo fopen czyli wskaznik do pliku a nie jego zawartosc. Przeciez w manualu w opisie tych funkcji masz wszystko opisane na dloni co i jak.

kolejna sprawa: uzyj file_get_contents i file_put_contents a nie sie bawisz w fopen.
kolejna sprawa: skoro wzor kopiujesz bez zmian, to uzyj copy
http://pl2.php.net/manual/pl/function.copy.php
Go to the top of the page
+Quote Post
picia2004
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 31.07.2009

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


W pliku 'wzor.php', niektóre dane powinny być uzupełnione danymi z formularza. Czy podany przez Ciebie sposób będzie odpowiedni? (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




w kodzie tego nie miales, wiec nie sadzilem ze ma byc (IMG:style_emoticons/default/winksmiley.jpg)

Tak, pierwszy sposob z file_get_contents i file_pu_contents bedzie odpowiedni. To co zwroci ci file_get_contents bedziesz musial jeszcze obrobic o te rzeczy z forma co mowiles. zakladam ze masz tak w tym wzorze jakies zjadliwe dane do latwej obrobki.
Go to the top of the page
+Quote Post
picia2004
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 31.07.2009

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


Ok, doczytam manual, pokombinuję i dam znać jak efekty (IMG:style_emoticons/default/winksmiley.jpg)

EDIT Ok, już działa tak jak powinno, chociaż wyrzuca błąd:
  1. Warning: file_get_contents(tu_tez_coś.php) [function.file-get-contents]: failed to open stream: No such file or directory in /home/accounts_w/wiruscrack/public_html/test/admin/add_file.php on line 38


  1. linia 38 $ob = file_get_contents("" .$name. ".php");
  2. linia 39 $pob = file_get_contents('wzor.txt');
  3. linia 40 $pob = str_replace("Tu", "Jeden", $pob);
  4. linia 41 file_put_contents("" .$name. ".php", $pob);


Za to zainteresowało mnie coś jeszcze.. przy próbie wpisywania nazw klubów piłkarskich wszystkie zamieniało poprawie tj.
FC Barcelona = fc_barcelona.php
Wisła Kraków = wisla_krakow.php
Cracovia Kraków = cracovia_krakow.php
A tu przy:
ŁKS Łódź = Łks_Łodz.php

Coś nie tak z literą 'Ł'? Ale, że nawet nie uległa pomniejszeniu?
  1. $name = $_POST['name'];
  2. $name = strtolower($name);
  3. $name = str_replace(" ", "_", $name);
  4. $name = str_replace("ą", "a", $name);
  5. $name = str_replace("ć", "c", $name);
  6. $name = str_replace("ę", "e", $name);
  7. $name = str_replace("ł", "l", $name);
  8. $name = str_replace("ó", "o", $name);
  9. $name = str_replace("ż", "z", $name);
  10. $name = str_replace("ź", "z", $name);


Ten post edytował picia2004 13.08.2009, 11:32:03
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$ob = file_get_contents("" .$name. ".php"); - no przeciez nie mozesz pobrac pliku, ktorego jeszcze nie stworzyles. ta linija jest zupelnie niepotrzebna
Go to the top of the page
+Quote Post
Fifi209
post
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Błąd wyraźnie mówi, że takiego pliku tam nie ma.

Co do:
  1. "" .$name. ".php"


Nie miało być przypadkiem:
  1. $name.'.php'


Ten post edytował fifi209 13.08.2009, 11:43:49
Go to the top of the page
+Quote Post
picia2004
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 31.07.2009

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


Ok, już poprawione i działa bez zarzutu (IMG:style_emoticons/default/winksmiley.jpg)

A jakieś rozwiązanie dla tego problemu z 'Ł'? (IMG:style_emoticons/default/winksmiley.jpg)

Czy może po prostu użyć (po raz kolejny)?
  1. $name = str_replace("Ł", "l", $name);
Go to the top of the page
+Quote Post
Fifi209
post
Post #11





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(picia2004 @ 13.08.2009, 11:45:10 ) *
Czy może po prostu użyć (po raz kolejny)?
  1. $name = str_replace("Ł", "l", $name);


  1.  
  2. $name = str_replace(" ", "_", $name);
  3.  
  4. $name = str_replace("ą", "a", $name);
  5.  
  6. $name = str_replace("ć", "c", $name);
  7.  
  8. $name = str_replace("ę", "e", $name);
  9.  
  10. $name = str_replace("ł", "l", $name);
  11.  
  12. $name = str_replace("ó", "o", $name);
  13.  
  14. $name = str_replace("ż", "z", $name);
  15.  
  16. $name = str_replace("ź", "z", $name);


a teraz weź to: str_replace i poczytaj jak działa ta funkcja.

Ten post edytował fifi209 13.08.2009, 11:54:20
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 18:23