Forum » Programiranje » PHP prijava
PHP prijava
filips ::
Naredil sem program za prijavo v PHP. Koda deluje normalno, ko pa se pokliče funkcija header("Refresh: 0") se seja ponastavi. Tik pred klicem funkcije header("Refresh: 0") so vsi podatki v seji so še vedno tam, ko pa se stran ozveži pa ne več.
Kako lahko popraviti ali izboljšati to kodo?
index.php:
login.php:
theme.php:
Če namesto header("Refresh: 0") uporabim require("theme.php") nastane to:
Kako lahko popraviti ali izboljšati to kodo?
index.php:
function session_setup($time) { $session = session_get_cookie_params(); session_set_cookie_params($time,$session["path"], $session["domain"], false, true); session_name("SESSION"); session_start(); } session_setup(31536000); function check_login($type,$offline="") { global $mysqli; $uTypeQuery = "SELECT * FROM ".dbPrefix."user_type" OR die("MySqli error (".$mysqli->errno."): ".$mysqli->error); $uTypeResult = $mysqli->query($uTypeQuery); if (true) { if (isset($_SESSION['user']['username']) and isset($_SESSION['user']['pass']) and $_COOKIE['logged-in']==1) { $username = $mysqli->real_escape_string($_SESSION['user']['username']); $password = $mysqli->real_escape_string($_SESSION['user']['pass']); $query="SELECT * FROM ".dbPrefix."users WHERE username='$username' OR email='$username' AND password='$password'"; $result = $mysqli->query($query) OR die("MySqli error (".$mysqli->errno."): ".$mysqli->error); if ($rez=$result->fetch_assoc()) { while($typeRez = $uTypeResult->fetch_assoc()) { if ($typeRez['id']==$rez['type']) { $uTypeRez=$typeRez; } } if ($uTypeRez["admin"]==1 or ($offline=="offline" and $uTypeRez["offline"]==1)) { $_SESSION['user']['username']=$rez['username']; $_SESSION['user']['pass']=$rez['password']; $_SESSION['user']['email']=$rez['email']; $_SESSION['user']['type']=$rez['type']; $_SESSION['user']['id']=$rez['id']; $_SESSION['user']['authorized']=$uTypeRez; $_SESSION['login']['status']=1; if ($offline=="offline") { $_SESSION['login']['offline']=1; } if ($type==1) { require("theme.php"); }else { //tukaj so podatki še vedno v seji header("Refresh: 0"); //ko se stran osveži pa ne več } }else { $_COOKIE['logged-in']=0; setcookie("logged-in", 0, time()-3600); $_SESSION=array(); $_COOKIE[sessionName]=array(); setcookie(sessionName, 0, time()-3600); unset($_SESSION); if ($type==1) { if ($offline=="offline") { login(); }else { require("login.php"); } }else { echo 'Nimate dovoljenja za dostop do administracije.'; } } }else { $_COOKIE['logged-in']=0; setcookie("logged-in", 0, time()-3600); $_SESSION=array(); $_COOKIE[sessionName]=array(); setcookie(sessionName, 0, time()-3600); unset($_SESSION); if ($type==1) { if ($offline=="offline") { login(); }else { require("login.php"); } }else { echo 'Uporabniško ime in/ali geslo ni pravilno'; } } }else { $_COOKIE['logged-in']=0; setcookie("logged-in", 0, time()-3600); $_SESSION=array(); $_COOKIE[sessionName]=array(); setcookie(sessionName, 0, time()-3600); unset($_SESSION); if ($type==1) { if ($offline=="offline") { login(); }else { require("login.php"); } }else { echo 'Potrebno je izpolniti vsa polja'; } } } } check_login(1);
login.php:
<h1>Prijava</h1> <p> <?php login(); ?> </p>
theme.php:
<h1>naslov</h1> <p>vsebina</p>
Če namesto header("Refresh: 0") uporabim require("theme.php") nastane to:
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Django template language - trikOddelek: Programiranje | 1269 (1082) | dasf |
» | Php varen loginOddelek: Programiranje | 3953 (3453) | Volk| |
» | PHP cookie problemOddelek: Izdelava spletišč | 1350 (1045) | Ziga Dolhar |
» | unset cookieOddelek: Izdelava spletišč | 1882 (1689) | tomitza |
» | [php] Problem z dinamično stranjoOddelek: Izdelava spletišč | 1572 (1417) | Iskraman |