usermanagement in kleiner box

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • usermanagement in kleiner box

    hallo, ich hab mal das usermangement versucht in meine seite einzubauen.
    allein lief es ohne probleme. aber als ich es in meine seite, speziell in eine
    kleine box zusätzlich zu einem navigationselement setzte bekam ich leider immer wieder diesen fehler:

    Warning: Cannot modify header information - headers already sent by (output started at /usr/www/costa/htdocs/header.php:6) in /usr/www/costa/htdocs/usermanagment.inc.php on line 13

    der fehler bezieht sich auf -> header ("Location: index.php");

    '-> ich habe nun (nachdem ich alles hier geschrieben habe) testweise
    vor dem posten dieses threads nur die funktion session_start();
    in der index.php belassen, allerdings bekomme ich nun die ähnliche meldung wie oben.
    nur bezieht sie sich jetzt (usermanagment.inc.php on line 18) auf die orignal admin.php


    PHP Code:
    /

    als erstes meine index.php:


    <? session_start();
    include("header.php");
    echo "<b>Herzlich Willkommen auf der Webside von $titel</b>";
     ?>
    <? include("footer.php"); ?>

    -----------------------------------
    -----------------------------------

    in der header.php datei wird dann die boxlinks.php aufgerufen:

    header.php:

    <? 
    require("config.php"); ?>
    <html>

    <head>
    <META NAME..
    ....
    ....
    <? include("boxlinks.php"); ?>

    -----------------------------------
    -----------------------------------

    boxlinks.php:

    <? 

    # Box Anfang
     

    $boxtitel="Navigation";            
    include("boxheader.php"); ?>

    <? # Inhalt Ende 

    include("navmenu.php");
    include("boxfooter.php"); 
    # Box Ende  ?>

    <? 

    # Box Anfang

    $boxtitel="user login";            

    include("boxheader.php");

    ?>

    <?
        // session_start(); in meine index.php verschoben
        
        include("connect2db.inc.php");
        include("usermanagment.inc.php");

        if (isset($_POST['action']))
        {
            switch($_POST['action']) {
                case "login"  : $un = (isset($_POST['un'])) ? $_POST['un'] : '';
                                $pw = (isset($_POST['pw'])) ? $_POST['pw'] : '';
                                CheckUserLogin ($un, $pw, session_id());
                                break;

                case "logout" : UserLogout (session_id());
                                break;
            }
        }

    ?>
    <table align=left><tr><td>
    <br>
    <form name="login" method="post" action="index.php">
      <input type="hidden" name="action" value="login">
      Username:<br /><input class="flat" size="19" type="text" name="un"><br>
      Password:<br /><input class="flat" size="19" type="password" name="pw"></br>
      <input type="submit" value="Login">
    </form></tr></td></table>
    <? # Inhalt Ende 

    include("boxfooter.php"); 

    # Box Ende ?>

    --------------------------
    --------------------------

    original admin.php

    <? session_start();
    include("connect2db.inc.php");
      include("usermanagment.inc.php");

      $userinfo = CheckUserSession(session_id());

      
      // hier gehts dann weiter, wenn alles ok ist .. <img src="images/smilies/smile.gif" border="0" alt="">

      // logout button
    ?><b><h2>userpage</h2></b><br><br>
      <a href="index.php?action=logout">Logout<br><?php echo $userinfo[Vorname]." ".$userinfo[Name]; ?></a>

    ---------------------------
    ---------------------------
    es hieß doch, daß session_start(); vor jeglichen aufrufen stehen muß, aber
    doch nur auf der seite die nun aktuell zusammen gesetzt wird, oder?

    auch auf fehler produzierende leerzeichen habe ich geachtet...

    keine ahnung z.z., mir glühen schon die augen


    gruß und vielen dank für die mühe im vorraus

    cieric
    Last edited by cieric; 22-06-2003, 23:23.

  • #2
    es hieß doch, daß session_start(); vor jeglichen aufrufen stehen muß, aber
    doch nur auf der seite die nun aktuell zusammen gesetzt wird, oder?
    Die Session muss wie angegeben als erste Routine zwingend stehen davor darf weder was includiert noch was ausgegeben werden und darunter fallen alle Ausgaben

    Dort wo Session gehandled werden muss auch die Session initialisiert werden.

    allerdings bekomme ich nun die ähnliche meldung wie oben.
    nur bezieht sie sich jetzt (usermanagment.inc.php on line 18) auf die orignal admin.php
    Das liegt daran das du bereits was ausgegeben hast sei es Includierung oder sonstige Sachen, mögliche Lösungen werden anstatt den neuen header zu senden meta-refresh oder JS-Weiterleitung. Skriptterminierung mit Fehlermeldung, Fehlerseite includieren etc.
    Die Möglichkeiten sind fast grenzenlos.

    Du hast bereits das ganze in die Hauptpage eingefügt, dadurch musst du die Routine auf einander anpassen -> Haxes Teil wurde so gestaltet das das Script in sich geschlossen ist und ohne Erweiterung lauffähig ist, daher auch Header senden.


    Mach das so wie angegeben und es wird funktionieren

    Da du ein NEWBE bist sage ich mal und lade dich auf ein ein.

    Ach und gewöhne dir in Zukunft an die Foren-Tags zu benutzen [ php ] / [ / php] und die Code-Tags



    [color=red]Bitte ein MOD mal die Tags hinzufügen, oder du cieric[/color]
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Comment


    • #3
      Und gleich noch was was man wissen sollte:
      Ins Off-Topic Forum gehört alles wo nirgend wo anderst hinein passt.
      Ins Off-Topic Forum gehören Diskussionen über Themen.
      Visit my php blog!

      Comment


      • #4
        PHP Code:
        - dateianfang -

        <?
        //dein restlicher code..
        - dateiende -
        Allein das würde schon zu einem fehler führen.
        Warum?
        Weil hier eine Leerzeile zurückgegeben wird.
        Visit my php blog!

        Comment


        • #5
          Original geschrieben von Payne_of_Death
          Die Session muss wie angegeben als erste Routine zwingend stehen davor darf weder was includiert noch was ausgegeben werden und darunter fallen alle Ausgaben
          es darf schon was included werden. nur dürfen in den includeten Dateien keine Augaben erfolgen.

          Hintergrund:
          session_start senden einen Cookie, und Cookies werden über Header gesendet.
          Header sind aber immer am Kopf des Dokuments (daher der Name), also darf das Dokument erst anfangen, wenn alle header gesendet wurden.

          Du hast in einer includeten Datei aber ein ?>......... und das bedeutet, es wird etwas ausgegeben, also hat das Dokument schon angefangen und es können keine Header mehr gesendet werden.
          hopka.net!

          Comment


          • #6
            Original geschrieben von Hopka
            es darf schon was included werden. nur dürfen in den includeten Dateien keine Augaben erfolgen.
            Ist mir schon klar

            Ich kann auch net auf jedes Detail explicit eingehen.
            Aber da du es schon mal sagst ist es natürlich auch richtig
            [color=blue]MfG Payne_of_Death[/color]

            [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
            [color=red]Merke:[/color]
            [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

            Murphy`s Importanst LAWS
            Jede Lösung bringt nur neue Probleme
            Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
            In jedem kleinen Problem steckt ein großes, das gern raus moechte.

            Comment


            • #7
              hey super, jetzt hats hingehauen...

              mercy, mercy, mercy

              die kombination eurer threads hat es dann gebracht,
              den nebel zu lichten...

              ist schon komisch, im nachhinein betrachtet, was für
              "schwachsinnige" dinge man aussprobiert - lol


              gruß @ll

              Comment

              Working...
              X