Autor Zpráva
migi
Profil
Ahoj,
v PHP 4 jsem měl udělaný přihlašování uživatele a teď v 5 mi nefunguje. Vím že session_register se už moc nepoužívá a v 6 už není vůbec. Zkuste mi prosím někdo poradit.
1. na první stránce mám formulář se zadáním uživatel + heslo
2. na další stránce se připojím k db najdu uživatele a do $_SESSION['promena'] uložím údaje o uživateli a přesměruji se na admin stránku
3. Tam už ale PHP hlásí "Notice: Undefined variable: promena ....."
4. Navíc moc nevím jak nahradit skript, který jsem měl na začátku každé stránky administrace (aby se mi tam nikdo nedostal jen napsáním adresy stránky), a to:
<?
session_start();

if (!session_is_registered("promena"))
{
session_register("promena");
$proměna=0;
}

if ($promena== 0)
{
Header("Location: index.php");
die;
}
?>

díky za radu
David
Nox
Profil
migi
vždyť tam máš "$proměna"...s "ě"...to u jmen proměnných rozhodně nepoužívej...
dál pak pracuješ s "promenna", takže není definovaná
migi
Profil
to jsem se jen přepsal tady. ve skriptu nemám promena ani proměná ale "user", "heslo", apod.
Mastodont
Profil
Začni tím, že prostě všechny session_is_registered a session_register vyhodíš a budeš namísto nich používat normálně $_SESSION. V manuálu je výslovně napsáno, že se tyto dva způsoby nemají míchat.
AM_
Profil
V manuálu je výslovně napsáno, že se tyto dva způsoby nemají míchat.
On je nemíchá, on to má čistě postaru. Prostě jediná funkce session_* kterou použiješ je session_start(), dál už pracuješ s $_SESSION['index'] jako normálním polem proměnných, ne skrz funkce session_register atd. tedy $_SESSION['index']='hodnota'; echo $_SESSION['index']; místo $index=hodnota; session_register($index);
Mastodont
Profil
AM_
Migi píše do $_SESSION['promena'] uložím, čili to míchá :)
migi
Profil
ve skutečnosti to nemíchám. měl jsem to udělané postaru a částečně jsem to už změnil (to je to, že použiju $_SESSIN['promena']). Protože si ale na další stránce php nepamatuje hodnotu uloženou do promene, měl jsem za to že nemůžu prostě jen vyhodit session_is_registered a session_register, ale musím to nějak předělat.
Takže jestli to dobře chápu, mělo by mi stačit session_start() + $_SESSION['promena']='hodnota' a nic dalšího už není potřeba?? Tak to totiž mám a na další stránce mi to píše to "Notice: Undefined variable: promena..."
AM_
Profil
Takže jestli to dobře chápu, mělo by mi stačit session_start() + $_SESSION['promena']='hodnota' a nic dalšího už není potřeba?? Tak to totiž mám a na další stránce mi to píše to "Notice: Undefined variable: promena..."
K proměnné pak zase musíš přistupovat přes $_SESSION['promenna'], protože se neregistruje jako globální $promenna. podle hlášky "undefined variable" a ne "undefined index" je téměř jasné, že přistupuješ přímo k $promenna, která samozřejmě takto definována není.
migi
Profil
to máš pravdu že jsem pak volal jen proměnnou bez $_SESSION. díky, teď už to běží.
migi
Profil
akorát teď jsem narazil ještě na jeden problém. a když jste mi tak hezky poradili, zkusím to ještě jednou:
dřív jsem si vypsal všechny uživatele do tabulky a do každého řádku jsem umístil odkaz na editaci příslušného záznamu. Informaci o tom který řádek-uživatel byl vybrán jsem předával přes odkaz <a href="'.$uzivatele_edit_page.'?id='.$id_user.'">edit</a>, což zavolalo např stránku s adresou: http://localhost/admin/user/uzivatele_ei01.php?id=1
Na této stránce jsem v php 4 měl automaticky v proměnné $id uloženou hodnotu z odkazu (v tomto případě 1).
V PHP 5 je $id prázdné.
co s tím??

děkuju za odpověď
Mastodont
Profil
Nepoužívat $id, ale $_GET['id'].
Jinak je to tím, že v PHP5 je vypnutá volba register_globals.
migi
Profil
jo to je ono. díky. s PHP dělám zas asi po 3 letech a je to znát :)

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: