Logged_in() funktioniert nur in Firefox

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Smartsoul
    antwortet
    Ich könnte dir ein Screenshot senden

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    das glaube ich zwar nicht, aber was soll ich zu dieser behauptung sagen.

    fakt ist (entsprechende servereinstellungen vorausgesetzt), wird zu erst versucht ein cookie zu setztén, was bei deinen einstellungen auch funzen sollte. nur wenn das nicht geht, muss die sid per get/post übergeben werden.

    Einen Kommentar schreiben:


  • Smartsoul
    antwortet
    Aber wenn ich die Einstellungen im IE auf "alle Cookies annehmen" gestellt habe und es trotzdem nicht funktioniert???

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Weil Firefox vermutlich die Session-Cookies akzeptiert hat.

    Einen Kommentar schreiben:


  • Smartsoul
    antwortet
    Falls es wen interessiert:

    Habe nun alle Links so zusammengesetzt:
    PHP-Code:
    <A HREF="beispiel.php?<?php echo strip_tags(SID)?>">
    Nun wird die SID im URL übertragen und es funktioniert nun alles auch in IE und Opera.

    Dank an wahsaga, der mich mit seinem Link auf die richtige Fährte gebracht hat. Auch wenn mir eine konkretere Hilfe sicher lieber gewesen wäre.

    Was mir immer noch nicht klar ist:

    Wieso hat Firefox keine Probleme gemacht? Kann mir das wer erklären?

    Einen Kommentar schreiben:


  • Smartsoul
    antwortet
    @wahsaga

    Hab ich gesehen und gelesen. Cookies und als URL-Parameter.

    Wenn ich die SessionID nicht als URL-Parameter übergebe, sollte sie wohl im Cookie übergeben werden, oder?

    Habe im IE schon die Einstellungen bzgl. Cookies auf niedrigste Datenschutzstufe (alle Cookies annehmen) gestellt und trotzdem funktioniert es nicht.

    Außerdem verstehe ich nicht, wenn an meinen Skripten was falsch sein sollte, wieso schafft es Firefox dann problemlos, sich so zu verhalten als wäre alles o.k.?

    Einen Kommentar schreiben:


  • wahsaga
    antwortet
    Auf der von mir verlinkten Manual-Seite gibt es extra einen Abschnitt mit der Überschrift "Übermittlung der Session-ID" ...!

    Einen Kommentar schreiben:


  • Smartsoul
    antwortet
    @wahsaga

    Hatte mich schon ein wenig informiert unter anderem hier:

    http://tut.php-q.net/sessions.html

    Um eine Session-ID zu bekommen, muß man eine Session anlegen. Dies geschieht mit der Funktion session_start. Es ist darauf zu achten, dass die Session nach Möglichkeit vor allem anderen gestartet wird, damit alle Teile des Scriptes darauf zugreifen können (auch etwaige Includes).
    [COLOR=darkblue]Da PHP selbstständig überprüft, ob eine Session schon existiert, oder ob eine neue angelegt werden muß, braucht man sich auch nicht darum zu kümmern. [/COLOR]
    Vielleicht habe ich mich missverständlich ausgedrückt mit 'automatisch' meinte ich automatisch bei Aufruf von session_start()

    Habe auch in allen Dateien betroffenen Dateien session_start() ganz oben am Dateianfang drin.

    Oder ist damit die Übergabe der SessionId noch nicht gewährleistet?

    Einen Kommentar schreiben:


  • wahsaga
    antwortet
    Original geschrieben von Smartsoul
    sid übergabe? ich dachte das findet automatisch statt?
    Bevor du eine Technik einsetzt, informiere dich bitte, wie sie funktioniert.

    http://www.php.net/manual/de/ref.session.php beschreibt, auf welche Arten die Übergabe der Session-ID passieren kann.

    Einen Kommentar schreiben:


  • Smartsoul
    antwortet
    @ TobiaZ

    Welche Browsereinstellungen meinst du?

    sid übergabe? ich dachte das findet automatisch statt? die ist ja in der db abgelegt und wird mit logged_in() geprüft.


    @Shurakai

    nicht das ich wüsste. Es findet eine db-Abfrage statt, aber nur mit SELECT, also keine Veränderung der Datensätze

    Einen Kommentar schreiben:


  • Shurakai
    antwortet
    Wird beim nächsten Aufruf vielleicht irgendwas verändert... SessionID.. Datensatz in der DB gelöscht... oder so etwas?

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    ohne gelesen zu haben:

    - browsereinstellungen?
    - sid übergabe?

    Einen Kommentar schreiben:


  • Smartsoul
    hat ein Thema erstellt Logged_in() funktioniert nur in Firefox.

    Logged_in() funktioniert nur in Firefox

    Hi!

    Habe gestern in einem Test festgestellt, dass mein logged_in() nur in Firefox sauber funktioniert. Basiert auf Login-Tutorial von Mr Happiness.

    Nach geglücktem Login, rufe ich auf den folgenden Seiten, die Funktion logged_in() auf, um zu prüfen, ob er User eingeloggt ist. Bspw. die Datei 'auftragsformular.php'. Der erste Aufruf dieser Seite klappt und es werden mir verschiedene Auftragsmöglichkeiten angezeigt. Wenn ich davon eine auswähle, wird die Seite erneut aufgerufen und mittels Prüfung $_GET-Variablen ein anderer Teil des Skripts ausgeführt. Aber in IE und Opera werde ich plötzlich ausgeloggt! ???

    in der sessionhelpers.inc.php steht
    PHP-Code:
    function check_user($username$userpass)
    {
        
    $sql "SELECT `UserID` FROM `users` WHERE `NickName`='".$username."' 
    AND `UserPass`=MD5('"
    .$userpass."') LIMIT 1";
        
    $result mysql_query($sql) or die(mysql_error());
        if (
    mysql_num_rows($result)==1)
        {
            
    $user mysql_fetch_assoc($result);
            return 
    $user["UserID"];
        }
        else
            return 
    false;
    }

    function 
    login($userid)
    {
        
    $sql="UPDATE `users` SET `UserSession`='".session_id()."' WHERE `UserID`=".$userid;
         
    mysql_query($sql);
    }

    function 
    logged_in()
    {
        
    $sql="SELECT `UserID` FROM `users` WHERE `UserSession`='".session_id()."' LIMIT 1";
        
    $resultmysql_query($sql);
          return ( 
    mysql_num_rows($result)==1);
    }

    function 
    logout()
    {
        
    $sql="UPDATE `users` SET `UserSession`=NULL WHERE `UserSession`='".session_id()."'";
         
    mysql_query($sql);

    in der auftragsformular sieht es so aus:
    PHP-Code:
    session_start();
    include 
    'incs/sessionhelpers.inc.php';
    include 
    'incs/auftragshelpers.php';

    baueauftragsform(); 
    in der auftragshelpers.php liegt die Funktion baueauftragsform()
    PHP-Code:
    function baueauftragsform()
    {
    if (!
    logged_in()) showlogdivs();
    else
    {
      if (
    $_GET['ordertyp'] == '')
      {
        echo 
    "<p>Wählen Sie zunächst eine Auftragsart aus.</p>\n";
        echo 
    "<p><a href='auftragsformular.php?ordertyp=basis'>Auftrag 1</a></p>\n";
        echo 
    "<p><a href='auftragsformular.php?ordertyp=pro'>Auftrag 2</a></p>\n";
      }
      elseif (
    $_GET['ordertyp'] == 'zusatz')
      {
        echo 
    "<p>Sie wünschen Zusatzleistungen.</p>\n";
        echo 
    "<p>Zurück zur <a href='auftragsformular.php'>Auftragsauswahl</a>.</p>\n";
      }                    
      else
      {
        echo 
    "<p>Sie haben das folgende Paket ausgewählt:</p>";
        echo 
    "<form method='post' action='auftragsenden.php'>
                <input type='hidden' name='ordertyp' value='"
    .$_GET['ordertyp']."' />
                <input type='submit' name='submit' value='Bestellen' /></form>"
    ;
      }                    
    }

    Könnte es Probleme mit irgendwelchen Sicherheitseinstellungen in den o.g. Browsern geben oder gibt es ein Problem mit einem Skript oder dem Aufbau dieser Geschichte?

    Woran könnte es liegen?

    Bin wie immmer dankbar für eure Tipps!
Lädt...
X