Sitzungsvariablen funktionieren nicht php

Lesezeit: 5 Minuten

Hier ist der Code meiner Anmeldeseite, auf der das Anmeldeskript die Authentizität des Benutzers überprüft und dann mithilfe der Header-Funktion auf die Posteingangsseite umleitet.

<?php
session_start();

include_once('config.php');
$user=htmlentities(stripslashes($_POST['username']));
$password=htmlentities(stripslashes($_POST['password']));
// Some query processing on database    

if(($id_user_fetched<=$id_max_fetched) && ($id_user_fetched!=0)){
$_SESSION['loggedIn'] = 'yes';
    header("Location:http://xyz/inbox.php?u=$id_user_fetched");
    //echo 'Login Successful';
    }else{
        echo 'Invalid Login';
        echo'<br /> <a href="https://stackoverflow.com/questions/19692157/index.html">Click here to try again</a>';
        }
}else{
    echo mysqli_error("Login Credentials Incorrect!");
    }
?>

Die Seite inbox.php sieht so aus:

<?php
session_start(); 
echo 'SESSION ='.$_SESSION['loggedIn'];
if($_SESSION['loggedIn'] != 'yes'){
echo $message="you must log in to see this page.";
//header('location:login.php');
}
 //REST OF THE CODE

?>

Mit dem obigen Code zeigt die inbox.php jetzt immer die Ausgabe: SESSION=Sie müssen sich anmelden, um diese Seite zu sehen. Das bedeutet, dass entweder die Sitzungsvariable nicht eingerichtet wird oder die inbox.php die Sitzungsvariable nicht abrufen kann. Wo gehe ich falsch?

  • Es sollte sein echo "Login Credentials Incorrect!" ; nicht echo mysqli_error("Login Credentials Incorrect!");

    – rückgängig gemacht

    30. Oktober 2013 um 19:31 Uhr

  • Können Sie Debuggen, um zu bestätigen, dass die Bedingungen Ihrer if Anweisung wird ausgewertet true? (d. h. eine Aussage im True- und False-Block wiederholen, um zu sehen, welcher feuert)

    – Crackertastisch

    30. Oktober 2013 um 19:32 Uhr


  • 1. rufen Sie beide Skripte von derselben Domäne auf? 2. Verwenden Sie irgendeine Art von session_name, session_id, session_set_cookie? 3. session_start gibt einen Wert zurück, überprüfen Sie ihn?

    – Ilja Bursov

    30. Oktober 2013 um 19:32 Uhr

  • @Crackertastic Ja, ich kann Ihnen versichern, dass sie als wahr bewertet werden. mehrmals überprüft

    – Arihant

    30. Oktober 2013 um 19:33 Uhr

  • Das sind zwei else Aussagen für einen if

    – rückgängig gemacht

    30. Oktober 2013 um 19:33 Uhr


Sitzungsvariablen funktionieren nicht php
zurück

  1. Versicher dich session_start(); aufgerufen wird, bevor Sitzungen aufgerufen werden. Es wäre also eine sichere Wette, es am Anfang Ihrer Seite zu platzieren, direkt nach dem Öffnen <?php Tag vor allem anderen. Stellen Sie außerdem sicher, dass vor dem Öffnen keine Leerzeichen/Tabulatoren vorhanden sind <?php Schild.
  2. Nach dem header Umleitung, beenden Sie das aktuelle Skript mit exit(); (Andere haben auch vorgeschlagen session_write_close(); und session_regenerate_id(true)Sie können diese auch versuchen, aber ich würde verwenden exit();).
  3. Stellen Sie sicher, dass Cookies in dem Browser aktiviert sind, den Sie zum Testen verwenden.
  4. Sicherstellen register_globals ausgeschaltet ist, können Sie dies am überprüfen php.ini Datei und auch mit phpinfo(). Beziehen auf Das wie man es ausschaltet.
  5. Stellen Sie sicher, dass Sie die Sitzung nicht gelöscht oder geleert haben.
  6. Stellen Sie sicher, dass der Schlüssel in Ihrem ist $_SESSION Superglobales Array wird nirgendwo überschrieben.
  7. Stellen Sie sicher, dass Sie auf dieselbe Domain umleiten. Also Umleitung von a www.yourdomain.com zu yourdomain.com bringt die Sitzung nicht voran.
  8. Stellen Sie sicher, dass Ihre Dateierweiterung .php (es passiert!).

