kostenloser Webspace werbefrei: lima-city


[GELÖST]Eingeloggter User soll nur bestimmte Seiten sehen..

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    Huhuuu.. Ich hab eine Login-Funktion, die inzwischen gut funktioniert.. Nun soll der User aber, wenn er eingeloggt ist nur noch eine andere Seite sehen, z.B. 'Gäste' sehen nur 'index.php' und eingeloggte sehen 'index2.php'

    Benutze daweil Session-ID's...


    Hat jemand nützliche Tipps und / oder Tuts zu dem Thema?

    PS: Brauche keine fertige Scripts oder so, da lern ich ja net draus, will mir das selbst beibringen!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. heroes-of-legends

    heroes-of-legends hat kostenlosen Webspace.

    ich versteh dein problem nicht ganz ...

    session_start();
    if (isset($_SESSION["login_state"]) && $_SESSION["login_state"] == "login successful")
    {
     header("Location: index2.php");
    }
    [...]


    in der index2.php baust du dann noch so etwas hier in der art ein:
    session_start();
    if (!isset($_SESSION["login_state"] || $_SESSION["login_state"] != "login successful")
    {
      header("Location: index.php");
    }
    [...]


    die funktionen sind eigentlich selbsterklärend und sollten dir auch (sorry trotz code) so etwas bei bringen ;)

    grüße
    Doomdrake


    Beitrag zuletzt geändert: 11.6.2011 0:44:47 von heroes-of-legends
  4. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    Den Login State muss ich doch vorher noch definieren, ist das richtig? Wenn ja wie mache ich das?

    Ich denk mir das grad so:

    - Session wird gestartet
    - Überprüfung des Login-Status
    - Wenn erfolgreich -> Weiterleitung


    Meine Überlegung ist jetzt -> Woher weiß 'der' was 'login_state' ist?
    Muss ich dem ja irgendwie übermitteln (hab auch eine login.php), denn es funktioniert ja so nicht (gerade getestet)



    PS: Danke für deine Mühe bisher!


    So meine Frage noch zusätzlich:

    beim ersten steht nur 'if (isset...'
    beim zweiten steht 'if (!isset...'
    ist das eine Art überprüfung oder einfach nur n Schreibfehler oder so?
  5. kill-a-teddy schrieb:
    beim ersten steht nur 'if (isset...'
    beim zweiten steht 'if (!isset...'
    ist das eine Art überprüfung oder einfach nur n Schreibfehler oder so?


    Du meinst das Ausrufezeichen?
    Das ist eine negierung, also if NOT

    $var =4;
    if($var!=4)
      echo "$var ist NICHT 4";
    
    if($var==4)
      echo "$var ist gleich 4";
  6. heroes-of-legends

    heroes-of-legends hat kostenlosen Webspace.

    Wenn du bereits ein Login-Script hast sollte das etwa so ähnlich funktionieren:

    <?php
    session_start();
    if (!isset($_POST["login"]) {
    ?>
    <html><head><title>Login Page</title></head>
    <body>
    <form action="login.php" method="post">
    <input type="hidden" name="login" value="true" />
    <input type="text" name="login_name" />
    <input type="password" name="login_pass" />
    <input type="submit" />
    </form>
    </body></html>
    <?php
    } else {
      if ($_POST["login_name"] != "GültigerLoginName" || $_POST["login_pass"] != "GültigesPasswort") {
        echo "Ungültiger Login, bitte überprüfe Benutzer und Passwort";
      } else {
        $_SESSION["login_state"] = "login successful";
        header("Location: index2.php");
      }
    }
    ?>


    $_SESSION ist ein System Array, welches für jeden nutzer einzigartig ist. D.h. die Daten eines Nutzers stehen bei anderen nicht zur verfügung. Um eine Session zu starten musst du session_start(); aufrufen. Diese Initialisiert die Session für den Nutzer.
    Um die Daten zu Löschen (zum beispiel bei einem LogOut) gibt es die session_destroy(); methode.

    grüße
    Doomdrake
  7. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    Okay cool, funktioniert soweit und ich hab auch rausgefunden, wie ich die Session ID auslesen kann...



    Ich hab jetzt eine xid definiert, welche mein Session ID ist, die ich auch im Link anzeigen kann...

    <?php
    
    // meine Verbindung zur Datenbank
    include("dbconnect.php");
    ?>
    
    <?php 
    session_start(); 
    
    $username = $_POST["username"]; 
    $passwort = md5($_POST["password"]); 
    
    // login heißt meine Tabelle und die xid ist definiert als session_id 
    
    $abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1"; 
    $ergebnis = mysql_query($abfrage); 
    $row = mysql_fetch_object($ergebnis); 
    $xid = session_id();


    Sooo nun will ich folgendes ->

    Der Rechner soll überprüfen, ob derzeit eine gültige XID besteht und wenn ja dann soll der Nutzer weitergeleitet werden, andernfalls bleibt einfach alles so wie's ist auf der index.php


    <?php
         session_start();
    
         if (!isset($_SESSION['username']) || !$_SESSION['username']) {
          header('Location: http://www.kill-a-teddy.lima-city.de/index2.php');
          exit;
          }
    ?>


    Das funktioniert natürlich nicht... ^^ Kann mir das jemand erklären?
    Vielleicht sogar mit meiner xid ^^

    PS: Tut wäre immernoch besser, komm mir total doof vor dauernd nach Codeschnipseln zu fragen xD

    Beitrag zuletzt geändert: 11.6.2011 15:58:52 von kill-a-teddy
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!