php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.11.2005, 23:31  
Gast
 
Beiträge: n/a
Standard Sessions - Variabeln werden beim ersten Mal nicht gespeicher

Hallo,

mein Login Script funktioniert eigentlich einwandfrei, wenn da nicht dieser kleine Fehler wäre.

Beim ersten Einloggen wird man zwar kurzzeitig eingeloggt (alle $_SESSION Variabeln werden gesetzt und werden auch mit echo "$_SESSION['variabel'] angezeigt), aber wenn man danach auf eine andere Seite geht sind die Session Variabeln wieder leer. Wenn man sich dann nochmal einloggt funktioniert alles einwandfrei. Komisch oder?!

Noch seltsamer ist, dass eine andere Variabel $_SESSION['userid'] bestehen bleibt, $_SESSION['username'] jedoch wird erst beim zweiten einloggen "richtig" gespeichert.

Leider gibt es keine Fehlermeldung. Ich vermute mal das es daran liegt das ich in meinem Script später nocheinmal $_SESSION['username'] benutze....aber kann mir das nicht erklären.

Code vom Login ist in Ordnung, da er ohne in das Design eingebunden zu sein funktioniert.

Kann mir das nicht erklären. Kann mir vielleicht einer helfen?
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.11.2005, 23:37  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Wie wäre es, wenn du uns mal deinen Code zeigen würdest?

Langsam solltet ihr doch kapieren, dass wir hier keine Glaskugeln rumliegen haben -.-

Zitat:
Code vom Login ist in Ordnung
Gehe niemals davon aus, dass ein Code in Ordnung ist, nur weil er unter anderen Umständen funktionierte - zu funktionieren scheint. Wenn etwas nicht funktioniert, dann gilt generell sämtlicher Code als möglicherweise fehlerhaft. Natürlich kann man sich Gedanken machen, in welchen Codes der Fehler stecken könnte/müsste/sollte, aber niemals nur vom Gefühl her einen Code als "fehlerfrei" abstempeln!
Buhmann ist offline  
Alt 18.11.2005, 23:50  
Gast
 
Beiträge: n/a
Standard

Ich würde ja liebend gerne den Code posten, aber der ist sehr sehr lang!
Meine Seite wird durch mehrere includes erstellt. Ohne diese includes funktioniert das Script. Ich poste einfach mal den Login Code, vielleicht hat sich ja doch ein Fehler eingeschlichen:


PHP-Code:
<?php

session_name
(klickreich);
session_start();

$sessionid=session_id();
$sessionname=session_name();

//Variablen bestimmen
$username=$_POST['username'];
$passwortmd5=md5($_POST['passwort']);



//Suche nach Benutzername
$count=mysql_query("SELECT count(id) FROM members where username='$username'"); 
list(
$anzahl) = mysql_fetch_row($count); 

if(
$anzahl=="0"

echo
"Du musst uns schon einen gültigen Benutzernamen geben ;-)!"




//Benutzerdaten überprüfen
$abfragen  =  mysql_query("select id,username,passwort,sessionid,aktiviert from members WHERE username = '$username'");
while  (
$row  =  mysql_fetch_row($abfragen)) 



{
if(
$username == $row[1] && $passwortmd5 == $row[2])
{



//Testen ob Account aktiviert ist
if($row[4]==1)
{



//MemberArea
echo"Du hast dich erfolgreich eingeloggt

"
;




//Parameter definieren
$_SESSION['passwort']=$passwortmd5;
$_SESSION['username']=$_POST['username'];
$_SESSION['userid']=$row[0];

}
//aktiviert
}
}

?>
 
Alt 18.11.2005, 23:55  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Zitat:
]Ohne diese includes funktioniert das Script
dann zeig uns doch mal "diese" includes.

Abgesehen von sicherheitsmängeln ist dein Login-code ok.
Buhmann ist offline  
Alt 19.11.2005, 00:27  
Gast
 
Beiträge: n/a
Standard

Also das würde wirklich hier den Rahmen sprengen
Muss den Fehler woanders suchen. Interessant ist nur, dass wenn ich ein Formular nehme, dass nicht ins Design eingebunden nehme, dass es dann funktioniert. Muss also irgendwie was mit dem Formular passieren
 
Alt 19.11.2005, 00:33  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Zitat:
Also das würde wirklich hier den Rahmen sprengen Wink
Muss den Fehler woanders suchen
dazu:

Zitat:
Ein Mann geht auf der Straße entlang und sieht jemanden, der immer wieder um eine Straßenlaterne rumkriecht. Er geht zu ihm hin, und fragt ihn, was er denn mache. Der Mann antwortet: "Ich suche schon seit 30 minuten einen 20€ Schein, den ich verloren habe." "Wenn sie schon so lange suchen, kann es dann nicht sein, dass der Schein wo anders liegt?" "Das wäre möglich." "Und warum suchen sie dann immernoch hier?" "Hier ist nunmal das beste Licht."
Ich hoffe mal, ich konnte den Witz einigermaßen gut reproduzieren, ich hab nämlich nur eine ungefähre AHnung, wie der mal ging...
Buhmann ist offline  
Alt 19.11.2005, 00:43  
Gast
 
Beiträge: n/a
Standard

Ok ich kann euch gerne alle include Dateien geben, wenn ihr dann auch wirklich die dateien durchgeht. Hab kein Bock hier alles zusammenzustellen und dann wirds sowieso nicht gelesen.

Ach ja und mal so nebenher....wie kann bitte ein Formular irgendwie geändert werden, dass es ohne Zusätze mit dem Login Script funktioniert und mit dem Design nur erst beim zweiten Mal?????? Das ist doch verhext!!
 
Alt 19.11.2005, 02:24  
Gast
 
Beiträge: n/a
Standard

Es wär vielleicht wirklich ganz hilfreich, wenn du die entsprechenden Ausschnitte mal veröffentlichen würdest. Wenn du selbst schon sagst, es liegt am Formular, dann kopier doch einfach mal den Bereich hier rein und man wird sehen, ob es daran liegt
 
Alt 19.11.2005, 12:45  
Gast
 
Beiträge: n/a
Standard

Ich hab die Ursache jetzt selbst behoben, weiss aber nicht warum das fehlerhaft war. Bevor der oben angegebene LoginScript aufgerufen wird, wird der User Status angezeigt (also ob online oder offline).
Das sieht so aus:

[php]<?php


####### ZUSATZ ########


if($_GET['p']=="login")
{
$_SESSION['username'] = $_POST['username'];
$_SESSION['passwort'] = md5($_POST['passwort']);

$abfragen = mysql_query( "select id from members WHERE username = '$username'");
while ($row = mysql_fetch_row($abfragen))
{
$_SESSION['userid'] = $row[0];
}

}

######################





$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$passwortmd5 = $_SESSION['passwort'];

//Benutzerdaten überprüfen
$abfragen = mysql_query( "select username,passwort,aktiviert from members WHERE id = '$userid'");
while ($row = mysql_fetch_row($abfragen))
{

if($username == $row[0] && $passwortmd5 == $row[1] && $row[2]=="1")
{
$count=mysql_query("SELECT count(id) FROM pn where zu='$username' && gelesen='0'");
list($anzahlpn) = mysql_fetch_row($count);
echo"<font color=\"#00FF00\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">ID $userid · $username</font> <font color=\"#000000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">· <a href=\"index2.php?p=pn&$sessionname=$sessionid\">$ anzahlpn</a> neue Nachrichten · <a href=\"index2.php?p=ausloggen&$sessionname=$sessio nid\">ausloggen</a> :.</font>";



} //ende if benutzerdaten ok
else
{

echo"<font color=\"#FF0000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">nicht
eingeloggt</font><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">
&middot; <a href=\"index2.php?p=einloggen&$sessionname=$sessio nid\">einloggen</a> :.</font>";

} //ende else
} //ende while

?>

Daran ist nichts dran falsch....
Aber da das Script ja vor dem Login angezeigt wird und der User dann schon als ONLINE angezeigt werden soll habe ich unter ZUSATZ was hinzugefügt für den Fall das gerade Loggedin wird.

Ohne Zusatz gehts mit leider nicht. Was ist an diesem kurzen Code Stück falsch. Ich vermute mal, dass der irgendwie mit dem Login Code koelliert.
 
 


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
Domainweiterleitung und Sessions emmis PHP Tipps 2007 1 03.08.2007 02:03
2 Sessions Kein Genie PHP Tipps 2006 8 21.07.2006 15:45
8 MB Speicher voll - alle Variabeln freigeben wie aber.... janni PHP Tipps 2006 10 30.03.2006 11:59
Globale Variabeln in Funktionen finerip PHP Tipps 2007 3 28.11.2005 16:00
[Erledigt] probleme mit sessions PHP Tipps 2007 1 17.11.2005 10:43
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Sessions! DER_Brain PHP Tipps 2005-2 5 30.06.2005 14:51
2 Sessions? PHP Tipps 2005 5 29.04.2005 19:04
Proble mit Sessions PHP Tipps 2005 7 07.02.2005 17:42
Warning bei Formular mit Sessions PHP Tipps 2004-2 5 30.11.2004 10:02
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
[Erledigt] sessions aus dateisicht PHP-Fortgeschrittene 6 12.10.2004 13:59
Sessions auf Apache2 gehen nicht! Server, Hosting und Workstations 1 27.09.2004 17:39
[Erledigt] Usermanagement mit Sessions - Sicherheitsprobleme ? PHP Tipps 2004 0 30.06.2004 09:49
Sessions, sessions und nochmal sessions PHP-Fortgeschrittene 0 06.06.2004 00:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sessions variabeln

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