session_id geçmek için nasıl () php sayfaları atlatmamı?

2 Cevap php

kullanıcı login button (index.php) tıkladığında ben chechlogin.php arıyorum ben LoginID bir parola kontrol ediyorum nereye kadar-

if($count==1)
{
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
$_SESSION['UserId'] = $myusername;
$_session['SessionId'] = session_id();
header("location:LoggedUser.php");
}

in LiggedUser.php

<?php session_start();  //starting session

if (!isset($_SESSION['SessionId']) || $_SESSION['SessionId'] == '') { header("location:index.php"); } ?>

Birazdan kimliği ve password.I giriyorum rağmen Problem: O zaman geri index.php sayfasına gidiyor düşünüyorum session_id () düzgün çalışıp çalışmadığını?

2 Cevap

$ _SESSION için $ _SESSION değiştirin.

btw session_register önerilmiyor ve kullanılmamalıdır. Ayrıntılar için session-register kılavuzuna bakınız.

btw 2.. Sen $ _SESSION içinde SessionId saklamak gerekmez, UserId yeterlidir. Yani kod gibi görünebilir:

login.php

if ($count == 1) {
    $_SESSION['UserId'] = $myusername;
    header ("location: LoggedUser.php");
    exit;
}

loggeduser.php

if (empty ($_SESSION['UserId'])) {
    header ("location:login.php");
    exit;
}

// user is logged 

EDIT: Exit added as Emil suggested.

Her header('Location: ...') çağrısından sonra exit; çağrı düşünün. Aksi takdirde PHP öngörülemeyen hatalara neden olabilir kod kalanı, ayrıştırma devam edecektir.

header("Location: LoggedUser.php");
exit;