PHP-Sitzung nach Umleitung verloren

  • könnte es vielleicht ein Serverfehler sein? Ich habe die einfachsten Testbeispiele wie folgt ausprobiert: session.php session2.php:

    – Arihant

    30. Oktober 2013 um 20:13 Uhr


  • Ich habe dasselbe Problem. Ursache: Es war kein freier Speicherplatz vorhanden!

    – Cuarcuiu

    30. November 2015 um 17:12 Uhr

  • gleiches Problem bei mir. Ich versuche, die Seite mit Google Cloud Print zu drucken, aber die Sitzung wird geschlossen/gelöscht. wie man das behebt

    – Karthi

    28. Februar 2017 um 12:44 Uhr

  • Zu #4: Dieses Feature wurde ab PHP 5.3.0 VERWORFEN und ab PHP 5.4.0 ENTFERNT. php.net/manual/en/security.globals.php

    – Chiwda

    28. August 2017 um 9:47 Uhr

  • #7 war der Schlüssel, wenn Sie sich bei www anmelden und dann die URL ohne www testen, verschwindet die Sitzung!

    – Kapitän Fantastisch

    5. Mai 2020 um 14:49 Uhr

Sitzungsvariablen funktionieren nicht php
Vadman

Ich hatte das gleiche Problem für eine Weile und hatte eine sehr harte Zeit, es herauszufinden. Mein Problem war, dass die Seite eine Weile funktionierte und die Sitzungen richtig funktionierten, und dann brach plötzlich alles zusammen.

Anscheinend muss Ihr session_save_path(), bei mir war es /var/lib/php5/, die richtigen Berechtigungen haben (der Benutzer, der PHP ausführt, zB www-data, benötigt Schreibzugriff auf das Verzeichnis). Ich habe es versehentlich geändert und die Sitzungen vollständig unterbrochen.

Laufen sudo chmod -R 700 /var/lib/php5/ und dann sudo chown -R www-data /var/lib/php5/ damit der PHP-Benutzer Zugriff auf den Ordner hat.

  • 777 ist ein schlechter Satz von Berechtigungen für den Sitzungsspeicherordner. Sie müssen den Eigentümer des Ordners ändern, damit der Webserver darauf schreiben und jeden anderen Zugriff verhindern kann.

    – Benutzer2182349

    10. August 2015 um 12:28 Uhr

  • HOOOOLY SHIT Mann, alles Gute in deinem Leben, ich habe buchstäblich geweint, weil ich die Sitzung nicht auf die nächste Seite bringen konnte.

    – Rok Dolinar

    31. März 2016 um 20:09 Uhr

1646944447 312 Sitzungsvariablen funktionieren nicht php
Luis Felipe de Melo

Wenn Sie ein Verbindungsskript verwenden, vergessen Sie nicht, es zu verwenden session_start(); auch an der Verbindung, hatte einige Probleme, bevor ich dieses Problem bemerkte.

  • Oh! Ich hatte ein Formular, in dem ich den Benutzernamen eingab und versuchte, diesen Benutzernamen auf einer anderen Seite zu verwenden. Im Grunde war mein Fehler, nicht anzurufen session_start() auf einer anderen Seite, wo ich diesen Benutzernamen abrufe. Danke. Das hat wirklich geholfen.

    – Omkar76

    29. Juli 2021 um 5:29 Uhr

Sitzungsvariablen funktionieren nicht php
Aschraf Ali

Wenn Ihr Sitzungspfad nicht richtig funktioniert, können Sie es vielleicht versuchen session.save_path(path/to/any folder); fungieren als Alternativpfad. Wenn es funktioniert, können Sie Ihren Hosting-Provider nach dem Problem mit dem Standardpfad fragen.

Vielleicht hilft es anderen, mir selbst hatte ich

session_regenerate_id(false);

Ich habe es entfernt und alles ok!

nach dem Login war ok … autsch!

1646944448 296 Sitzungsvariablen funktionieren nicht php
Arihant

Ich habe gerade mit dem Hosting-Service gesprochen, es war ein Problem an deren Ende. Er sagte: “Ihr Konto session.save_path wurde nicht festgelegt, da ein Problem auftritt. Ich habe es jetzt für Sie festgelegt.”

Und danach funktioniert es einwandfrei 🙂

1646944448 293 Sitzungsvariablen funktionieren nicht php
Talsibon

Ich hatte ein ähnliches Problem und mit der Cookie-Domain:

    ini_set('session.cookie_domain', '.domain.com');

Die Domäne wurde falsch eingerichtet, daher wurden alle Sitzungen ignoriert, da das Benutzer-Cookie nie richtig gesetzt wurde. Ich hoffe, dies wird jemandem helfen.

988930cookie-checkSitzungsvariablen funktionieren nicht php

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy