Htaccess vlastní autentizace. HTTP mechanismus

Mam slozku zabepecenou pomoci htaccess a htpasswd. nasel jsem 3 moznosti jak se k ni prihlasit. Prvni je vyplnit autentizacni dialog ktery vyskoci kdy chci cist neco z te slozky a druha je napsat do url radku http://username:password@domena.cz ale tahle moznost mi nefunguje pro vsechny prohlizece napr explorer vyhodi chybu adresa.. Potrebuji abych mohl username a heslo napsat do svych policek(v html) a odeslat je nekde kde se to zpracuje. Zkousel jsem i http pozadavek v php pres fsockopen ale prihlasim se a nacte mi to jenom 1 soubor to znamena obrazky knemu uz nenacte. Potrebuji potom pozadavek ktery mi tu slozku trvale odemkne dokud se neodhlasim nebo nezavru prohlizec... Muze mi nekdo pomoct?
Session.
Session to umim pres php ale jak mam to session nastavit abymi to odemklo tu slozku s htaccess. Nazev session a hodnota...
To se nekombinuje. Pomocí session se přes PHP otevře tunel do adresáře chráněného přes .htaccess, ale ten adresář se neodemyká. Po dobu odemknutí by tam mohli všichni.

Můžeš použít funkci file_get_contents().
Kdyz se prihlasim z 1pc pres autentizacni dialog do slozky chranene htaccess tak na 2pc me to do ni nepusti chce po mne taky jmeno a heslo tak tam kazdy asi nemuze. Jen ta osoba ktera zna jmeno a heslo. A to je dobře že to tak funguje. Ale mohl bys mi poslat zdrojak jak otevru tunel do slozky s htaccess, abych mohl z ni normalne cist nez se odhlasim nebo zavru prohlizec? dikk
Abych teda mohl zni cist jen ten kdo zna jmeno a heslo...
>> Kdyz se prihlasim z 1pc pres autentizacni dialog do slozky chranene htaccess tak na 2pc me to do ni nepusti chce po mne taky jmeno a heslo

Ono je to logické. Přístup se zprostředkuje pouze tomu, kdo zadal jméno a heslo. Druhý počítač je brán jako další uživatel, který se musí také přihlásit jménem a heslem. Není to tak, že přihlásíš jeden počítač a druhý už automaticky dostane také přístup. To by bylo proti pravidlům bezpečnosti. Si představ, že druhý počítač může být útočník. Chceš mu snad tímto způsobem snadnou cestou povolit přístup? Asi ne.
Každý počítač, a dokonce i každý prohlížeč, se chová jako samostatný uživatel. Takže u každého z nich musí dojít k samostatnému přihlášení.
To jen pro info.
Takze jak nastavit ty session na ten tunel. Nejlepsi kdyby nekdo poslal zdrojak.
Zkoušel jsem ale nefunguje to...

session_start();
$_SESSION['login']=TRUE;
$_SESSION['username']="moje_username";
$_SESSION['password']="moje_heslo";
<?php error_reporting(E_ALL);
session_start();

// login; soubor.php
if (!isset($_SESSION['login']))
{
$_SESSION['login']=TRUE;
$_SESSION['username']="moje_username";
$_SESSION['password']="moje_heslo";
}

// logout; soubor.php?logout=true
if (isset($_GET['logout']))
{
session_ unset();
}

print_r($_SESSION); // co to vypise?
?>
Nebo se vypise jina chyba?
Spis mozna misto session_unset bych pouzil $_SESSION = array();, protoze pak print_r po odhlaseni napise error, protoze $_SESSION nebude existovat. Ale session_unset by mel pro zmenu bezpecne zrusit i cookies.
Vsechno ok, ale slozka s htaccess je nadale pod heslem.Po nastaveni session zadam do url cestu ke slozce a vyskoci mi autentizacni dialog pro zadani jmena a hesla, takze zadny tunel se asi neotevrel. Nejde zni cist pres url. Absolutni cesta mi nepomuze protoze slozka obsahuje soubor index.html s obrazky a odkazy na tajne data ve slozce umistene, ktere jde nacitat jen pomoci url.
Upřímně, vůbec nechápu současnou diskusi. Nebo mi spíš uniká, v čem tkví problém. Když to shrnu, chápu to takto:

a) Máš složku zabezpečenou přes .htaccess a .htpasswd
b) V zabezpečené složce máš index.html a další soubory
c) Snažíš se obsah této zabezpečené složky zobrazit:
- Přes HTML výstup s jménem a heslem přímo v URL?
- Přes "proxy" PHP skript z jiného serveru?
- Uplně jinak..?

