php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.10.2004, 09:18  
Gast
 
Beiträge: n/a
Standard Session wird nicht erkannt

Hallo,

ich habe ein großes Problem mit Sessions, dass mir unerklärlich ist.
Ich benutze Apache 2.0, PHP Version 4.3.9, Windows XP und IE 6.0.

Die Session erstelle ich in einer login.php so:
PHP-Code:
<?php

ob_start
();
session_save_path("./tmp");

//some Code

//Wenn Nutzername vorhanden, Session starten

if (in_array($user_id$username_array)) {
 
 
session_start();
 
$_SESSION["user_id"] = "$user_id";
 
  
header("Location: ./index.php"); 
 
}else {
  
application_error("LoginFehler");
}

ob_flush();
?>
in index.php rufe ich die Session wieder auf
PHP-Code:
<?php
  
session_save_path
("./tmp");
session_start();

echo 
$_SESSION["user_id"];

?>
Dann erhalte ich folgende Fehlermeldung

Notice: Undefined index: user_id in C:\Program Files\Apache Group\Apache2\htdocs\qds\index.php

Und das ist mir ein Rätsel. Zumal die SessionId vorhanden ist. Hab ich überprüft. Vielleicht liegt es daran, dass es eine andere ist, als in der login.php erstellt. Sobald nämlich die index.php aufgerufen wird, wird eine neue Session erstellt. Im tmp-file sind nämlich jetzt zwei IDs. Und bei jedem aktualisieren kommt eine neue hinzu. Aber session_start() erstellt doch nur eine Neue, wenn noch keine vorhanden ist? Ich habe schon tausendmal Sessions in der Art erstellt und nie Probleme gehabt. Jetzt erstelle ich aber in einer Firma eine client-server Anwendung fürs Intranet. Kann es sein, dass irgendwelche Einstellungen im Explorer oder bei Sicherheitsrichtlininien ein erkennen der Session verhindern? Oder irgendeine Einstellung der php.ini deaktivieren? An der musste ich bisher nichts ändern, was mit Sessions zu tun hatte.

Wäre schön wenn mir da jemand helfen könnte.

Im voraus schon mal Danke
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.10.2004, 11:29  
Gast
 
Beiträge: n/a
Standard Re: Session wird nicht erkannt

In der php.ini gibt es folgende Variable:

session.use_trans_sid = 0;

Hier kannst du festlegen ob die SID (SessionID) automatisch übergeben wird. Steht hier 0 dann mußt du die SID entweder mit get oder post übergeben. Also z.B. index.php?SID=703e05a593bb95d0b37e78b67160a7f8. Die Session-ID kannst du folgendermaßen bei den Links anhängen. Link. Damit wird auch automatisch geregelt, dass die Session_ID nicht in der URL aufscheint, wenn der Client Cookies akzeptiert.

Stelltst du die Variable auf 1 geschieht die Übergabe automatisch.

Ich hoffe ich konnte dir helfen.
 
Alt 29.10.2004, 11:57  
Gast
 
Beiträge: n/a
Standard

Funktioniert leider auch nicht.
 
Alt 29.10.2004, 12:16  
Gast
 
Beiträge: n/a
Standard

Versuch es mal damit:
PHP-Code:

