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 | 1387 (1200) | dasf |
| » | Php varen loginOddelek: Programiranje | 4310 (3810) | Volk| |
| » | PHP cookie problemOddelek: Izdelava spletišč | 1456 (1151) | Ziga Dolhar |
| » | unset cookieOddelek: Izdelava spletišč | 2010 (1817) | tomitza |
| » | [php] Problem z dinamično stranjoOddelek: Izdelava spletišč | 1703 (1548) | Iskraman |
