Ankündigung

Einklappen
Keine Ankündigung bisher.

Wieder ein SESSION-Problem

Einklappen

Neue Werbung 2019

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

  • Wieder ein SESSION-Problem

    Hallo, ich habe zwar gesucht, aber speziell für mein Problem keine Lösung gefunden.
    In einer Startseite lege ich eine SESSION an, soweit so gut, wird auch gemacht. wenn ich mich nun einlogge ist $_SESSION auf einmal leer.

    Hier der Code der Loginseite:

    PHP-Code:
    if(!isset($_SESSION))
        
    session_start();
    error_reporting(E_ALL);    
    echo 
    "<html>
    <head>
    <title>Login danach</title>
    <link rel='stylesheet' type='text/css' href='../standard.css'>
    </head>

    <body>"
    ;
    echo 
    "<pre>Session: ";
    print_r($_SESSION);
    echo 
    "</pre>
    "
    ;

    include 
    '../config.php';
    @
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
        die(
    "Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR
        die(
    "Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
        
    if(
    $_POST['user']=="" OR $_POST['passwort']=="")
        {
        echo 
    "<p align='center'>Kein Benutzername oder kein Passwort eingegeben. \n
    Noch kein Kunde?  [url='../anmelden.htm']anmelden[/url]</p>"
    ;
        
    $_SESSION['kundennummer'] = "";
        
    $_SESSION['passwortcheck'] = "false";
        }
    else
        {
        
    $sql "SELECT Kundennummer, code, Anrede, Vorname, Nachname 
        FROM kunden 
        WHERE Kundennummer='"
    .$_POST['user']."'";

        
    $result mysql_query($sql) OR die(mysql_error());
           
    $row mysql_fetch_assoc($result); 
        
        if(
    $row['code']== MD5($_POST['passwort']))
            {
            
    $_SESSION['kundennummer'] = $_POST['user'];
            
    $_SESSION['passwortcheck'] = "true";
            
    $_SESSION['userip'] = $_SERVER['REMOTE_ADDR'];
            echo 
    "<script language=javascript>
                parent.login.location.href('profilaenderung.php?vorname="
    .$row['Vorname']."&amp;nachname=".$row['Nachname']."&amp;kdnummer=".$_POST['user']."');
                </script>
                <h2 id='willkommen'>Herzlich Willkommen "
    .$row['Anrede']." ".$row['Vorname']." ".$row['Nachname']." auf unserer Homepage.</h2>";    
            }    
        else
            echo 
    "<p align='center'>Falscher Benutzername oder falsches Passwort, Feststelltaste aus? \n
    noch kein Kunde? [url='anmelden.htm']anmelden[/url]  oder 

     [url='passwortgenerator.php']Passwort vergessen[/url]? </p> "
    ;
        }
                
    echo 
    "</body>
    </html>"

    Es hat so auch schon teilweise funktioniert. Aber nu nicht mehr, Bitte um Hilfe. Danke

  • #2
    schreib einfach mal an den Anfang der Datei bevor irgend etwas ausgegeben wird
    PHP-Code:
    session_start(); 
    Dann müsste es eigentlich gehen !!!

    UM die Seite übersicxhtlicher zu halten würde ich dir empfeheln den HTML Code nicht mit echos auszugeben sondern einfach den Code mit
    PHP-Code:
    ?> 
    beenden und dann wieder zu starten !!!
    Der G-Translator

    Kommentar


    • #3
      Danke für die Antwort, aber ich habe es auch schon mit "nur" session_start(); am Anfang probiert, aber es geht genausowenig.

      Kommentar


      • #4
        es ist egal wo session_start() im script steht, hauptsache es wird keine ausgabe davor produziert

        die abfrage if (!isset($_SESSION)) kommt mir irgendwie sinnbefreit vor.
        ist $_SESSION nicht immer vorhanden? wird mit session_start() nicht "nur" eine "neue" Benutzerspezifisches SESSION cookie angelegt?

        nimm das @ vor deinem mysql_query raus. Für was soll das gut sein?

        wie übergibst du die SESSION?
        akzeptiert dein Browser das cookie?
        schlimmer gehts nimmer.... dümmer immer!
        [url=http://www.in-dvd.net][img]http://in-dvd.net/images/go_indvd.gif[/img][/url]

        Kommentar


        • #5
          nimm das @ vor deinem mysql_query raus. Für was soll das gut sein?
          Das @ bewirkt einfach nur, dass es keine Fehlerausgabe von MySQL gibt.
          session_start() nicht "nur" eine "neue" Benutzerspezifisches SESSION cookie angelegt?
          Da gebe ich dir recht, aber wenn man einen Fehler hat, dann probiert man halt alles Mögliche

          Übergeben tu ich die Session nicht, das hat bisher immer wunderbar funktioniert, indem ich auf jeder Seite, die die Sessions braucht ein "session_start()", ich weiss, wehe ein Browser akzeptiert keine Cookies, ich wollte aber erst mal die Seite so erstellen, und die andere Variante ohne Cookies später ergänzen.

          Kommentar

          Lädt...
          X