Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przenoszenie plików (warunki)
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Witam,
Robię do swojego CMSa zarządzanie plikami i jest tam opcja przenoszenia. pliku Chcę zrobić takie warunki:
1. Jeśli nowa lokacja ($newdirectory) równa jest '' (czyli pusta) lub '/' lub zawiera w sobie '.' (kropkę) to przenoszenie się nie wykonuje.

Jakiś czas temu to wszystko ładnie działało ale coś pokombinowałem (czyściłem skrypt żeby był mniejszy) i chyba coś namieszałem bo teraz nie działa.

Oto kod:
  1. if (isset($_POST['movefile']) && isset($_POST['newdirectory'])) {
  2. if(file_exists("../".$_POST['newdirectory'])==true && file_exists("../".$_POST['newdirectory']."/".$_POST['movefile'])==false) {
  3. rename("../".$directory."/".$_POST['movefile'], "../".$_POST['newdirectory']."/".$_POST['movefile']);
  4. }
  5. elseif(file_exists("../".$_POST['newdirectory']."/".$_POST['movefile'])==true) {
  6. echo "<div class='popupdivshow'><h3>Plik o takiej nazwie juz istnieje w tej lokalizacji</h3><input type='button' value='OK' class='anuluj'></div>";
  7. }
  8. elseif(file_exists("../".$_POST['newdirectory'])==false || $_POST['newdirectory']!='/' || strpos($_POST['newdirectory'],'.') || $_POST['newdirectory']!='') {
  9. echo "<div class='popupdivshow'><h3>Błędna lokalizacja</h3><input type='button' value='OK' class='anuluj'></div>";
  10. }
  11. }


Proszę o pomoc.

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Wiktor P.
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 9
Dołączył: 14.09.2009

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


Cytat(deha21 @ 27.09.2009, 10:25:38 ) *
Jakiś czas temu to wszystko ładnie działało ale coś pokombinowałem (czyściłem skrypt żeby był mniejszy) i chyba coś namieszałem bo teraz nie działa.

Znam osobę, której ostro polecieli po premii za nie robienie backup'u swojego kodu.

Cytat(deha21 @ 27.09.2009, 10:25:38 ) *
lub '/'
  1. || $_POST['newdirectory']!='/'

A tu na pewno ma być
  1. !=
?
Nie chodzi czasem o
  1. ==
?
Go to the top of the page
+Quote Post
deha21
post
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(Wiktor P. @ 27.09.2009, 11:42:19 ) *
Znam osobę, której ostro polecieli po premii za nie robienie backup'u swojego kodu.

Na szczęście robię to dla siebie, nie dla firmy winksmiley.jpg

Masz racje co do '==', pospieszyłem się z kopiowaniem i wkleiłem niezmienione w to miejsce.
A więc teraz mam taki kod:
  1. if (isset($_POST['movefile']) && isset($_POST['newdirectory'])) {
  2. if ($_POST['newdirectory']=='/' || strpos($_POST['newdirectory'],'.')===true || $_POST['newdirectory']=='') {
  3. echo "<div class='popupdivshow'><h3>Błędna lokalizacja</h3><input type='button' value='OK' class='anuluj'></div>"; }
  4. else {
  5. if(file_exists("../".$_POST['newdirectory'])==true && file_exists("../".$_POST['newdirectory']."/".$_POST['movefile'])==false) {
  6. rename("../".$directory."/".$_POST['movefile'], "../".$_POST['newdirectory']."/".$_POST['movefile']);
  7. }
  8. elseif(file_exists("../".$_POST['newdirectory']."/".$_POST['movefile'])==true) {
  9. echo "<div class='popupdivshow'><h3>Plik o takiej nazwie juz istnieje w tej lokalizacji</h3><input type='button' value='OK' class='anuluj'></div>";
  10. }
  11. elseif(file_exists("../".$_POST['newdirectory'])==false) {
  12. echo "<div class='popupdivshow'><h3>Błędna lokalizacja. Taka lokacja nieistnieje.</h3><input type='button' value='OK' class='anuluj'></div>";
  13. }
  14. }
  15. }

Jak wpiszę '/' lub nic to nie przenosi ale gdy wpiszę kropkę to przenosi...


--------------------
Go to the top of the page
+Quote Post
Wiktor P.
post
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 9
Dołączył: 14.09.2009

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


Cytat(deha21 @ 27.09.2009, 11:58:43 ) *
Na szczęście robię to dla siebie, nie dla firmy winksmiley.jpg


No tak, ale przez brak robienia kopii możesz sobie narobić kłopotów.
A tak robisz kopię co jakiś czas, lub przed każdą ważniejszą zmianą kodu i nie muszisz się martwić, że coś się rypnie.

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





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Pomoże ktoś? Bez tego dalej nie ruszę winksmiley.jpg

EDIT: Rozwiązane!

Bezsensu ale zrobiłem coś takiego i działa. Zamieniłem:
  1. if ($_POST['newdirectory']=='/' || strpos($_POST['newdirectory'],'.')===true || $_POST['newdirectory']=='')

na
  1. if ($_POST['newdirectory']=='/' || strpos($_POST['newdirectory'],'.')!==false || $_POST['newdirectory']=='')

Dziwne, skoro nie równa się FALSE to równa się TRUE. Ale gdy wpisze równa się TRUE to nie działa winksmiley.jpg

Ten post edytował deha21 28.09.2009, 08:49:34


--------------------
Go to the top of the page
+Quote Post
cojack
post
Post #6





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Używaj dalej porównania typów w php, to nie długo włosy z nerwów Ci wypadną.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
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: 19.08.2025 - 09:24