rzseattle
14.05.2003, 20:43:51
czy ktos mi moze wyjasnic jak wykozystywac funkcje dir na platnym seweze bo
Kod
<php
$d=dir(www.mojades/zdjecia);
while(($bf=$d->read())!==false){
if ($bf != "." && $bf != "..") {
print $bf;
}
}
$d->close();
?>
nie dziala
a potrzebuje funkcji dir (na moim kompiejak znam sciezke to bezpoblemowo wpisuje ja i dziala
dodam jeszcze ze
Kod
<php
print dirname(__FILE__);
?>
zwraca: '/var/www/html/pro/mojadres/root'
moze ktos ma jakis pomysl??
Jabol
14.05.2003, 20:47:17
ty otwierasz katalog na serwerze zdalnym, nie lokalnie (tzn. nie przez sieć). Tak ci nie bedzie nigdy działać!
rzseattle
14.05.2003, 20:54:25
to moze tos ma inny pomysl na np zbadanie rozdzielczosci wszystkich plikow w danym katalogu
do dobra dobra jak tos wskaze mi sposob jak wylistowac (czy jakos tak) kaolog na jakim servie (nie swoim kompie) to juz sam reszte zrobie
Jabol
14.05.2003, 20:59:03
musiałbyś mieć skrypt na tym serwerze, ewentualnie skorzystać brute-force (czyli próbujesz przez http wyciągnąć wszystkie pliki o rozszerzeniu np .jpg). Ewentualnie możesz mieć szczęscie i trafić na serwer, który wylistowuje zawartość katalogów, w których nie ma defaultowego pliku, wtedy tylko jakiś sprytny ereg.
rzseattle
14.05.2003, 21:07:25
Cytat
www.mojades/zdjecia
/var/www/html/pro/mojadres/root
moze moglem napisac
mojastronaale
Cytat
<php
print dirname(__FILE__);
?>
zwraca: '/var/www/html/pro/mojadres/root'
moze oznaczac ze mam konto na tym servie i moge umieszczac swoje wlasne skrypty na moim koncie
wiec jabol
Cytat
musiałbyś mieć skrypt na tym serwerze
czy moglbys rozwinac swoja mysl, prosze
DeyV
14.05.2003, 21:09:55
Cytat
<?php
$d=dir(/var/www/html/pro/mojadres/' );
while(($bf=$d->read())!==false){
if ($bf != "." && $bf != "..") {
print $bf;
}
}
$d->close();
?>
Jabol
14.05.2003, 21:10:24
Robisz jeden wielki błąd. Po co otwierasz twój katalog przez sieć, a nie normalnie lokalnie?
wystarczy jedna modyfikacja[php:1:9a691020e6]
<php
$d=dir('../zdjecia');
while(($bf=$d->read())!==false){
if ($bf != "." && $bf != "..") {
print $bf;
}
}
$d->close();
?>[/php:1:9a691020e6]
PS. Czy wiecie do czego służy ten przycisk z php?
rzseattle
14.05.2003, 21:21:17
wiecie co jest najsmieszniejsze?
oba sposoby nie dizalaja chociaz wydaja sie wpozadku
zero bledow - tylko pusty ekran
Jabol
14.05.2003, 21:23:55
DeyV ma jeden wyraźny błąd (brakuje mu ' w funkcji). Teraz inne możliwe przyczyny: ten katalog może być pusty, mogła być zła ścieżka do katalogu, srawdz, czy podałem prawidłowo ścieżkę względem twojego pliku!
DeyV
14.05.2003, 21:28:05
Gratulacje za spostrzegawczość.
Przydałby mi się taki kontoler kodu in home 8)
Już wiesz, co obiecałem usnuąć?
rzseattle
14.05.2003, 21:29:55
to juz posprawdzalem a deyv a od razu poprawilem
http://www.swiatwina.strefa.pl/test.php
tylko z printa wynik i nic wiecej
mam pytanko - czy ktos na swoim koncie moze to sprawdzic bo juz jestem troche skolowany
Jabol
14.05.2003, 21:30:42
zrobiłeś to specjalnie, prawda, chciałeś pokazać błąd? zauważ, że rzseatle tego nie zrobił, on wogóle nie miał ', co, z tego co wiem, jest dopuszczalne (widziałem już pare takich roziwązań).
rzseattle
14.05.2003, 21:33:59
jabol ja nie mialem '' bo wczesniej tam mialem $sciezka a przy pisaniu postu popros zapomnielem ale w sumie to niewazne ................
Jabol
14.05.2003, 21:35:42
a zrób to z innym katalogiem, np. z './'. Jeżeli nie wyjdzie to możesz jeszcze spróbować open_dir read_dir
spenalzo
14.05.2003, 21:38:47
[php:1:d815338f07]<?php
$dir=opendir(".");
while($plik=readdir($dir))
{
if($plik !="." && $plik!="..")
{
echo $plik;
}
}
closedir($dir);
?>[/php:1:d815338f07]
DeyV
14.05.2003, 21:39:44
Przyznaję, ze skruchą, że nie było to zamierzone
Natomiast pisanie stringów bez ' ' jest tylko teoretycznie dopuszczlne, ponieważ php obsługuje je wtedy jak stałe. Sprawdza, czy nie była zdefinowana stała o takiej nazwie, jeżleli nie - traktuje ją jako tekst.
Dlatedo właśnie nie mozna tak zapisać tekstu ze spacjami - to byłyby już osobne elementy.
Dlatego też nie należy w ten sposób przekazywać parametrów np. do tablic, gdyż może się kiedyś pojawić stała o tej samej nazwie, no i robi sie cyrk.
Jabol
14.05.2003, 21:41:40
a może tak[php:1:1ddf0f4bcf]<?php
$dir=opendir(".");
while($plik=readdir($dir))
{
if(($plik!=".") && ($plik!=".."0))//z tego można by zrezygnować, aby sprawdzić, czy działa
{
echo $plik;
}
}
closedir($dir);
?>[/php:1:1ddf0f4bcf]
PS. DeyV, to czemu w miejscu błędu jest czerwone??
rzseattle
14.05.2003, 21:42:35
dobra poddaje sie
[php:1:523d31a2ce]<php
if ($dir = @opendir("/800")) {
while (($file = readdir($dir)) !== false) {
echo "$filen";
}
closedir($dir);
?>[/php:1:523d31a2ce]
tez niedziala (i wszystkie wariacje ../800 czy /zdjecia i ../zdjecia)
nie mam pojecia co jest grane w kazdym razie do jutra (modem rulez)moze ktos innywie co jest grane
prosze używać php do umieszczania takowego kodu!
DeyV
14.05.2003, 21:44:58
na czerowno zaznaczylem fragment gdzie wcześniej był błąd. (jednak myślałem tylko o samym adresie, tj. zmianie adresu www na ścieżkę.
Ale i tak mi milo, ze jesteś tak przekonany o celowości moich działań. Mów mi tak częściej
Jabol
14.05.2003, 21:45:25
nie można używać ścieżek zaczynających się od /, ponieważ wtedy system (jak sie domyślam unix) traktuje je jako ścieżki bezwzglę, tzn od głównego katalogu!
spenalzo
14.05.2003, 21:50:08
Podaj w jakim katalogu (względem tego, gdzie jest skrypt) znajdują się fotografie.
rzseattle
14.05.2003, 21:50:19
na mily koniec dnia
[quote]
Parse error: parse error, unexpected T_LNUMBER in /test.php on line 5
dla
Kod
<?php
$dir=opendir("800");
while($plik=readdir($dir))
{
if(($plik!=".") && ($plik!=".."0))//z tego można by zrezygnować, aby sprawdzić, czy działa
{
echo $plik;
}
}
dla spelnazo skrypt jest w glownym a zdjecia jeden wyzej wiec chyba podane przezemnie wczesniej sciezki pasuja do opisu
closedir($dir);
?>
spenalzo
14.05.2003, 21:52:47
[quote]na mily koniec dnia
if(($plik!=".") && ($plik!=".."0
Bez tego zera!
Jeżeli +1 poziom to dajesz opendir("zdjecia")
Jabol
14.05.2003, 21:55:35
nie musze chyba mówić, że katalog musi istnieć??
rzseattle
14.05.2003, 21:56:21
spelnazo mala pomylka i juz bym zrezygnowal ale ludzie dzialllllaaaaaaa dzieki wszystkim za wspanialego chata (bo przez chwile to nie przypominalo forum )
ps jabol bez przesady
spenalzo
14.05.2003, 21:59:30
Czyli działa?
PS. Ludzie! Na miłość boską nauczcie się pisać mojego nicka, to nie jest trudne, ale wszyscy przekręcają
rzseattle
14.05.2003, 22:00:29
spenalzo
14.05.2003, 22:02:14
Ciekaw jestem czemu ten pierwszy skrypt nie działał - zawsze z niego korzystam i jest OK...
Ale czat lepszy niż w onecie!
spenalzo
14.05.2003, 22:04:14
while(($bf=$d->read())!==false){
Chyba tu jest bład.
DeyV
14.05.2003, 22:09:28
A teraz ja nie rozumiem. Czy według Ciebie na czerwono jest poprawnie, czy źle?
Bo według manuala jest to zapis jak najbardziej poprawny.
Cytat
$a !== $b Nie identyczny TRUE jeśli $a nie jest równy $b, lub nie są tego samego typu. (tylko w php 4)
spenalzo
14.05.2003, 22:13:39
Cytat
A teraz ja nie rozumiem. Czy według Ciebie na czerwono jest poprawnie, czy źle?
Bo według manuala jest to zapis jak najbardziej poprawny.
Cytat
$a !== $b Nie identyczny TRUE jeśli $a nie jest równy $b, lub nie są tego samego typu. (tylko w php 4)
Nie wiedziałem o tym, uczyłem się na PHP3 i nie wiedziałem o takiej możliwości. Czyli === sprawdza czy są tego samego typu? Przyznaję się do błędu.
rzseattle
14.05.2003, 22:14:47
pozatym trza zauwazyc ze na lokalnym kompie to dzialalo
kurde czuje sie naserio jak na chacie - moje wypowiedzi po 2-3 minutach przestaja byc aktualne
Jabol
14.05.2003, 22:18:00
może tam jest starsza wersja php, albo inna struktura katalogów?
spenalzo
14.05.2003, 22:20:55
Daj w skrypcie
[php:1:2278f60bd9]<?php
phpinfo();
?>[/php:1:2278f60bd9]
i będzie wiadomo.
rzseattle
14.05.2003, 22:29:23
nie wiem czy mi uwiezycie ale
Kod
<?php
phpinfo();
?>
tak wyglada teraz plik test.php i nic nie wyswietla
spenalzo
14.05.2003, 22:36:48
Cytat
tak wyglada teraz plik test.php i nic nie wyswietla
No ciekawy serwer...
BTW: Używaj przy edycji postów znacznika php - poniżej okienka do wpisywania tematu masz guziczki, najbardziej na prawo jest taki z napisem php - użyj go, a posty stanie sie przejrzyste.
DeyV
14.05.2003, 22:56:34
Blokowanie funkcji tego typu zdaża sie dosyć często.
A przy wyłączonym raportowaniu błędów - efektem będzie pusty ekran...
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.