Asi nefungují Session
Ahoj,
na localhostu jsem si udělat login systém, kde po přihlášení mám: $_SESSION[‚username‘] = $name; header(‚location:home.php‘);
a na stránce home page: <?php echo $_SESSION[‚username‘]?> + nad kodem v php:
<?php
session_start();
if(!isset($_SESSION[‚username‘])){
header(‚location:login.php‘);
}
?>
no jméno mi to nevypisuje, ani když jsem si dal echo $_SESSION[‚username‘]; v souboru, kde dělám po přihlášení.
pak mi tím pádem nefunguje ani php kód nad html a když se přihlásím, tak mě to vrátí zpátky, protože to nenajde tu session.
Díval jsem se na stackoverflow a tam psali: Povolujete soubory cookie ze vzdálené domény? PHP je obvykle nakonfigurováno tak, aby ukládalo vaše session_id v cookie na vašem počítači, takže pokud nepovolíte cookies z vaší domény webhostingu, session_id nebude uložen z login.php, a proto jej nelze vyvolat na index.php
a nevím, jestli je zde v konfiguraci php potřeba něco zapnout nebo vypnout, nebo jinou verzi php než 7.3?
Budu rád za každou pomoc 🙂
8 Answers
Ano, už to jede, stačilo vypnout session secure v konfiguraci php, to jsem přesně potřeboval vědět, jestli zde nemůže být něco špatně a bylo. Děkuji za vyřešení problému.
Dobrý den,
jakým způsobem ukládáte proměnnou $name ? Pokud si uděláte výpis $_SESSION v login, vidíte tam dané jméno ? Případně to stejné, když to následně uděláte na home.php.
Pravděpodobně ji jen špatně předáváte danou proměnnou.
na stránce validation.php mám
a v home page home.php mám
a jak říkám, na localhostu mi to šlo, tak právě nevím, proč to nejde zde
a když si ji vypíšu, tak se nevypíše, ani když místo $name dát např: „ahoj“;
Dobrý den,
prosím o upřesnění na kterém z Vašich hostingů se toto děje?
Dobrý den,
jediný rozdíl, který vidím je, že na tomto webhostingu máte v konfiguraci PHP vypnutý parametr session_use_only_cookies. Bohužel upřimně nevím, zda na to tento parametr může mít vliv (spíše ne).
Ostatní proměnné se Vám vypisují? Nemůže být problém ve formuláři? Případně si zkuste script na jiném webhostingu.
w_home.php
<?php session_start(); echo session_id(); echo '<br>'; echo $_SESSION['ahoj'];
w_index.php
<?php session_start(); echo session_id(); echo '<br>'; echo $_SESSION['ahoj'];
w_login.php
<?php session_start(); $_SESSION['ahoj'] = 'wedos'; header('Location: http://wedos.gamelab.cz/w_home.php');
do w_index.php jsem navíc umístil phpinfo(); , aby jste si případně mohl zkontrolovat rozdílnost verzí já v rámci debugu pracoval s v.7.1.
V tomto případě je to plně funkční