Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 03.09.2005, 19:54 Titel:
Session geht nicht |
|
|
|
|
Also ich habe folgendes Problem:
wenn ich mich eingelogt habe und dann auf einen Link klicke ist der Login wieder weg. Dieses Problem habe ich aber nur Online. Offline mit Apache funtioniert alles so wie es soll.
hier mal der code:
Code: |
$user_login = "false";
if (isset($_GET["action"]) == "logout")
{
session_unset();
$user_id = "0";
$user_name = "Null";
$user_password = "Null";
$user_login = "False";
}
if(isset($_POST['loginok']) == "ok")
{
$tmp_username = $_POST['loginname'];
$tmp_userpw = $_POST['loginpw'];
$abfrage = mysql_query("SELECT * FROM users_ms WHERE name = '$tmp_username' AND pw=md5('$tmp_userpw')");
if($row = mysql_fetch_array($abfrage))
{
$_SESSION['user_id'] = $row['id'];
$_SESSION['user_name'] = $row['name'];
$_SESSION['user_login'] = "true";
$_SESSION['user_login'] = "true";
$user_login="true";
}
else
{
$_SESSION['user_login'] = "error";
$user_login = "error";
}
}
if(session_is_registered("user_id"))
{
$user_id = $_SESSION['user_id'];
$user_name = $_SESSION['user_name'];
$user_login = $_SESSION['user_login'];
}
|
ich hoffe ihr könnt mir da helfen. |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 03.09.2005, 22:26 Titel:
|
|
|
|
|
wo sind deine session_start() etc methoden?
es hoert sich fuer mich nach folgenden problemen an:
1. der server unterstuetzt keine automatische session-weitergabe, d.h. er haengt an keinen link die session id an - evtl. mal schauen, such mal hier im forum, da wurd das schonmal erklaert
2. deine cookie einstellungen sind bei dem server auf maximale sicherheit, bzw. erlauben keine cookies - somit kann die session-id nicht gespeichert werden
3. der server hat vielleicht generell probleme mit session-handling (weil irgendwas falsch eingestellt ist, z.b. dass kein temporaeres verzeichnis fuer session-files existiert) - bei selbst eingerichteten v-servern o.a. kann das schon mal vorkommen
Ich hoffe das konnte helfen. |
|
Nach oben |
|
|
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 04.09.2005, 10:20 Titel:
|
|
|
|
|
Die Funktion session_start() war ganz am Anfang der Datei. Das hab ich alles wegen der Übersicht gelöscht ,)
Aber ich denke des hat sich erledigt. Die sessid wird zwar übergeben, aber der Array mit den session-werten leert sich einfach. Ich speicher einfach mal alles in ner Datenbank.
Trotzdem danke für die Antwort |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 04.09.2005, 11:05 Titel:
|
|
|
|
|
rufst du irgendwo anders session_unset() auf? soweit ich weis macht das genau die funktion (leert die deklarierten session-variablen aber zerstoert nicht die session - btw: ich wuerd beim logout noch session_destroy(); aufrufen) - oder kann es sein, dass du session_unset() ganz am ende der datei nochmals aufrufst um die deklarierten variablen sicher zu loeschen (dann waer das das problem, php speichert erst am ende des script die session-variablen ab - er haette dann nichts mehr zum abspeichern)
sonst hoert sich das fuer mich wirklich nach einer falschen server-einstellung an, dass der server also die session-variablen nicht "mitnehmen" bzw. in einer datei abspeichern kann... |
|
Nach oben |
|
|
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 04.09.2005, 11:44 Titel:
|
|
|
|
|
juhu es geht
Also die sid wurde ja übertragen, aber die $_SESSION war immer leer.
Ich habe jetz einfach die ganzen Werte in einer db ablegen lassen und lese diese dann halt wieder aus. Funktioniert alles so wie es soll.
Thread könnt ihr dichtmachen.
Nochmal danke für deine Hilfe. |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 04.09.2005, 19:55 Titel:
|
|
|
|
|
Bevor wir hier dicht machen: du bist dir über den Nachteil deiner Variante in Sachen Performance und Serverlast im klaren? |
|
Nach oben |
|
|
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 04.09.2005, 21:20 Titel:
|
|
|
|
|
Ich denk jetz mal nicht das die Seite von tausenden von Leuten gestürmt wird. Trotzdem werd ich mal schaun obs da noch eine andere Möglichkeit gibt. Vielen Dank für deinen Rat ,) |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 05.09.2005, 00:13 Titel:
|
|
|
|
|
es kommt drauf an, wie er die session-variablen per mysql speichert - wenn man dies richtig macht (mit einem eigenen session handler - ist nicht so schwer wie es sich anhoert), dann sollte die performance keine probleme bereiten - die ganze abarbeitung der session geschiet dann in nur 2 queries (egal was man alles mit der session anstellt) und 2 queries sind SEHR wenig |
|
Nach oben |
|
|
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 05.09.2005, 11:09 Titel:
|
|
|
|
|
ähm ja
Kannst du das auch so erklären das des ein Mensch wie ich versteht?
Ich code erst seit wenigen Wochen php... |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 05.09.2005, 13:35 Titel:
|
|
|
|
|
ich dachte da eher an: http://de2.php.net/session_set_save_handler
dort kann man die funktionen, welche bei session_start(), etc aufgerufen werden selber definieren (also dass eine session nicht lokal in einer textdatei gespeichert wird sondern in der mysql datenbank)
such mal hier im forum bzw. in google
btw: habe gerade bei mir geschaut: session-management dauert vielleicht max 1ms (0,001s) - das ist wirklich nicht lange |
|
Nach oben |
|
|
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 05.09.2005, 17:21 Titel:
|
|
|
|
|
Also wegen set_session_save_handler(oder wie auch immer des heisst):
es geht auch ohne also lass ichs weg^^.
Dann hab ich noch eine Frage wegen der sessid:
session.use_trans_sid ist vom Server her aus. Kann ich des jetz anmachen ohne in der php.ini was zu ändern?
Reicht des wenn ich in der index.php einfach session.use_trans_sid "1"; oder so schreib?
Für Hilfe wäre ich wieder sehr dankbar.^^ |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 05.09.2005, 17:42 Titel:
|
|
|
|
|
razer hat folgendes geschrieben: | Reicht des wenn ich in der index.php einfach session.use_trans_sid "1"; oder so schreib? |
Halt mich für verwirrt, aber ich würde wie folgt vorgehen:
Code: | ini_set('session.use_trans_sid', 1); |
|
|
Nach oben |
|
|
razer Mitglied
Angemeldet: 29.01.2005 Beiträge: 44 Wohnort: kA^^ Interessen: zZZzzzzzZZz
|
Verfasst am: 06.09.2005, 16:16 Titel:
|
|
|
|
|
OK und danke für deine Antwort :] |
|
Nach oben |
|
|
vercci Mitglied
Angemeldet: 10.04.2019 Beiträge: 436162
|
|
Nach oben |
|
|
|