| Autor | Zpráva | ||
|---|---|---|---|
| migi Profil |
#1 · Zasláno: 4. 5. 2009, 22:43:13 · Upravil/a: migi
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 |
#2 · Zasláno: 4. 5. 2009, 22:47:51
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 |
#3 · Zasláno: 4. 5. 2009, 23:51:39
to jsem se jen přepsal tady. ve skriptu nemám promena ani proměná ale "user", "heslo", apod.
|
||
| Mastodont Profil |
#4 · Zasláno: 5. 5. 2009, 07:44:30
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 |
#5 · Zasláno: 5. 5. 2009, 08:24:50
„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 |
#6 · Zasláno: 5. 5. 2009, 09:03:41
AM_
Migi píše do $_SESSION['promena'] uložím, čili to míchá :) |
||
| migi Profil |
#7 · Zasláno: 5. 5. 2009, 09:28:44
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 |
#8 · Zasláno: 5. 5. 2009, 14:37:08
„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 |
#9 · Zasláno: 5. 5. 2009, 15:17:41
to máš pravdu že jsem pak volal jen proměnnou bez $_SESSION. díky, teď už to běží.
|
||
| migi Profil |
#10 · Zasláno: 5. 5. 2009, 22:10:44
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 |
#11 · Zasláno: 5. 5. 2009, 22:24:44
Nepoužívat $id, ale $_GET['id'].
Jinak je to tím, že v PHP5 je vypnutá volba register_globals. |
||
| migi Profil |
#12 · Zasláno: 5. 5. 2009, 22:58:36
jo to je ono. díky. s PHP dělám zas asi po 3 letech a je to znát :)
|
||
|
Časová prodleva: 17 let
|
|||
0