A přesně v tomto momentě mi uniká, proč? Pokud chceš obsah zobrazit všem, proč je zabezpečená? Pokud chceš obsah zobrazit jenom vybrané osobě, proč nemá jednoduše vlastní přihlašovací údaje (řádek v .htpasswd)? Upřímně, dost blbě se vymýšlí ideální řešení, když neznám požadovaný cílový stav.. (který mimochodem nezná kromě tebe asi nikdo, protože jsi jej nepopsal). Když to shrnu, stále to nechápu :)
Musim udelat registraci a prihlaseni uzivatele do administracni sekce meho webu. Administacni sekce v mem pripade znamena slozka zabezpecena heslem pomoci .htaccessa a .htpasswd. V souboru htpasswd mam uz jmena i s heslama. Do slozky se normalne dostanu pres autentizacni okno prohlizece kdyz pozadam o nejaky soubor z ni. A to okinko vlastne chci nahradit formularem v html (<input type="text">)do ktereho zadam uz.jmeno a heslo a odeslu ke zpracovani treba v php nebo js. Kdyz se tyto udaje zpracujou tak chci aby se ta slozka otevrela jen me, protoze ja sem se prihlasil a muzu z te slozky cist dokud nezavru prohlizec nebo nekliknu na odkaz logout. Vlastne tak jak emailova schranka ta je dostupna jen tomu kdo zna jmeno a heslo a nezobrazuje nikomu jinemu zadne data(obrazky, prilohy atd...) akorat ze v mem provedeni to bude slozka...
Snazim se ji zobrazit pres formlular delany v html<form method="post" action="*.php">
Freeze: Také čekám, co z toho vyleze. Zatím tomu požadavku moc nerozumím.

Danburak: Můžeš udělat autentizaci buď přes HTTP, anebo přes PHP+session. Rozhodni se. Kombinovat se to moc nedá.
Pres http
V tom případě neexistuje jednoduchý (a složitý zřejmě nebude 100% spolehlivý) způsob, jak přihlašovací formulář dostat do HTML.

Onen složitý postup by se mohl ubírat například způsobem, kdy místo odeslání formuláře javascriptem vezmeš vyplněné formulářové pole a přesměruješ na http://name:passwd@domain.tld (jak jsi ale sám zmínil v prvním příspěvku, některé starší prohlížeče takový zápis cesty nemusí podporovat).

___
Osobně bych se přikláněl k variantě s PHP, session a potřebné "proxy" pro vytahování souborů ze zabezpečené složky. Je to mnohem flexibilnější co se možností rozšiřování systému týče. Na druhou stranu, pokud už to máš hotové (a není potřeba rozlišení úrovní oprávnění atp.), http autentizace poslouží dobře.
Nejde to nahodou v javascriptu pomoci http request?
No, teoreticky by to jít mohlo, stačí přidat hlavičku
Authorization: Basic _vysledek_base64_encode_
kde místo _vysledek_base64_encode_ použiješ user:password zakodované přes base64. Do jaké míry to ale bude fungovat ve všech prohlížečích (tzn. jestli ti dovolí z javascriptu nastatovat hlavičku Authorization pro požadavek) by sis musel sám vyzkoušet ;) A samozejmě potom patřičně ošetřit návratové kódy.

Alternativně můžeš vytvořit xmlHttpRequest s adresou http://name:passwd@domain.tld (címž se fakticky pokusíš o přihlášení), ale dostáváš se do úplně stejného problému, že některé prohlížeče takový zápis nemusí podporovat.
Tohle mi funguje. Funkce vrati obsah stranky. Ale co mi vadi ze nezustanu prihlasen. Kdyz tajna stranka obsahuje obrazky z tajne slozky tak mi je nezobrazi. Potrebuju zustat prihlasen abych cist z tajne slozky dokud nezavru prohlizec.

<script>
function httpGet(theUrl)
{
var auth="Basic base64_encode(user:passwd)";
var xmlHttp = null;

xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.setRequestHeader('Authorization', auth);
xmlHttp.send( null );
return( xmlHttp.responseText);
}
</script>
Tak tady ale bohužel končíme, na tohle řešení asi neexistuje. Potřebuješ totiž, aby stejnou hlavičku posílal i prohlížeč v dalším požadavku.

Ale teoreticky by se to mělo dát obejít: při prvním načtení vytvoříš session (tu si prohlížeč udrží např. při reloadu stránky), při úspěšném ajaxovém požadavku do session uložíš zadané přihlašovací údaje. A pokud stránku aktualizuje, vypíšeš mu do javascriptu údaje uložené v session (ať je nemusí zadávat). Problém asi ale bude s obrázky (bude nejspíš všechno třeba převádět do base64 a do prohlížeče taky zobrazovat jako inline zápis base64). A kromě toho bude uživatelovo heslo cestovat tam a zase zpátky v jednom kuse (což se mimochodem děje i při normální HTTP autentizaci), na to existuje jediné řešení: HTTPS.

V součtu mi tak připadá, že má podobné řešení spíš víc nevýhod než výhod :)
Jak tak koukám, nabízená řešení ti stále nevyhovují. Příčinou je jeden debilní prohlížeč, který neumí zpracovat standardní URL. Buď ten šmejd nahradíš rozumnějším prohlížečem, anebo použiješ autentizaci přes PHP+session.

Doporučuji přečíst:
http://www.jakpsatweb.cz/heslo.html
Neni mi jasne, proc to porad resis pres htacces? Htaccess uplne smaz, hesla kontroluj v php a prihlasovani res pres session.
Pripadne do ni nastav nejake univerzalni jmeno a heslo, ktere pouzijes v php programu. Uzivatele prihlasis na session a do adresare bude mit pristup pres univerzalni heslo v htaccess. Ale, jak uz jsem psal, hta bych uplne smazal.
Smazat .htaccess? Zbláznil ses? Peto, chtělo by to trochu soudnosti, než něco napíšeš.