if (in_array($user_id$username_array)) {

session_start();
session_register('user_id');

  
header("Location: ./index.php");


 
Alt 29.10.2004, 12:22  
Gast
 
Beiträge: n/a
Standard

session_register braucht man nicht zu verwenden wenn man die Superglobal $_SESSION verwendet. Die Einträge werden automatisch registriert.

1.Kommt definitiv die richtige session id an und erkennt er diese auch?
bzw wie wird die id übergeben? Cookie? Wird der Cookie auch wirklich gesetzt?
Wenn ja mal so probieren: session_start($id);
2. ist $user_id auch wirklich gesetzt?
 
Alt 29.10.2004, 13:09  
Gast
 
Beiträge: n/a
Standard

Also $user_id ist gesetzt.
Die richtige Session kommt nicht an. Das ist ja das Problem. Es wird einfach eine neue erstellt. Obwohl das nicht passieren dürfte, wenn bereits eine Session mit Einträgen registriert ist. Im tmp-Ordner habe ich dann zwei ID rumfliegen. Und bei jedem aktualisieren kommt eine weitere hinzu.
hier mal der komplette Code

login.php

PHP-Code:
<?php

ob_start
();
session_save_path("./tmp");
include_once (
"tools.php");
include_once (
"./db/user_db.php");
include_once (
"./db/connection.php");

$c = new Connection();
$c -> connect();

$user_id strtolower($_POST["userid"]);  //User_Id in Kleinbuchstaben umwandeln

$user User :: selectAll();
$username_array = array();

foreach(
$user as $key => $value){
  
$username_array[$key] = strtolower($value->user_id);
}

if (
in_array($user_id$username_array)) {
  
session_start();
  
$user User :: selectById($_POST["userid"]);
  
  
$_SESSION["user_id"] = $user -> user_id;
  
$_SESSION["user_name"] = $user -> name_1;
  
header("Location: ./index.php"); 
 
}else {
  
//application_error2("LoginFehler");
}

$c -> disconnect();
ob_flush();
?>
index.php

PHP-Code:
<?php
session_save_path
("./tmp");
session_start();

require_once 
'Smarty.class.php';
include_once(
"./tools.php");

//if(isset($_SESSION["user_id"])){

//Template Objekt erstellen
$tpl =& new Smarty;

setPaths(&$tpl);

//setSessionTpl(&$tpl);

$tpl->assign("user_id"$_SESSION["user_id"]);

// parsen und anzeigen des Templates
$tpl->display('start.tpl');
//}
//else echo "Fehler";

?>
 
Alt 29.10.2004, 13:15  
Gast
 
Beiträge: n/a
Standard

Wie hast du dir das übergeben der session id denn vorgstellt?
Die Id muss ja ans script übergeben werden...
"Übermittlung der Session-ID"
http://de2.php.net/manual/de/ref.session.php

http://www.php-faq.de/q/q-sessions-methode.html
 
Alt 29.10.2004, 13:52  
Gast
 
Beiträge: n/a
Standard

Die Übergabe erfolgt doch automatisch in einem Cookie. Ich musste die ID noch nie explizit übergeben. Außerdem will ich sie nicht an die URL anhängen.
 
Alt 29.10.2004, 13:54  
Gast
 
Beiträge: n/a
Standard

Unter anderem steht das hier auch: Dies passiert automatisch, ohne dass zusätzlicher Code geschrieben werden muss.

http://www.php-faq.de/q/q-sessions-wie.html
 
Alt 29.10.2004, 13:58  
Gast
 
Beiträge: n/a
Standard

Bist du dir sicher, dass das passiert?
ist session.use_cookies = 1 ?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Session in Session tinchen PHP Tipps 2007 22 21.03.2007 19:53
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session abschaltbar?? Probleme mit Objekten in Session! becks123 PHP-Fortgeschrittene 3 19.09.2005 15:47
Bei Session - verfall socke PHP Tipps 2005-2 12 01.09.2005 02:30
Klassenobjekt in ner Session speichern?! Finkman PHP Tipps 2005-2 5 09.08.2005 00:38
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
Session error nach Umstellung auf PHP 5 PHP Tipps 2005 15 13.05.2005 14:35
verliere Session Sonja PHP Tipps 2005 3 27.04.2005 09:32
Session Problem PHP-Fortgeschrittene 3 18.02.2005 14:37
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
session wird nicht erkannt, session id wird nicht erkannt, session_id() wird nicht erkannt, session id nicht erkennbar, php session wird nicht mehr erkannt, tpl datei php wird nur halb erkannt, session kommt nicht an, notice: undefined index: user_id in fehlermeldung, php sid nicht erkannt, sessions werden nicht erkannt, session id php \nicht erkannt\, session wird bei index nicht erkannt, session php sid kommt nicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.