Autor Zpráva
Rob
Profil
Nejdříve řeknu na co to potřebuji.

Na třídní stránky jsem dal chat od BlueBoardu. Všem to funguje, jenom mě ne. Netuším kde je chyba. Ale naštvalo mě to a pustil jsem se do psaní vlastního chatu. Je to sice těžké, protože jsem na chat přestal úplně chodil, ale něco málo tuším. Dělám to pomocí file systému, protože to je na WZ a na stránkách je uživatelská sekce (na zprávy). Proto ten file systém.

Co málo si pamatuju, tak v každém chatu se někde objevuje, kdo je právě on-line. Tohle jsem chtěl vyřešit pomocí složky prihlaseni a do té by se při přihlášení zapsal soubor s loginem a po odhlášení by se zase smazal. Na to by byl nastaven nějaký delší refresh. Ale mám ten problém, když tam mám několik "uživatelů" a použiju tohle:
$handle = opendir("./prihlaseni/"); //tady jsem si hrál s různými možnostmi a tohle a ("prihlaseni/") funguje
$polozky = readdir($handle);
echo "$polozky\n"; //tímhle jsem se nechal inspirovat z manálu.
Jediné co mi to vypíše je tečka. Prostě jenom jednu tečku.

Předpokládám, že jsem asi špatně pochopil, jak by ta funkce měla fungovat. Takže mi prosím poraďte, jak pomocí toho dostanu to co jsem výše popsal.
Hugo
Profil
Rob

A ty se divíš? ReadDir postupně skenuje adresář a vypisuje jeho obsah. Takže pokud chceš zjistit všechny položky, tak musíš použít cyklus (nejlépe while).

$handle = opendir("./prihlaseni/");
while (($polozky = readdir($handle)) !== false)
{
echo "$polozky\n";
}
Rob
Profil
Hugo
Aha, vždyť jsem říkal, že jsem asi nepochopil, jak to správně funguje.

Promiňte moji stupiditu, ale proč se mi ukáží jako položky "." potom ". ." a teprve potom ty soubory???
Hugo
Profil
. je aktuální adresář
.. je odkaz na vyšší adresář

Tyto dvě položky musí obsahovat každý adresář (kromě rootu).
Rob
Profil
Hugo
Takže v tom chatu se toho asi nezbavím. Že ano??
Hugo
Profil
Rob

Tak je odfiltruj pomocí podmínky.
if ($polozky == '.' OR $polozky == '..')
{
continue;
}
Rob
Profil
Hugo
Funguje. Takže mnohokrát děkuji za pomoc.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0