Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Kopiowanie do katalogu nadrzędnego
Forum PHP.pl > Forum > Przedszkole
Ezoman
Tak jak w temacie. Nie wiem jak to zrobic. Mam taki kod:

  1. <?
  2. include "../../db.php";
  3.  
  4. //sprawdzanie czy plik istnieje
  5. if (file_exists('../../$filename'))
  6. {
  7. echo "Podstrona $filename juz istnieje!";
  8. die();
  9. }
  10.  
  11. //Dodawanie pliku do bazy
  12. $query = "INSERT INTO podstrony(filename, title, content, keywords, description) VALUES ('$filename', '$title', '$content', '$keywords', '$description')";
  13. mysql_query($query) or die (mysql_error());
  14. echo "Dane wrzucone do bazy danych<br>";
  15.  
  16. //Tworzenie noewgo pliku
  17. $file = '../../template.php';
  18. if (!copy($file, '../../$filename'))
  19. {
  20. echo "Tworzenie pliku $filename nie powiodło się!\n";
  21. }
  22. else
  23. {
  24. echo "Udalo się utworzyc plik ".$filename;
  25. echo "<br> Strona została utworzona";
  26. }
  27. ?>


Jest to plik addsite_exec.php. Ma on tworzyc nowa podstrone na postawie szablonu(tak naprawde to on tylko ma kopiowac szablon i zapisuwac ze zmieniona nazwa) Wszystko dizalalo dopoki cala strona byla w 1, glownym katalogu. Teraz chcialem zrobic porzadek i przenioslem pliki "CMSa" do katalogu admin. Ten plik akorat razem z plikiem z formularzem jest w admin/add

Jak to wykonam to nie ma zadnego bledu, dane dodaja sie do bazy ale plik sie nie tworzy. Jak wywale ../../ z fukcji copy to wtedy udaje sie normalnie stworzyc plik tyle ze w admin/add

nikt nie odpowie?
Swirek
a nie możesz spróbować ścieżki bezwzględnej?
masz ustawione prawa dostępu do katalogu?
otrzymujesz komunikat Strona została utworzona?
Ezoman
Juz sobie poradziłem. Nie wiem co było problemem, w tej chwili wszystko działa jak nalezy. Najpierw przenioslem addsite_exec.php i addsite.php do admin i zadzialalo, potem przenioslem spowrotem i tez zaczelo dzialac. W tej chwili plik wyglada tak:

  1. <?
  2. //Todo: Zrobic dodawanie plikow do kategorii, nie tylko do glownego katalogu
  3.  
  4. //zmienne pomocnicze
  5. $dir_pages = "../../";
  6. $dir_filename = $dir_pages.$filename;
  7. $dir_config = $dir_pages."db.php";
  8. $file = $dir_pages."template.php";
  9.  
  10. include $dir_config;
  11.  
  12.  
  13. //sprawdzanie czy plik istnieje
  14. if (file_exists($dir_filename))
  15. {
  16. echo "Podstrona $filename istnieje!";
  17. die();
  18. }
  19.  
  20. //Dodawanie danych podstrony do bazy
  21. $query = "INSERT INTO podstrony(filename, title, content, keywords, description) VALUES ('$filename', '$title', '$content', '$keywords', '$description')";
  22. mysql_query($query) or die (mysql_error());
  23. echo "Dane dodane do bazy danych.<br>";
  24.  
  25. //Kopiowanie szablonu podstrony do nowego pliku podstrony
  26. copy($file, $dir_filename) or die ("Tworzenie pliku $filename nie powiodło się!");
  27.  
  28. //Jak wszystko poszlo dobrze...
  29. echo "Udalo się utworzyc podstronę ".$filename;
  30. echo "<br>Link do nowego pliku: <a href='$dir_filename'>Link</a>";
  31. echo "<br> Strona została utworzona!";
  32. ?>


Naprawde nie wiem o co chodzilo, wczesniej przeicez funkcja copy miala ten sam parametr 2, tyle ze nie w zmiennych. A zreszta, juz niewazne skoro dziala smile.gif



co do komunikatu. Tak, otrzymywalem go ale albo robilo plik 0(bez rozszerzenia) w katalogu admin/add, albo wogole nie robilo, albo robilo plik o nazwie $filename... pewnie cos namieszalem w skladni i tyle.
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.