Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przenoszenie plików (warunki)
Forum PHP.pl > Forum > PHP
deha21
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
Wiktor P.
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. ==
?
deha21
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...
Wiktor P.
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.

deha21
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
cojack
Używaj dalej porównania typów w php, to nie długo włosy z nerwów Ci wypadną.
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.