hallo Leute koennt ihr mir helfen mit meinem board?!?
auf meiner haupt-board-seite wo alles includet wird steht session_start();
so beim einloggen wird zB reingeschrieben:
$_SESSION["name"] = $name;
$_SESSION["passwort"] = $passwort;
so, dann wird auch alles richtig gemacht, wird dann auch zB ueber
$login_name = $_SESSION["name"];
print("$login_name");
auch alles richtig ausgegeben, nur wenn ich dann zB weiter klicke zB in ein thread reingehe, dann ist auf einmal nichts mehr in der session drinne und wird nichts ausgegeben und bin dann nicht eingeloggt!
woran kann dies liegen? im prinzip ist alles richtig, denn bei mir auf dem apache2 server funzt alles einwandfrei, nur nicht auf dem server im internet!
plz help! thx im voraus!
mfg WebRobert
Wollte nur mal angemerkt haben, daß ich den Thread ins Webdev-Forum verschoben habe. --Jeez
Pack in die erste Zeile des Php-Codes jeder(!) Seite den Befehl session_start() rein.
Und poste nächstes mal ins Webdesigner-/Programmiererforum, wenn du eine Frage zu Php hast (zumindest, wenn sie eindeutig Webprogrammierung bestrifft).
Ich hab' nicht soviel Ahnung von Session. Werden die Session-IDs bei dir evtl. nur mittels Cookie gespeichert? Wenn ja, würde ich das ändern, viele Surfer lassen nicht alle Cookies zu.
Ich hab' nicht soviel Ahnung von Session. Werden die Session-IDs bei dir evtl. nur mittels Cookie gespeichert? Wenn ja, würde ich das ändern, viele Surfer lassen nicht alle Cookies zu.
...
wie soll ich denn das aendern? ich hab auch nicht viel ahnung mit sessions!
Das beruhigt mich: Ich bin nicht der einzige, der Probleme mit Sessions hat
Möglich wäre es, dass du in der ersten Datei mit session_name() der Session einen neuen Namen zugewiesen hast und es deshalb nicht funktioniert. Um die SID per URL zu übergeben musst du "nur" an jeden Link folgendes anhängen:
@ ork
Wäre das nicht so sinnvoller:
Sonst kommt man irgendwie nicht so gut an die ID ran...
(BTW, muss man nicht & statt & nehmen? Zumindest für den Validator )
Konstante, die entweder den Namen und die ID der Session in der Form "name=ID" enthält oder eine leere Zeichenkette, falls die Session-ID in einem entsprechenden Cookie gesetzt wurde.
...
Aber das mit & statt & stimmt, hab ich kurzfristig vergessen (der Validator hätte mich ja aber freundlich darauf hingewiesen )
statt $_SESSION["name"] = $name;
dies gemacht:
$name = "hans";
session_register("name");
...
Piiiiiiiiep.
Zitat von Dingsi
Veraltet, unsauber und nur bei aktivierten register_globals funktional (Bei neueren PHP-Version sind register_globals endlich standardmäßig deaktiviert). Besser und mMn übersichtlicher ist es folgendes zu machen:
@dingsi:
das mit der veralteten weise hab ich auch nicht angewendet, mache es so wie du es gesagt hast, aber hatte ich auch schon fueher gemacht, bevor du es mir gesagt hast!
@all:
das prob ist behoben, musste einfach in den internet-optionen unter datenschutz automatisches cookie-bearbeiten ausmachen und somit einfach cookies annehmen!
mit firefox ging das sowieso sofort einwandfrei!
thx fuer alle fleissigen posts und hilfe-versuche!
Ja ... ich hab auch irgendwie gerade ein dämliches Sessionproblem >_>
Zitat
Hab mich jetzt mal ein klein wenig mit Sessions auseinandergesetzt und die dann auch anstelle der Cookies verwendet ... aber sobald ich auch nur ein session_start(); an den Anfang der Datei schreib, weigert sich mein Browser strikt, diese aufzurufen ._.
...
Siehe auch hier
Aus irgendeinem Grund will nichts mehr funktionieren, wenn ich auch nur session_start(); hinschreibe und den restlichen Sessionkram (ohne den es vorher ja funktioniert hatte) weglasse ... der erste Teil des Scripts (mit PHP-Anweisungen) sieht so aus ...
Das einzig veränderte daran ist eigentlich der Teil nach der Passwortkontrolle, und zwar dass nun die Daten in Sessionvariablen und nicht mehr in Cookies gespeichert werden ... mit Cookies funktionierte es zwar in den Grundlagen, führte aber zu Fehlern. Wäre schön wenn mir wer das erklären kann ._.
@ Tomarus:
Browser haben mit Sessions nix zu tun... zumindest nicht mit diesen PHP-Sessions.
Alles findet auf dem Server statt
Hat ein User noch keine Session-ID (welche per Cookie oder auch per GET-Variable an das Script übergeben wird) wird per session_start() eine ID angelegt.
Jede Session-ID hat dann ein Konto an Variablen die man mit der ID assoziiert anlegen kann und die, soweit die Session-ID an das Script übergeben wird (per Cookie oder auch GET-Variable), kann das Script auf das damit Assoziierte Konto zurückgreifen.
Alles was nun also ein Browser tun können muss, ist:
1.: Cookies annehmen und an Scripte übergeben,
oder
2.: Variablen+Werte per GET an ein Script übergeben.
Ersteres können schätzungsweise 90% aller Clients die im Netz unterwegs sind.
Zweiteres... *zucktmitdenschultern* 99%.
Hier stellt sich ergo eher die Frage, ob dein Server überhaupt mit Sessions klarkommt.
Mach halt mal'n phpinfo() und schau was dort bei den Sessions erlaubt ist.
Hatte ich schon nachgeschaut, wusst nur net genau, was da nu aktiviert sein muss und was nicht ... also die infophp.php sagt mir folgendes ...
Hat das was mit dem Autostartdingens zu tun? Aber ich mein ... müsst dann beim Aufrufen der Datei nicht wenigstens ne Fehlermeldung oder der HTML-Teil der Datei angezeigt werden? Ist ja gleich auf der Loginseite, auf der die Session eigentlich erst nach dem erfolgreichen Login starten sollte ._. Und außerdem, einmal hatte ich auf diesem Server schon was mit Sessions gemacht, und da funktionierte es auch ...
Ich werd's mal eben auf nem anderen Host versuchen ... gestern hat mein FTP-Prog gestreikt >_>
[edit] Habs mal woanders getestet ... da streikt er zwar nicht gleich wegen dem session_start();, funktionieren tut's aber auch nichts >_>
Öhm joar ... nur haben Sessions nicht unbedingt was mit Cookies zu tun, und zweitens benutz ich ja normalerweise Opera und hab überall anders mit Sessions keine Probleme >_>
Es ist einfach nur, dass die Seite, sobald ich das session_start(); in die erste Zeile schreibe, nicht mehr will >_>
Kann jetzt eigentlich irgendwer diese phpinfo da oben deuten?
...Kann jetzt eigentlich irgendwer diese phpinfo da oben deuten?
...
Keine Ungereimtheiten, bis auf den Umstand, das dein SID nicht funktionieren wird.
Standard-Name des Variable-Value-Paars ist PHPSESSID.
Wie man nun einen anderen, eigenen Namen per PHP-Funktion im Script initiiert, weiß ich nicht, geht aber. Ich machs direkt in der php.ini. Das ist der Vorteil eines root-Zugangs.
Weshalb dein Script nun so seltsam reagiert, weiß ich nicht. Ich bin zu faul/hab zu viel zu schaffen dein Script bis ins Detail zu analysieren.
Irgendwie fühle ich mich langsam schlecht, nie was zum Problem selber zu schreiben sondern nur zu anderen Sachen die nebenbei erwähnt wurden.. Aber auch nur langsam..
Zitat von Chocwise
Wie man nun einen anderen, eigenen Namen per PHP-Funktion im Script initiiert, weiß ich nicht, geht aber.
...
Jup. Vor dem session_start(); einfach session_name("name_fur_session"); Machen. Unter name_fur_session wird dann der Cookie bzw die GET-Variable gespeichert...