cookie problem!

Operator_Jon

Erfahrenes Mitglied
HI!
Ich habe ein prblem undzwar, wenn ich ein cookie gesetzt habe und dann die abfrage mache, leitet er mich zwar weiter, aber lädt ganz lange und macht irgendwie nix!
hier mal ein stück code in dem alles drin steht:
PHP:
<?php
session_start();
include("lib/sql.php");
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (isset($_COOKIE["user"])) {
  $query = "SELECT * FROM mitglieder WHERE name='".$_HTTP_COOKIE_VARS["user"]."'";
  $sel = mysql_query($query,$conn) or die(mysql_error());
  $row = mysql_fetch_assoc($sel);
  $ID = $row["ID"];
  $pass = $row["pass"];
  $level = $row["level"];
  $user = $row["user"];
  session_register("user");
  session_register("ID");
  session_register("pass");
  session_register("level");
  ?>
  <script>
  location.href="members.php?action=logged&do=";
  </script>
  <?php
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
require("lib/class_template.inc.php");
$date = date("d.m.Y");
if ($action == "") {
  $tpl = new Template('templates/members.tpl');
  $query = "SELECT * FROM mitglieder ORDER BY name ASC";
  $sel = mysql_query($query,$conn);
  $tplUser = $tpl->fetchBlock('users');
  while ($row = mysql_fetch_assoc($sel)) {
    $tplUser->assign('user',$row["name"]);
    $tpl->assign('users',$tplUser);
    $tplUser->reset();
  }  
  $tpl->out();
}

if ($action == "verify") {
  $tpl = new Template('templates/members_verify.tpl');
  $query = "SELECT * FROM mitglieder WHERE name='$user'";
  $sel = mysql_query($query,$conn);
  if (mysql_num_rows($sel)) {
    $row = mysql_fetch_assoc($sel);
    if ($pw != $row["pass"]) {
      $tpl->assign('status',$user.' nicht eingeloggt!');
      $tpl->assign('fehler','<tr><td>Fehler<td>:<td>Passwort ist Falsch!');
      $tpl->assign('link','<a href="javascript:history.back()">Zurück</a>');
      $tpl->out();
      die();
    }
    else {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      if (!isset($_HTTP_COOKIE_VARS["user"])) {
        setcookie("user", $user, time() + 60*60*24*7*4);
      }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      $tpl->assign('status',$user.' eingeloggt!');
      $tpl->assign('fehler','');
      session_register("user");
      $row["level"] = $level;
      session_register("level");
      $tpl->assign('link','<a href="members.php?action=logged&do=">Weiter</a>');
    }
  }
  else {
    $tpl->assign('status','Guest eingeloggt!');
    $tpl->assign('fehler','');
    $user = "Guest";
    session_register("user");
    $row["level"] = $level;
    $tpl->assign('link','<a href="members.php?action=logged&do=">Weiter</a>');
  }
  $tpl->out();
}

ich weiß, ist ein wenig lang, aber einfach zu durchschauen!

€dit:
also mit dem header befehl, zeigt er in der statuszeile auch immer nur an:
Website gefunden. Warten auf Antwort...
 
Zuletzt bearbeitet:
Ok, ich weiß ne ganz warum, aber !
PHP:
<?php
session_start();
include("lib/sql.php");
require("lib/class_template.inc.php");
$date = date("d.m.Y");
if ($action == "") {
  if (isset($_COOKIE["user"])) {
    $query = "SELECT * FROM mitglieder WHERE name='".$_COOKIE["user"]."'";
    $sel = mysql_query($query,$conn) or die(mysql_error());
    $row = mysql_fetch_assoc($sel);
    $ID = $row["ID"];
    $pass = $row["pass"];
    $level = $row["level"];
    $user = $_COOKIE["user"];
    session_register("user");
    session_register("ID");
    session_register("pass");
    session_register("level");
    header("location: members.php?action=logged&do=");
  }
  $tpl = new Template('templates/members.tpl');
  $query = "SELECT * FROM mitglieder ORDER BY name ASC";
  $sel = mysql_query($query,$conn);
  $tplUser = $tpl->fetchBlock('users');
  while ($row = mysql_fetch_assoc($sel)) {
    $tplUser->assign('user',$row["name"]);
    $tpl->assign('users',$tplUser);
    $tplUser->reset();
  }  
  $tpl->out();
}

if ($action == "verify") {
  $tpl = new Template('templates/members_verify.tpl');
  $query = "SELECT * FROM mitglieder WHERE name='$user'";
  $sel = mysql_query($query,$conn);
  if (mysql_num_rows($sel)) {
    $row = mysql_fetch_assoc($sel);
    if ($pw != $row["pass"]) {
      $tpl->assign('status',$user.' nicht eingeloggt!');
      $tpl->assign('fehler','<tr><td>Fehler<td>:<td>Passwort ist Falsch!');
      $tpl->assign('link','<a href="javascript:history.back()">Zurück</a>');
      $tpl->out();
      die();
    }
    else {
      if (!isset($_HTTP_COOKIE_VARS["user"])) {
        setcookie("user", $user, time() + 60*60*24*7*4);
      }
      $tpl->assign('status',$user.' eingeloggt!');
      $tpl->assign('fehler','');
      session_register("user");
      $row["level"] = $level;
      session_register("level");
      $tpl->assign('link','<a href="members.php?action=logged&do=">Weiter</a>');
    }
  }
  else {
    $tpl->assign('status','Guest eingeloggt!');
    $tpl->assign('fehler','');
    $user = "Guest";
    session_register("user");
    $row["level"] = $level;
    $tpl->assign('link','<a href="members.php?action=logged&do=">Weiter</a>');
  }
  $tpl->out();
}
 
Funktioniert da denn alles?!
Ich hatte nämlich (vorausgesetzt, die Session-ID wird per Cookie übergeben) immer Probleme damit weitere Cookies zu setzten, nachdem die session_id bereits ihren Cookie gesetzt hatte. Besser gesagt, konnte ich keine Cookies setzten, und ausgelesen wurden die auch nicht richtig.
Das hat sich erst geändert, als ich die session entweder erst nach dem setzen der Cookies gestartet hatte, oder aber die Session_ID nicht mehr per Cookie senden lies.
 
Zurück