tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
356
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    toboli toboli ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Ist ein See in der Gegend...
    Beiträge
    126
    Hallo,

    ich möchte nach dem Login eines Users eine Variable mitnehmen. Diese wird aus einer
    DB gelesen und ist für das Anzeigen des Adminmenüs des Users Wichtig. Je nach
    Variable erhält dieser ein anderes Menü.

    Gibt es eine Möglichkeit diese Variable über jede Seite mitzunehmen ohne Sie an die
    URL zu übergeben oder in einen Cookie su schreiben ?

    Die Funktion des Adminmenü wurde erst später in die Seite eingebunden, daher müssten
    alle Links angepasst werden was eine Menge Arbeit wäre. Auf Cookies würde ich gern
    verzichten wenn möglich.

    Danke jetzt schon für Hilfe...
     

  2. #2
    Avatar von Jörg Rißmann
    Jörg Rißmann Jörg Rißmann ist offline Mitglied Smaragd
    Registriert seit
    May 2005
    Ort
    Remshalden
    Beiträge
    1.007
    Also grundsätzlich kann man keine Variablen "mitnehmen", da diese meist viel zu schwer sind.

    Ansonsten sind Sessions die Lösung zu deinem Problem!
    http://de.php.net/manual/de/ref.session.php
    http://www.php-faq.de/ch/ch-version4_session.html
     
    Ich bin arbeitlos und suche dringend eine neue Festanstellung!
    Kennst du jemanden der einen
    • PHP-Profi
    • Datenbankadministrator
    • Webdesigner
    • Netzwerkadministrator
    • oder ähnliches
    sucht, bitte mit mir in Verbindung setzen.
    Ceraph@gmx.de

    Danke, Jörg

  3. #3
    toboli toboli ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Ist ein See in der Gegend...
    Beiträge
    126
    Ja schwer sind die schon

    Danke für die Links, habe mir das mal angeschaut. Mit ist aber nicht ganz klar, wie jetzt
    genau die Variable da reinbringen. Also meine Session sieht so aus :

    PHP-Code:
    $result_cms mysql_query("SELECT * FROM $tab WHERE username ='$username'") or die(mysql_error());
    $user_cms mysql_fetch_array($result_cms);    
        
        if(!isset(
    $username)) $username=$_POST ['username'];
        if(!isset(
    $password)) $password=$_POST ['password'];

       
    session_start();

       if (!
    session_is_registered("login")) {
          if (isset(
    $username) && ($username!="") && isset($password) && ($password!="")) {
            if ((
    $password==$user_cms[passwort]) && ($user_cms[username]==$username))     session_register("login");
            }
        }
    }
    if (isset(
    $logout) && ($logout==0)) {
        
    session_destroy();


    Aber wie bekomme ich da jetzt die Id rein ? Das ist mir nicht ganz klar...?
     

  4. #4
    Avatar von Jörg Rißmann
    Jörg Rißmann Jörg Rißmann ist offline Mitglied Smaragd
    Registriert seit
    May 2005
    Ort
    Remshalden
    Beiträge
    1.007
    Ersetze bitte mal session_is_registered("login") durch isset($_SESSION['login']) und session_register("login"); durch $_SESSION['login'] = $user_cms['username'];

    Dann ist in der Variable $_SESSION['login'] der Username gespeichert.
    Das kannst du natürlich auch für die ID aus der DB machen.
    $_SESSION['id'] = $user_cms['name_der_id_in_der_datenbank'];

    Wenn diese Variablen dann existieren, ist der User eingeloggt. Wenn nicht, dann nicht!
     
    Ich bin arbeitlos und suche dringend eine neue Festanstellung!
    Kennst du jemanden der einen
    • PHP-Profi
    • Datenbankadministrator
    • Webdesigner
    • Netzwerkadministrator
    • oder ähnliches
    sucht, bitte mit mir in Verbindung setzen.
    Ceraph@gmx.de

    Danke, Jörg

  5. #5
    toboli toboli ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Ist ein See in der Gegend...
    Beiträge
    126
    Aha, ok. Das mit der Session klappt. Code sieht jetzt so aus:

    PHP-Code:
    session_start();

    if (!isset(
    $_SESSION['login'])) {
        
    if (isset(
    $username) && ($username!="") && isset($password) && ($password!="")) {
    if ((
    $password==$user_cms[passwort]) && ($user_cms[username]==$username)) {
    $_SESSION['login'] = $user_cms['username'];
    $_SESSION['id'] = $user_cms['id'];
        }
        }
    }
    if (isset(
    $logout) && ($logout==0)) {
        
    session_destroy();

    Jetzt aber noch ne Frage. Wie bekomme jetzt z.B. die User-ID an einen Link im Adminmenü dran?

    Mit :
    Code :
    1
    
    <a href="index.php?site=login&loginid=<?php echo $user_cms['id'] ?>">...</a>

    komme ich nicht weit. Da wird leider nichts übernommen.
     

  6. #6
    Avatar von Jörg Rißmann
    Jörg Rißmann Jörg Rißmann ist offline Mitglied Smaragd
    Registriert seit
    May 2005
    Ort
    Remshalden
    Beiträge
    1.007
    Übergib einfach die Session_id:
    PHP-Code:
    <a href="index.php?site=login&<?php echo(SID); ?>">...</a>
    Das wird "gekappt", wenns dein Server sowieso unterstützt.

    Zugriff auf der neuen Seite mit $_SESSION['id'].
     
    Ich bin arbeitlos und suche dringend eine neue Festanstellung!
    Kennst du jemanden der einen
    • PHP-Profi
    • Datenbankadministrator
    • Webdesigner
    • Netzwerkadministrator
    • oder ähnliches
    sucht, bitte mit mir in Verbindung setzen.
    Ceraph@gmx.de

    Danke, Jörg

  7. #7
    toboli toboli ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Ist ein See in der Gegend...
    Beiträge
    126
    mhhhhh, da wird bei mir leider nichts übernommen. Hinter dem Link wird nichts angezeigt.
    Muss ich denn das $_SESSION['fid']; in jeder Seite erneut aufrufen oder reichts das wenn
    ich das nur in der index.php einbinden ? Arbeite ja mit nem Template.

    Wie ist denn das wenn ich Daten des User per $result aus der DB holen will. Da muss ich
    ja dann ebenfalls die ID irgendwie einbauen.

    Ich glaube ich steh grad irgendwie auf dem Schlauch...
     

  8. #8
    Avatar von Jörg Rißmann
    Jörg Rißmann Jörg Rißmann ist offline Mitglied Smaragd
    Registriert seit
    May 2005
    Ort
    Remshalden
    Beiträge
    1.007
    1.
    Du musst die zugreifenden Datei auch mit session_start() beginnen.
    Erst danach sind die _SESSION-Variablen verfügbar.

    2.
    $_SESSION['id'] = $user_cms['id'];
    Hat danach die $_SESSION['id'] überhaupt einen Inhalt?
     
    Ich bin arbeitlos und suche dringend eine neue Festanstellung!
    Kennst du jemanden der einen
    • PHP-Profi
    • Datenbankadministrator
    • Webdesigner
    • Netzwerkadministrator
    • oder ähnliches
    sucht, bitte mit mir in Verbindung setzen.
    Ceraph@gmx.de

    Danke, Jörg

  9. #9
    toboli toboli ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Ist ein See in der Gegend...
    Beiträge
    126
    Also, der Code von den anderen Postings ist in der index.php am Anfang der Seite
    eingebunden. Diese Seite wird ja bei jedem Aufruf der Unterseiten mit z.B.
    index.php?site=home etc. aufgerufen.

    Das Adminmenü wird per Include eingebunden und prüft bei Eingabe der Logindaten ob
    User besteht oder nicht. Entsprechend wird dann entweder eine Fehlermeldung oder das
    Adminmenü aufgerufen. Im Adminmenü sollte dann ja die User-ID an den Link übergeben
    werden, damit ich aus der DB mit Result z.B. Daten für eine Profilformular auslesen kann.

    Dann muss ich ja nicht mehr das session_start() in der Include-Datei übergeben. oder ?

    Ich blick´s grad überhaupt nicht wie Du das meinst, sorry.
     

  10. #10
    toboli toboli ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Ist ein See in der Gegend...
    Beiträge
    126
    Ok, habs jetzt hinbekommen
     

Ähnliche Themen

  1. [FF3.5] Cookies mitnehmen?
    Von akrite im Forum Microsoft Windows
    Antworten: 11
    Letzter Beitrag: 31.01.10, 10:03
  2. Firefox mitnehmen bei Umstieg
    Von kar_sten im Forum Microsoft Windows
    Antworten: 16
    Letzter Beitrag: 30.06.08, 20:00
  3. Variabel aus Variabel ermitteln?
    Von notebook20000 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 12.11.05, 16:59
  4. TXT Rahmen mitnehmen (Indesign2)
    Von regurge im Forum Desktop Publishing (DTP)
    Antworten: 0
    Letzter Beitrag: 21.09.05, 16:37
  5. T-DSL flatrate mitnehmen ...
    Von _root im Forum Internet, DSL & Flatrate
    Antworten: 2
    Letzter Beitrag: 19.11.04, 17:46