Ankündigung

Einklappen
Keine Ankündigung bisher.

Profilverwaltung (Loginsystem)

Einklappen

Neue Werbung 2019

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

  • skydreamboy
    hat ein Thema erstellt Profilverwaltung (Loginsystem).

    Profilverwaltung (Loginsystem)

    Hallo!
    Ich bin zur Zeit dabei eine "Profilverwaltung" einzurichten, in der sich jeder User einloggen und ausloggen kann.
    Mein Problem ist zur Zeit nur, dass das System funktioniert, aber immer 2 oder 3 Fehlermeldungen angezeigt werden und ich diese nicht wegbekomme.

    Hier sind diese:
    Warning: Cannot send session cookie - headers already sent by (output started at /var/www/web0/html/Homepage/TEST/aufbau.php:10) in /var/www/web0/html/Homepage/TEST/logout.php on line 3

    Warning: Cannot send session cache limiter - headers already sent (output started at /var/www/web0/html/Homepage/TEST/aufbau.php:10) in /var/www/web0/html/Homepage/TEST/logout.php on line 3

    Warning: Cannot add header information - headers already sent by (output started at /var/www/web0/html/Homepage/TEST/aufbau.php:10) in /var/www/web0/html/Homepage/TEST/logout.php on line 6
    aufbau.php ist bei mir die Datei, die die Seite (Tabellen) aufbaut.
    Durch die checkLogin.inc.php wird überprüft, ob der User eingeloggt ist.

    Hier sind die beiden Dateien:

    aufbau.php
    PHP-Code:
    <html>
    <head>
           <title>Profil-Verwaltung</title>
    </head>
    <body bgcolor="#FFFF00">
    <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
        <td></td>
        <td bgcolor="#FFFF00" width="800" height="500">
        <table width="800" height="500">
               <tr><td height="1"><?php include("header.php"?></td></tr>
               <tr><td>
               <table>
                      <tr><td width="150"><?php include("navigation.php"?></td>
                      <td width="600">
                      <?php include("seiten.php"?>
                      </td></tr>
               </table>
               </td></tr>
               <tr><td height="1"><?php include("footer.php"?></td></tr>
        </table>
        </td>
        <td></td>
    </table>
    </body>
    </html>
    header.php, navigation.php, seiten.php und footer.php sind nur die einzelnen Seitenelemente

    checkLogin.inc.php
    PHP-Code:
    <?php
        session_start
    ();

        if( !
    $_SESSION['loggedIn'] ) {
            
    header'Location: ./loginformular.php' );
            exit();
        }
    ?>
    Kann mir jemand weiterhelfen??

  • skydreamboy
    antwortet
    okay.
    ich habs hinbekommen.

    Danke für deine Hilfe

    Einen Kommentar schreiben:


  • Buhmann
    antwortet
    AAARGH....


    IMMER, wenn du eine funktion benutzt, die den header verändert, wird geprüft, ob dieser schon gesendet wurde, denn dann kann er ja nicht mehr verändert werden, ist das sooo schwer zu kapieren?
    Den header verändern vorallem die funktion header selbst, die session funktionen und natürlich die cookie funktionen. Alle diese funktionen müssen benutzt werden (natürlich nur, wenn man sie benutzen wil ), BEVOR der Header gesendet wurde.

    Der Header wird bei dem allerersten Zeichen, dass ausgegeben wird, gesendet, also auch schon bei einem evtl. leerzeichen vor <?php.

    Die einzigen beiden möglichkeiten, die du hast, sind entweder sämtliche diese funktionen so zu positionieren, dass sie vor dem header ausgeführt sind, oder du würdest dir endlich map die funktion ob-start zu gute führen....


    http://php.speedbone.de/manual/de/function.ob-start.php

    Das alles hätte man sich ersparen können, in dem man googel oder die forensuche benutzt hätte oder sich einfach mal auf den link geklickt hätte, den ich gepostet hatte...


    Ps.: Ja, richtig erkannt, ich habe gerade schlechte Laune ...

    Einen Kommentar schreiben:


  • skydreamboy
    antwortet
    sie werden auch nicht in der aufbau-datei includet.
    jedoch baut die aufbau.php meine seite auf und in der befindet sich das login-system und die beiden werden über die datei "seiten.php", welche in der aufbau.php includet ist. dargestellt.

    ich hab doch schon alles gemacht, um die header als erstes zu senden, oder?
    ich entdecke meinen fehler nicht, wo ich die positionen der ausgaben verändern muss, sodass der header zuerst gesendet wird.

    Einen Kommentar schreiben:


  • Buhmann
    antwortet
    in der aufbau.php werden die beiden dateien doch garnet includetr

    und es bleibt dabei, du musst die header zuerst senden oder die ausgabe puffern:
    http://php.speedbone.de/manual/de/function.ob-start.php

    Einen Kommentar schreiben:


  • skydreamboy
    antwortet
    header.php
    PHP-Code:
    <center>[img]logo.png[/img]</center
    Hier wird "nur" das Logo in der Mitte eingebunden.

    Einen Kommentar schreiben:


  • Der_Gerhard
    antwortet
    Was steht in header.php?

    Einen Kommentar schreiben:


  • skydreamboy
    antwortet
    So... ich hab jetzt alles abgeändert und hab nur noch einen bzw. 2 Fehler.
    Es ist ein Fehler mit 2 Dateiunterschieden.

    Warning: Cannot add header information - headers already sent by (output started at /var/www/web0/html/Homepage/TEST/aufbau.php:13) in /var/www/web0/html/Homepage/TEST/checkLogin.inc.php on line 5

    Warning: Cannot add header information - headers already sent by (output started at /var/www/web0/html/Homepage/TEST/aufbau.php:13) in /var/www/web0/html/Homepage/TEST/logout.php on line 6
    Hier sind noch einmal die jetzigen Dateien:

    Es wird nun eine Leerzeile angezeigt, welche aber eigentlich gar nicht existiert. also einfach wegdenken!

    aufbau.php
    PHP-Code:
    <?
    session_start();
    ?>
    <html>
    <head>
           <title>Profil-Verwaltung</title>
    </head>
    <body bgcolor="#FFFF00">
    <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
        <td></td>
        <td bgcolor="#FFFF00" width="800" height="500">
        <table width="800" height="500">
               <tr><td height="1"><? include("header.php")?></td></tr>
               <tr><td>
               <table>
                      <tr><td width="150"><? include("navigation.php")?></td>
                      <td width="600">
                      <? include("seiten.php")?>
                      </td></tr>
               </table>
               </td></tr>
               <tr><td height="1"><? include("footer.php")?></td></tr>
        </table>
        </td>
        <td></td>
    </table>
    </body>
    </html>
    logout.php
    PHP-Code:
    <?
    session_start();

         $_SESSION['loggedIn'] = false;

         header('Location: index.php?action=login');
         exit();

    ?>
    checkLogin.inc.php
    PHP-Code:
    <?php
    session_start
    ();

        if( !
    $_SESSION['loggedIn'] ) {
            
    header('Location: ./loginformular.php');
            exit();
        }

    ?>

    Einen Kommentar schreiben:


  • Der_Gerhard
    antwortet
    Das könnte ja in der datei checklogin.inc.php passieren.
    Aber ich sehe da Leerzeilen vor dem ersten <?php .....

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Und wieso setzt du dann nicht einfach ein session_start an den Anfang der Datei, wo die Session-Daten gesetzt werden???

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • skydreamboy
    antwortet
    hab ich schon auf den seiten, auf denen durch die checkLogin.inc.php geprüft wird, ob der user eingeloggt ist.

    PHP-Code:
    <?php
        
    include_once 'checkLogin.inc.php';
    ?>

    <html>
    <head>
       <title>Geheime Seite</title>
    </head>
    <body>
       <font face="arial">
       Hier steht der Text

       

    <a href=index.php?action=logout>Logout</a></p>
       </font>

    </body>
    </html>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    checkLogin.inc.php direkt am Anfang per include einbinden.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • skydreamboy
    antwortet
    ich hab mir jetzt die fehler durchgelesen und da steht, dass ich z.b. jetzt in der checkLogin.inc.php-Datei keine Ausgabe vor den "header()" setzen darf.
    aber wie soll ich sonst überprüfen, ob der user eingeloggt ist (wird aus der session herausgelesen), wenn ich "session_start();" weg mache?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Siehe http://faq-phpfriend.de/ch/ch-errors.html
    Die Forensuche hier im board liefert auch dutzendweise Antworten zu "headers already sent"

    Einen Kommentar schreiben:

Lädt...
X