Autor Zpráva
soucekgns
Profil
Mám přihlašovací formulář ve kterém je $_POST['username'].
Potřeboval bych, aby při if (!$need_login) se mi to "uložilo" jako proměnná, ale jen když se bude rovnat !$need_login
Zkoušel jsem $_SESSION, ale to mi nefungovalo...

Díky za rady
AM_
Profil
měl byses naučit jasněji vyjadřovat.

soucekgns:
aby při if (!$need_login)(1) se mi to(2) "uložilo" jako proměnná(3), ale jen když se bude rovnat !$need_login(4)
Zkoušel jsem $_SESSION, ale to mi nefungovalo...(5)
1) při if(!$need_login)? jak? jako pokud je splněná tato podmínka? a jak to tím pádem souvisí s dotazem - napsat podmínku umíš, a jak s tím souvisí, co je v ní?
2) co uložilo?
3) a $_POST['username'] proměnná není?
4) co se bude rovnat?
5) $_SESSION funguje, úspěšně několik let používám
soucekgns
Profil
AM:
3) je, ale jen při odeslání, já bych to potřeboval pořád
5) $_SESSION funguje, ale já to asi neumím napsat...
Prostě a jednoduše, nemohl by mi někdo poradit, jak mám napsat $_SESSION pro $_POST['username'] - to jest, aby $username existovala po $_POST['username'] neustále.
Díky
pcmanik
Profil
$_SESSION['username'] = $_POST['username'];


predtym nez to budes pouzivat, nezabudni dat
session_start();
soucekgns
Profil
pcmanik:
To mi nefungovalo, dal jsem tam session_register('username'); a hned lepší:-)
ale teď nevím, jak mám $_SESSION['username'] zníčit... zkoušel jsem unset ($_SESSION['username'], session_destroy('username') i unregister a nic...
pcmanik
Profil
session register je DEPRECATED co znamena ze sa nema pouzivat.

Na znicenie vsetkych session ti staci

session_destroy();


Popripade kazdu zvlast daj unset

unset($_SESSION['username']);


soucekgns:
To mi nefungovalo

Jak nefungovalo, aku chybu to pisalo?
AM_
Profil
[#3] soucekgns
děkuji za "upřesnění" dvou dotazů. Živá ukázka a upřesnění zbylých tří by neškodilo. Než se pustíš do takovýchto věcí, měl bys někde lépe nastudovat princip samotného PHP a zpracování jedné stránky - z dotazů je patrné, že o tom mnoho nevíš a už buduješ složité věci.
soucekgns
Profil
Celý problém, na kterém dělám celý den je:
Když mám toto, tak se mi když přepnu na jinou stránku $_SESSION nesmaže (to chci), ale nesmaže se mi ani při odhlášení tedy if ($need_login)(to nechci):
<?php
    if (!$need_login) {
        session_start();
        $_SESSION['username']=$username;
    }
    else {
    unset($_SESSION['username']);
    }
?>

Ale když to napíšu takhle, tak se mi při odhlášení $_SESSION smaže (to chci), ale smaže se i když přepnu na jinou stránku se stejným kódem (to nechci):
<?php
    if (!$need_login) {
        session_start();
        $_SESSION['username']=$username;
    }

    unset($_SESSION['username']);
?>


Takže to budu muset poladit...
Sice s php neumím... já neumím s níčím, ale to jsme si trochu nerozuměli:-)
Díky
pcmanik
Profil
v tom else musis tiez pouzit session_start, pouzi trocha logicke myslenie...
xmark
Profil
soucekgns:
Co je v proměnné $need_login?

Máš zmatek v tom, co má kdy proběhnout. Potřebuješ ošetřit tyto stavy:
1. session neexistuje - nabízíš zřejmě nějaký omezený obsah a mj. formulář pro přihlášení
2. session existuje - nabízíš kompletní obsah a mj. formulář pro odhlášení (resp. stačí odkaz)
3. byl odeslán formulář pro přihlášení a zpracováváš ho (vytváříš session a přesměrováváš na 2)
4. byl odeslán formulář pro odhlášení a zpracováváš ho (mažeš session a přesměrováváš na 1)
soucekgns
Profil
Tak s toho se po*eru...
Celý odpoledne tady nad tím přemýšlím co tam mám špatně... no a ono je to session_start();...
Pak ze neumim php... spis jsem natvrdlej..:-)
Díky moc... jdu se zastřelit...
xmark:
...díky, ale už jsem to vyřešil, mimochodem takhle jsem to měl od začátku, ale jen bez session_start()...
AM_
Profil
session_start() dávej vždy na úplný začátek skriptu, žádné do if ani else. To bys v tom měl za chvíli hrozný hokej.
Máš to nějaké divné, při každém načtení takové stránky tu session proměnnou buď inicializuješ nebo rušíš, neznám celý kód, ale myslím, že to máš špatně vymyšlené (ikdyž ti to už třeba náhodou funguje).
soucekgns
Profil
AM:
...nezruším, protože při prohlížení webu jsi pořád $need_login = nepřihlášený nebo po přihlášení jsi pořád !$need_login = přihlášený, tak proměnnou inicializuji nebo ruším jen při přihlášení nebo odhlášení...
AM_
Profil
[#13] soucekgns
jako trvale existující proměnnou používej $_SESSION['username'].
Proměnná $need_login se samozřejmě zruší, pokud ne, tak to znamená, že máš zapnuté a využíváš register_globals a asi i session_register, což jsou všechno deprecated vykopávky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: