Yeniden yönlendirme döngü

1 Cevap php

Ben bir istemci intranat benzer bir kullanıcı giriş sistemi oluşturma. Ben ana sayfasına erişmeye çalıştığınızda Ve ben FF bir yönlendirme döngüsü olsun.

Ben bir kullanıcı bu ile oturum olup olmadığını görmek için kontrol ediyorum:

if(($_SERVER['PHP_SELF'] != '/webmaster/index.php') && ($_SESSION['loggedin'] != '1234')){
  header("Location: ".$domain."index.php?l=no");
  exit();
}

: İstemci giriş kolları dosya olan> - Aşağıda benim süreç login.php olduğunu

<?php
ob_start();
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL | E_NOTICE);
include ("config.inc.php");
include ("jsonEncode.php");

// username and password sent from form
$username = '';
$password = '';
$username = mysql_real_escape_string($_GET['username']);
$password = mysql_real_escape_string($_GET['password']);

$sql    = "SELECT * FROM clients WHERE username='$username' AND password='$password' LIMIT 1";
//echo $sql;
$result = mysql_query($sql);

$data   = mysql_fetch_array($result);
$count  = mysql_num_rows($result);

if($count==1){
    $_SESSION['username']  = $username;
    $_SESSION['password']  = $password;
    $_SESSION['client_id'] = $data['c_id'];
    $_SESSION['loggedin']  = "1234";

    /*
    echo $_SESSION['client_id'];
    echo $_SESSION['password'];
    echo $_SESSION['username'];
    */
    echo $_SESSION['loggedin'];
    // valid
    $var = array('valid' => 1, 'username' => $username, 'password' => $password);
    print php_json_encode($var);

}else{
    // invalid
    $var = array('valid' => 0, 'username' => $username, 'password' => $password);
    print php_json_encode($var);
}
?>

Ana index.php sayfası iki formları müşterilerimize tek ve webmastsers için birine sahiptir, ve bir müşteri iseniz yönlendirilir: clients/, ve bir webmaster iseniz yönlendirildi konum: { [(1)]}.

Ben oturum açma komut dosyalarını kontrol ettikten ve doğru bilgi dönen ve oturum, ancak döngü devam ediyor.

Form ajax gönderildikten sonra 1 kullanıcı devam görmek için geçerli veya geçersiz 0 olmanın bir değeri ile JSON döndürür.

1 Cevap

Formun AJAX yoluyla gönderilen Eğer oturum tanımlama buna göre ayarlanmış olduğundan emin misin? Ben Firefox uyumsuz istekleri ile birlikte çerez bilgilerini göndermek olacağını biliyorum ama etrafında başka bir yol çalışması eminiz?

if (($_SERVER['PHP_SELF'] != '/webmaster/index.php') && 
    ($_SESSION['loggedin'] != '1234')) { // I don't like this!
    header("Location: ".$domain."index.php?l=no");
    exit();
}

$ _SESSION ['Loggedin'] değeri olacaktır! = '1234 'Çoğu zaman ve bu başlangıçta durumda olurdu, sen değeri de tanımsız olup olmadığını kontrol edin ve buna göre hareket etmelidir. Eğer kullanıcı istekleri $ _SESSION ['loggedin']! = '1234 'Olmadığını index.php ise bu yeni bir oturumu ise şu an ne garanti var mı? Aksi takdirde kullanıcı oturumunu izlemek için oturum çerezlerini kullandıklarını varsayarak, AJAX yanıtı buna göre bir oturum çerezi set değilse neden olabilir bir yönlendirme döngü olacak?