1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Session Problem bei 1&1

Dieses Thema im Forum "PHP & Co." wurde erstellt von John, 16.10.09.

  1. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Guten Tag,
    und zwar habe ein Problem mit meinem Login-Script. Ich hatte zunächst ein ähnliches Script auf einem kostenlosen Server (funpic) getestet, dort hat soweit auch alles funktioniert.
    Heute habe ich dann dasselbe auf einem 1&1 Server versucht, doch klaptt es nicht so wie ich möchte.

    #1: Die Daten werden in ein Formular eingegeben und an die 2. Seite mittels "$_POST" weitergeschickt. (klappt)
    #2: Die eingegebenen Daten werden mit den Daten in der Datenbank vergleicht (klappt)
    #3: Sind die Daten gleich wird einen der Session ein username zugeordnet und man wird auf einen 3. Seite weitergeleitet (klappt)
    #4: Hier liegt dann mein Problem. $_SESSION['user'] ist leer obwohl es im 3. Schritt zugeordnet wurde. Auf der 2. Seite kann ich $_SESSION['user'] auch ausgeben.

    Hier der zugehörige Code:

    Login.php
    Code:
    session_start();
    
    include('config/config.php');
    
    $user = $_POST['user'];
    $password = $_POST['pass'];
    
    $pass = md5($password);
    
    $sql = "SELECT user, password FROM login WHERE user = '$user'";
    $login = mysql_query($sql);	
    $daten = mysql_fetch_array($login);
    
    if ($daten == "") {
    	echo "Login failed!";
    	echo "<a href=''>Zurück zum Login</a>";
    }
    else if ($daten['password'] == $pass AND $daten['user'] == $user) {
    	$_SESSION['user'] = $user; 
       	echo "Login war erfolgreich - <a href='home.php'>weiter</a>";
    }
    else {
    	echo "Login failed!";
    }
    
    home.php (auszug)
    Code:
    session_start();
    
    include('config/config.php');
    
    $action = $_GET["action"];
    
    // Session überprüfen
    
    if (!isset($_SESSION['user'])) {
    	echo "<div class='login' align='center'>";
    	echo "Bitte erst einloggen<br>";
    	echo "<a href=''>ZurŸck zum Login</a>";
    	echo "</div>";
    	exit;
    }
    Ich habe den gleichen Code noch einmal auf meinem Funpic-Server getestet und dort funktionierte es. Nun komme ich nicht weiter o_O

    so far
    John
     
  2. naich

    naich Pommerscher Krummstiel

    Dabei seit:
    22.11.08
    Beiträge:
    3.059
    Mal geschaut, ob die Session korrekt übernommen wird? Dh. ob der Session Cockie gesetzt ist, und oder der Link die SESSION ID enthält?

    Ich hoffe aber, dass du den finalen Code dann noch von der Sicherheit her optimieren wirst. Denn das direkt mit POST übergebene $user hat so nix in einer SQL-Abfrage zu suchen (SQL-Injection-Gefahr!!).
     
    John gefällt das.
  3. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Okay,
    dann werd ich das erstmal ändern, solang ich bei meinem anderen Problem nicht weiter komme.
    Danke für den Hinweis
     
  4. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Kann geschlossen werden. Problem gelöst, lag daran dass ich vor dem PHP-Teil noch ein HTML-Teil hatte. Den sollte ich nach Meinung von 1&1 weglassen. Gesagt, getan und es funktioniert o_O
     
  5. naich

    naich Pommerscher Krummstiel

    Dabei seit:
    22.11.08
    Beiträge:
    3.059
    Hehe, dann ist das kein Wunder.
    session_start() muss vor jeglicher Ausgabe aufgerufen werden, sonst kann der Header nicht für das erzeugen des Cookies angepasst werden.
     

Diese Seite empfehlen