php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.05.2008, 19:32  
Neuer Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 2
Maggus83 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Keine neue Session_id() ohne Browserschließung

Hallo,
folgendes kleines Problem, ja ich fange erst mit php an.

Sitze grad am Sessionmanagement, welches ich über cookies realisiere.
Das Problem besteht hierbei darin, dass wenn ich den Browser schließe und ich mich neu anmelde mir eine neue Session_Id gegeben wird. Wenn ich mich allerdings nur auslogge und wieder einlogge und den Browser nicht schliesse, auch mit einem anderen User, bekomme ich keine neue Session_ID, sondern die alte.
Das Cookie an sich löscht er allerdings, die logout.php scheint also zu funktionieren.
Was kann ich da tun?


Das Formularfeld:
PHP-Code:
<?php session_start (); ?>
<html> 
<head> 
  <title>Login</title> 
</head> 

<body>  
<?php 
if (isset ($_REQUEST["fehler"])) 

  echo 
"Die Zugangsdaten waren falsch."

?> 
<form action="login_cookie.php" method="post"> 
  Name: <input type="text" name="name" size="20"><br> 
  Kennwort: <input type="password" name="pwd" size="20"><br> 
  <input type="submit" value="Login"> 
</form> 
</body> 
</html>
Hier wird ein Cookie gesetzt und eine session_id als wert eingetragen. und dann weitergeleitet wenn der user in der DB gefunden wird.
PHP-Code:
<?
session_start
();
// Datenbankverbindung aufbauen 
$connectionid mysql_connect ("localhost""***""***"); 
if (!
mysql_select_db ("***"$connectionid)) 

 die (
"Keine Verbindung zur Datenbank");

$sql "SELECT "
    
"username, valid ".
  
"FROM ".
    
"user ".  
  
"WHERE "
   
"(username like '".$_REQUEST["name"]."') AND "
   
"(password = '".$_REQUEST["pwd"]."')";

$result mysql_query($sql);

if (
mysql_num_rows ($result) ==  1)  
{
 
$cookiename "MyTest";
 
$cookiewert session_id();
 
setcookie($cookiename,$cookiewert);
 
header ("Location: intern_cookie.php"); 


else 

 (
"Location: Formular.php?fehler=1");
}  
?>
Hier hin wird man weitergeleitet wenn der Nutzer in der DB gefunden wurde.
PHP-Code:
<? 
session_id
();
session_start(); 
<
html
<
head
  <
title>Interne Seite</title
</
head
<
body
INTERNER BEREICH
<p>
<? 
echo 
$_COOKIE["MyTest"];
?> 
  <hr> 
  <a href="logout.php">Ausloggen</a> 
</body> 
</html>
PHP-Code:
<?php 
ob_start 
(); 

setCookie("MyTest","",-3600);
session_start (); 
session_unset (); 
session_destroy (); 


header ("Location: formular.php"); 
ob_end_flush (); 
?>
Vielen Dank schonmal für die Hilfe.
Maggus83 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.05.2008, 19:59  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

PHP: session_destroy - Manual
Zitat:
session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie() may be used for that.
Und darunter steht ein Beispiel.

Beim Einloggen solltest Du außerdem session_regenerate_id() verwenden.
David ist offline  
Alt 19.05.2008, 20:04  
Neuer Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 2
Maggus83 befindet sich auf einem aufstrebenden Ast
Standard

Hm, hatte die regenerate-anweisung wohl vorhin an der falschen Stelle gesetzt, da lag der Hund begraben. Der Rest funktioniert wunderbar, dankeschön für schnelle Hilfe.

mfg Maggus
Maggus83 ist offline  
 


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] Daten aus einer Tabelle mit Form Select weiter geben ch4in PHP Tipps 2008 12 06.06.2008 21:42
Wie bekomm ich eine neue Session-ID?? rabatz PHP Tipps 2007 1 20.02.2007 15:26
Neue Beiträge seit dem letzem Login ? cytrobic PHP Tipps 2006 6 11.09.2006 20:01
Hilfe: Neue Beiträge markieren iRadiaX PHP Tipps 2006 6 17.05.2006 13:21
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
neue Seite mit X breite und min höhe + druckbefehl HTML, Usability und Barrierefreiheit 15 11.05.2005 13:34
session_id() - Neue ID beziehen RcRaCk2k PHP-Fortgeschrittene 4 03.02.2005 12:52
Neue Seite in Tabelle Anuschka PHP Tipps 2004 3 21.08.2004 01:12
Hielfe: WIE neue DB Einträge zählen& farbig markieren??? Datenbanken 2 20.07.2004 12:16
[Erledigt] neue Zeile bei Textfeld PHP Tipps 2004 6 06.07.2004 18:34
[Erledigt] PHP Eine neue PHP seite automatisch öffnen PHP Tipps 2004 1 19.06.2004 12:40
Macht ihr neue Zeile vor { ? Off-Topic Diskussionen 42 05.06.2004 01:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
session_id

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:01 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