$ _SESSION Zorluklar

3 Cevap php

Ben (bir yan soru onları geri göndermek için nasıl $userid $_SESSION["userid"] sonra tekrar ana sayfaya kullanıcıyı yönlendirir adında bir değişkenin değerini saklayan bir oturum açma komut dosyası oluşturma nerede idi?).

Ben geri bu sayfaya olsun Ancak, ben session_id() yankılanan yaşıyorum ve $_SESSION["userid"] değeri ve tek oturum kimliği gösterir. Bu belki benim yönlendirme sayfası üstünde olması gerekir, ama bu doğru olsaydı, o zaman ben yankılanan session_id bunu yankılanır sayfada sonuna kadar her zaman değişiklik olacağı aklıma geldi. İşte betik:

    <?php
session_start();
include_once("db_include.php5");
doDB();
//check for required fields from the form
if ((empty($_POST['username']) && empty($_POST['email'])) || empty($_POST['password'])) {
header("Location: loginform.php5");
exit;
}   else if($_POST["username"] && $_POST["password"]){

    //create and issue the query
    $sql = "SELECT id FROM aromaMaster WHERE username='".$_POST["username"]."' AND password=PASSWORD('".$_POST["password"]."')";
    $sql_res =mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));

    //get the number of rows in the result set; should be 1 if a match
    if(mysqli_num_rows($sql_res) != 0) {
      //if authorized, get the userid
      while($info = mysqli_fetch_array($sql_res)) {
        $userid = $_info["id"];
      }
      //set session variables
      $_SESSION['userid'] = $userid;

      mysqli_free_result($sql_res);
      //redirect to main page
      header("Location: loginredirect.php5");
      exit; }
    } else if($_POST["email"] && $_POST["password"]) {

          //create and issue the query
    $sql = "SELECT id FROM aromaMaster WHERE email='".$_POST["email"]."' AND password=PASSWORD('".$_POST["password"]."')";
    $sql_res =mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));

    //get the number of rows in the result set; should be 1 if a match
    if(mysqli_num_rows($sql_res) != 0) {

      //if authorized, get the userid
      while($info = mysqli_fetch_array($sql_res)) {
        $userid = $_info["id"];
      }
      //set session variables
      $_SESSION['userid'] = $userid;

      mysqli_free_result($sql_res);

      //redirect to main page
      header("Location: loginredirect.php5");
      exit;}
      } else {
      //redirect back to login form
      header("Location: loginform.php5");
      exit;
    }
    mysqli_close($mysqli);
?>

3 Cevap

You're doing this:

while($info = mysqli_fetch_array($sql_res)) {
    $userid = $_info["id"];
}

Where you should do this:

while($info = mysqli_fetch_array($sql_res)) {
    $userid = $info["id"];
}

Emin olun:

   <?php
   session_start();

Her sayfanın üst kısmında yer alır.

Ayrıca, sizin yönlendirmeleri dışında yorum ve sizinle başlamak için doğru değeri depolamak / alma emin olmak için ayarı konum değerini echo'ing tarafından test edebilirsiniz.

Siz oturum veri değişiklikleri saklamak için session_write_close() aramak gerekir.

Yan cevap: bu tarayıcı tarafından doldurulmuştur eğer, geri yönlendirmek için $SERVER["HTTP REFERER"] kullanabilirsiniz