Autor | Zpráva | ||
---|---|---|---|
Weiron Profil |
#1 · Zasláno: 2. 1. 2015, 19:42:49
Dobrý den,
tvořím s kamarádem webovou aplikaci pro vytváření sportovních tabulek. Každý uživatel si může vytvořit svoji tabulku. To není ale úplně důležité. Po přihlášení do "aplikace" se uživatel po kliknutí na odkaz přesměruje do tvorby (tvorba.php). Chtěli bychom zamezit tomu, aby kdokoliv, kdo není právě přihlášen a napíše "natvrdo" (dám příklad) htttp"//www.sportovnitabulka.cz/tvorba.php nemohl vidět editaci na této stránce či ho to po zadání automaticky přesměrovalo na úvodní stránku (index.php). Vítáme každé návrhy. S pozdravem, Weiron a kamarád. |
||
Zechy Profil |
Weiron:
Po přihlášení se zpravidla uloží nějáká identifikace uživatele do $_SESSION, takže si třeba uložíš do $_SESSION["jméno"] jeho jméno a pak na tvorba.php budeš ověřovat, zda ta session existuje pomocí isset. Pokud ne, vykážeš ho na index.php. Samozřejmě po odhlášení nesmíš zapomenout session unsetnout či zničit a na každé stránce zapínat session_start(); |
||
Yuff.3 Profil |
Jednoducho by som to celé vložil do podmienky - ak som prihlásený, pokračujem na stránke ak nie presmeruje ma inam. if (iLOG) {tuna bude stránka} else {redirect("URL");} no a to LOG si treba definovať ako niečo čo je obsahuje len prihlásený užívateľ - napr. ID
Neviem či som sa vyjadril zrozumiteľne a či to pomôže, snáď áno. AK nie určite sa nájde niekto schopnejší pomôcť. //áno toto čo napísal Zechy som chcel uviesť aj ja |
||
lionel messi Profil |
#4 · Zasláno: 2. 1. 2015, 20:02:38
Yuff.3:
„else {redirect("URL");}“ Chápem, čo si chcel napísať, ale na presmerovanie v PHP slúži funkcia header. |
||
Weiron Profil |
#5 · Zasláno: 3. 1. 2015, 18:10:54
Děkuji Vám všem za Vaše návrhy, nějak jsme to sesmolili. :)
|
||
Marschmallow Profil |
#6 · Zasláno: 3. 1. 2015, 18:17:39
Weiron:
Prozradíš nám jak? |
||
Yuff.3 Profil |
#7 · Zasláno: 3. 1. 2015, 18:22:35
lionel messi:
ďakujem - neviem prečo som v minulosti používal hento. Zase som o niečo múdrejší. |
||
Weiron Profil |
#8 · Zasláno: 3. 1. 2015, 18:53:51
Marschmallow:
session_start (); $login=$_SESSION['jmeno']; if (!isset($_SESSION['jmeno'])){ header('location: index.php'); } else{ echo "Vítejte ".$login."<br>"; |
||
Weiron Profil |
#9 · Zasláno: 3. 1. 2015, 20:36:42
Ještě bychom se chtěli zeptat, zdali je možné přenášet proměnnou na více stránek.
Příklad: z "numberu" (name="pocet") z formuláře ze stránky index.php odešleme hodnoty na jinou stránku. (action="druha.php"). Ovšem na třetí stránce už nelze s touto proměnnou pomocí metody $_POST['pocet'] pracovat. Nevíte, jak tento problém vyřešit? Veškeré návrhy jsou vítány. S pozdravem, Weiron a kamarád. |
||
lionel messi Profil |
Weiron:
„Ovšem na třetí stránce už nelze s touto proměnnou pomocí metody $_POST['pocet'] pracovat. Nevíte, jak tento problém vyřešit?“ Na druha.php si uložiť hodnotu $_POST['pocet'] do $_SESSION['pocet'] a k tejto premennej pristupovať na ďalšej stránke (veľmi podobnou alternatívou je použitie cookies). Len nezabudnúť na použitie session_start všade, kde pracuješ so $_SESSION, prípadne zapnúť session automaticky v php.ini (to má ale isté nevýhody).
|
||
Weiron Profil |
#11 · Zasláno: 3. 1. 2015, 20:51:56
lionel messi:
Děkujeme moc, funguje to. Jen ještě otázka, máme vypínat session na každém konci stránky nebo to není nutné a poté ho stačí na každé nové stránce zapnout pouze znovu? |
||
lionel messi Profil |
#12 · Zasláno: 3. 1. 2015, 21:04:07
Weiron:
„Jen ještě otázka, máme vypínat session na každém konci stránky nebo to není nutné a poté ho stačí na každé nové stránce zapnout pouze znovu?“ Myslím si, že to nie je nutné a neviem o tom, že by sa to bežne robilo. |
||
Časová prodleva: 9 let
|
0