Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie pliku i nadanie mu chmodu..
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Cześć chciałbym stworzyć plik z pewną zawartością i nadać mu chmod 777, tylko nie wiem jak to zrobić posiadam narazie taki kod:

  1. $cfg ="Mój_Tekst_W_Pliku"
  2. mkdir($sciezka.$plik,0755); // Tworzenie folderu
  3. $f = fopen($sciezka.$plik.'/txt.txt','w'); // Dodawanie Pliku
  4. fwrite($f,$cfg); // Dodawanie Pliku
  5. fclose($f); // Dodawanie Pliku


I jak chcę dodać pod tym funkcję która nadaje chmod to nie działa w ogóle

  1. chmod($sciezka.$plik.'/txt.txt',0777);


Nie wiem jak to połączyć, aby tworzyło plik a później nadawało 777 chmod
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Fifi209
post
Post #2





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

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


A masz uprawnienia do zmiany chmodów?
Go to the top of the page
+Quote Post
Giluś
post
Post #3





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Taa, w innym pliku wykonuje podobną operacje, najpierw kopiuje później zmieniam chmod.. wiec nie wiem czemu tutaj nie działa..
Go to the top of the page
+Quote Post
konradkw
post
Post #4





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


Chciałbym się dołączyć troszkę do tego tematu ponieważ szkoda zaśmiecać forum.

Interesuje mnie utworzenie formularza o nazwie podanej uprzednio w formularzu - i to mi się jak najbardziej udało t z tym że folder tworzony jest w folderze w którym znajduje się aktualnie skrypt a chodzi o utworzenie go w innym miejscu.

aktualnie mam tak:

  1. $sciezka = '/../../include/images/sprzedaz/';
  2. mkdir($sciezka.$n,0777);


I jak sie domyslacie - nie działa ... chodzi głównie o cofnięcie się do poziomu głównego czyli gdzie wskazuje domena i z tego miejsca trzeba znaleźć folder "sprzedaz", nadmienię jeszcze że skrypt znajduje się w folderze: domena.pl/include/nazwa_folderu/skrypt.php

dodatkowo chcę przesyłać zdjęcia do tego folderu - powiedzmy 5 zdjęć max.
po wypełnieniu formularze, skrypt zabiera nas do stronki przesyłania zdjęć wygenerowanej ze wstawieniem scieżki ze zmiennej $ścieżka.$n gdzie $n to nazwa utworzonego urzednio folderu. To także nie bardzo działa i nie do końca widzę gdzie błąd - wiem że chodzi o samą ścieżkę ale nie widzę jak ją zmienić żeby zadziałało.

Oto sktypt przesyłania plików do folderu $n:

  1. if (isset($_POST['wyslij'])) {
  2. $max_rozmiar = 5024*5024;
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  4. if ($_FILES['plik']['size'] > $max_rozmiar) {
  5. echo 'Błąd! Plik jest za duży!';
  6. } else {
  7. echo '<br/>';
  8. echo '<center><img src="'.$sciezka.''.$n.'/',$_FILES['plik']['name'],'"></center>'; echo "<br/>";echo "<br/>";
  9.  
  10. move_uploaded_file($_FILES['plik']['tmp_name'],
  11. $_SERVER['DOCUMENT_ROOT'].'/'.$n.'/'.$_FILES['plik']['name']);
  12. }
  13. } else {
  14. echo 'Błąd przy przesyłaniu danych!';
  15. }}
  16.  
  17. ?>
  18.  
  19. <form action="index.php?admin=sprzedaz-projektow&a=dodaj-ubranie-na-sprzedaz" method="POST" ENCTYPE="multipart/form-data">
  20. <input type="file" name="plik"/>
  21. <input type="submit" name="wyslij" value="Wyslij plik"/>
  22. </form>


Ten skrypt jest zaraz pod utworzeniem folderu ale planuję zrobić przekierowanie z pierwszego głównego formularza do całkiem nowej strony przekazując jednocześnie nazwę folderu.

Podpowiedzcie proszę.

Pozdrawiam!


Konrad
Go to the top of the page
+Quote Post
Pilsener
post
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


1. Wysyłaj wszystkie żądania do public/index.php - wtedy nie będziesz miał problemów ze ścieżkami, inaczej radzę używać Ci adresów bezwględnych, ścieżka typu "/../../.." może nie zadziałać bo możesz nie mieć dostępu do folderów powyżej tego, w którym uruchamiasz skrypt.

2. Sprawdzaj zanim coś zrobisz czy masz uprawnienia i czy to coś się wykonało, np:
  1. if(mkdir($sciezka,0777)){
  2. echo 'sukces';
  3. }else{
  4. echo 'nie udało się utworzyć folderu '.$sciezka;
  5. }
- wtedy nie będziesz miał problemów ze zlokalizowaniem błędu, nie sprawdzasz ani czy folder się utworzył, ani czy plik został zapisany ani czy plik można zapisać w danym folderze, wszystko należy sprawdzać bo potem użytkownikowi strona się rozpada a my nie wiemy gdzie jest błąd.

3. Waliduj dane odbierane od użytkownika, także tablice $_FILES (w szczególności nazwę pliku) a plik sprawdzaj jak już masz do niego dostęp np. tak:
http://php.net/manual/pl/function.finfo-file.php - nie można ufać, że jak ktoś deklaruje taki typ/rozmiar to faktycznie tak jest.
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: 15.09.2025 - 01:17