Anzeige:
Ergebnis 1 bis 8 von 8

Thema: sehr wichtig!!! Session

  1. #1
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215

    sehr wichtig!!! Session

    Hi!

    Wollte gerade ein Login-System basteln und als ich nach dem passwort vergleich mit der Datenbank eine session starten wollte, kommt das:
    Code:
    Warning: session_start() [function.session-start]:
    Cannot send session cookie - headers already sent by (output started at D:\xampp\xampp\htdocs\Scripte\index.php:13) in D:\xampp\xampp\htdocs\Scripte\index.php on line 46
    
    Warning: session_start() [function.session-start]:
    Cannot send session cache limiter - headers already sent (output started at D:\xampp\xampp\htdocs\Scripte\index.php:13) in D:\xampp\xampp\htdocs\Scripte\index.php on line 46
    Der Code dieser Seite sieht so aus:
    PHP-Code:
    <html>
    <head>
    <title>title</title>
    <meta name="author" content="Maik">
    <meta name="robots" content="noindex">
    <link rel="stylesheet" type="text/css" href="data/style.css">
    </head>
    <body leftmargin="12" topmargin="12">
    <div class="body"><br>
    <div class="size22px"><b>title</b></div><br>
    <div class="size16px"><b>login</b></div>
    <img src="data/bilder/1x1.gif" width="1" height="100"><br>
    <form action="<?php echo $PHP_SELF?>" method="post">
    <table align="center">
      <tr>
        <td align="right">user:</td>
        <td align="left"><input type="Text" name="user" size="15"></td>
      </tr>
      <tr>
        <td align="right">passwort:</td>
        <td align="left"><input type="Password" name="passwd" size="15"></td>
      </tr>
      <tr>
        <td align="center" colspan="2"><input type="Submit" name="senden" value="Senden"></td>
      </tr>
    </table>
    </form>
    <a href="data/passwort.php" class="link">passwort vergessen</a><br><br><br>
    <?php
    //
    // Datan pr&uuml;fen
    //
    if(isset($senden)) {
    if(!empty(
    $_REQUEST['user']) AND !empty($_REQUEST['passwd'])) {
    $db=mysql_connect("localhost","user","passwd") or die ("Verbindung zur Datenbank fehlgeschlagen!");
    mysql_select_db("login",$db);
    $check_SQL="SELECT * FROM user WHERE user='" $_REQUEST['user'] . "' AND passwd='" $_REQUEST['passwd'] . "'";
    $result=mysql_query($check_SQL);
    $auth_check=mysql_num_rows($result);
    mysql_close();

    if(
    $auth_check==1) {
    //
    // Session starten
    //
    session_start();

    $_SESSION['user'] = $user;
    $_SESSION['passwd'] = $passwd;

    ?>
    du hast dich erfolgreich eingeloggt!<br><br>
    <div class="size12px">
    wenn du in 5 sekunden nicht automatisch weitergeleitet wirst, dann klick bitte hier: <a href="data/index.php?sid=<?php echo $sid?>" class="link">weiter</a>
    </div>
    <script type="text/javascript">
    window.setTimeout("window.location.href='data/index.php?sid=<?php echo $sid?>';", 4500);
    </script>
    <?php
    }
    }
    }
    ?>
    </div>
    </body>
    </html>
    An was liegt das?
    Ein Freund von mir hat auch kein Fehler gefunden...

    Gruß
    Maik

  2. #2
    Registrierter Benutzer
    Registriert seit
    26.12.2001
    Ort
    CH
    Beiträge
    122
    Hi

    Der Fehler kommt daher, dass du schon eine Ausgabe an den Browser geschickt hast. Wenn du eine Session starten willst, darfst du vorher noch nichts ausgegeben haben.

    Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.
    http://de3.php.net/manual/de/function.session-start.php


    magpie
    I never saw my PC smiling before - LINUX

  3. #3
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    OK, das geht jetz.
    Aber jetzt gibts ein neues Prob...
    Ich schreibe in die Session mittels $_SESSION['abc'] = 'xxx'; einen Wert ein.
    Auf der nächsten seite, die nach 5 sec automatisch aufgerufen wird, steht am anfang session_start(); um die session wieder aufzunehmen.
    dann wollte ich denWert wieder ausgeben mit echo $_SESSION['abc']; aber da kommt nix.
    Das script läuft bei mir auf dem Localhost und 2 freunde von mir haben es aus dem netz über meine ip getestet und bei denen gehts.

    Warum geht das bloß bei mir vom localhost aus ned?

    Gruß
    Maik
    Geändert von maik15 (11-12-2005 um 13:39 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    hm, gute Frage.

    mach mal var_dump($_SESSION) und gucke, was da rauskommt. Ansonsten ein sehr interessanter Fehler.

    PS. irgendwie is alles von dir wichtig, kann das sein?
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  5. #5
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    mit var_dump($_SESSION) kommt das: array(0) { }
    Und was sagt das jetz aus?

    Sind ned alle wichtig, aber manche sind ned für mich, sondern freunde (!!!ich verkaufe keine Scripte!!!) und da gibts sonst etwas zeitdruck^^

    Maik

    PS: von einem Rechner aus dem Netzwerk kann ich auch zugreifen und dort wird dies auch angezeigt.
    also bloß nicht vom Local-PC also meinem.
    Geändert von maik15 (11-12-2005 um 15:25 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo,

    hast du evtl. Cookies deaktiviert?

    Du kannst du die Session-ID auch per URL übergeben:
    PHP-Code:
    /dateiname.php?<?php print session_name() . '=' session_id(); ?>
    Grüße,
    nEox

  7. #7
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    das übergeben der id geht...
    da steht imma ein normaler session-code...
    Mit den cookies, bei zonealarm aber ich "alle erlauben" und wo kann ich die noch einstellen?

    Maik

  8. #8
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    Hm, es müsste an meinem php liegen!
    Ich habe das script mal auf mein ftp geladen und siehe da, dort gehts auch.

    oben bei Menu @ sollte hinter dem @ testuser stehen.
    bei mir aufm pc stht dahinter nix...

    soll ich mal die ausgabe der php info speichern und hier (als datei auf meinem ftp) posten?
    evt kann jmd damit was anfangen...

    Eine neuinstallation von XAMPP 1.5.0-pl1 hat auch nichts gebracht.

    Maik
    Geändert von maik15 (11-12-2005 um 21:35 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •