ich habe ein Problem mit header()

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

  • ich habe ein Problem mit header()

    hallo ihrs,

    Ich verzweifle langsam an diesem Problem

    Wenn ich mich auf meiner Seite einlogge, lade ich ein Script zu Verifizierung, das included je nach Befund nen "Fehler"-Script oder das "Session"-Script.

    PHP-Code:
    <div id="admin">
    Eingeloggt<br>
    <br>
    Klicke <a href="index.php?action=home">hier</a><br>
    </div>
    <?php
      $_SESSION
    ['logon']="1";
      
    setcookie("login_name",$_SESSION['name']);
      
    setcookie("login_passwort",$_SESSION['passwort']);
      
    $datum=date("Y-m-d");
      
    $zeit=date('H:i:s');
      
    $host=gethostbyaddr(getenv('REMOTE_ADDR'));
      
    $sql "INSERT INTO protokoll VALUES ('','$datum','$zeit','".getenv('REMOTE_ADDR')."','$host','$name');";
      
    $result mysql_query($sql) OR die(mysql_error());
      
    header ('Location: index.php?action=home');  // Umleitung des Browsers
    ?>
    Auf dem Webserver, der auf meinem PC läuft, macht er das ohne Anstand, auf dem Webspace, der auf Linux läuft, bleibt er einfach stehen, so dass ich nur mit dem Klick auf dem Link weiter komme. Wenn ich jedoch nen Refresh mit dem Meta-Tag mache, killt er mir irgendwie die Session.
    Zuletzt geändert von DannyL; 29.07.2004, 21:01.

  • #2
    Also Du darfst schon mal keine Ausgabe vor den headern generieren...
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      bringt auch irgendwie nichts und wie gesagt, auf meinem lokalen Webserver geht das Script ohne Probleme durch, nur auf meiner Seite net

      Kommentar


      • #4
        so wies da steht muss es ein warning werfen.
        Ach und wenn Du $_SESSION benutzt warum dann deprecated session_register?
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Glaube ich dir nicht. Mittendrin in der Ausgabe umleiten mit asp ja aber php per header niemals.

          Kommentar


          • #6
            ich habe es vorhin noch einmal umgedreht und da hat ers auch net gemacht, auf dem lokalen Webserver geht es nach wie vor

            Kommentar


            • #7
              wenn du nicht einsiehst und darauf besteht, dann kann keiner dir helfen.

              Remember that header() must be called before any actual output is sent

              Kommentar


              • #8
                PHP-Code:
                <?php
                  $_SESSION
                ['logon']="1";
                  
                setcookie("login_name",$_SESSION['name']);
                  
                setcookie("login_passwort",$_SESSION['passwort']);
                  
                $datum=date("Y-m-d");
                  
                $zeit=date('H:i:s');
                  
                $host=gethostbyaddr(getenv('REMOTE_ADDR'));
                  
                $sql "INSERT INTO protokoll VALUES ('','$datum','$zeit','".getenv('REMOTE_ADDR')."','$host','$name');";
                  
                $result mysql_query($sql) OR die(mysql_error());
                  
                header ('Location: index.php?action=home');  // Umleitung des Browsers
                ?>
                <div id="admin">
                Eingeloggt<br>
                <br>
                Klicke <a href="index.php?action=home">hier</a><br>
                </div>
                so sieht es jetzt aus, zufrieden? das geht jedenfalls immer noch net

                Kommentar


                • #9
                  wo isn session_start()?
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    in der index.php natürlich und das noch vor jeder Ausgabe

                    Kommentar


                    • #11
                      Original geschrieben von DannyL

                      so sieht es jetzt aus, zufrieden? das geht jedenfalls immer noch net
                      brav => s. @MelloPie's reply

                      Kommentar


                      • #12
                        @danny weisste wenn ich meine Glaskugel abgewischt hab finde ich sicher deinen Fehler oste mal einen kompletten Vorgang mit allem zugehörigen code. Wie soll Dir irgendjemand helfen wenn Du nichts preisgibst ausser irgendwelche Fragmente und dann noch offensichtliche Fehler nicht als solche akzeptierst?
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          Original geschrieben von asp2php
                          Glaube ich dir nicht. Mittendrin in der Ausgabe umleiten mit asp ja aber php per header niemals.
                          also benutzt ASP ein anderes HTTP als PHP ...?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            wenn du das sagst @MelloPie

                            index.php:
                            PHP-Code:
                            <?php session_start();
                                  
                            error_reporting(0);
                                  include(
                            'inc/config.php');
                                  include(
                            'inc/constant.php');
                                  
                            mysql_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASS);
                                  
                            mysql_select_db($MYSQL_DATABASE);

                            function 
                            getmicrotime()
                                {
                                  list(
                            $usec$sec) = explode(" ",microtime());
                                  return ((float)
                            $usec + (float)$sec);
                                }
                                
                            $startzeit getmicrotime(); //Anfang der Zeitmessung
                            ?>
                            <html>
                            <?php require ("header.php"); ?>
                            <body bgcolor="white" topmargin="0" bottommargin="0" text="black">
                            <div id="rahmen">
                            <div id="box1" style="background-image:url('gfx/header1.jpg');">
                            <?php if(($_SESSION['logon']!=='1') OR ($action!=='webcam')) {include ("banner.php");};?>
                            </div>
                            <div id="box2" style="background-image:url('gfx/header2.jpg');">
                            </div>
                            <?php
                               
                            if($_SESSION['logon'] == '1')
                                   {
                                    
                            $loginname=$_SESSION['name'];
                                    
                            $query_eingeloggt="SELECT admin, webblog, banner FROM users WHERE name ='$loginname';";
                                    
                            $result_eingeloggt mysql_query($query_eingeloggt);
                                    
                            $row_eingeloggt    mysql_fetch_assoc($result_eingeloggt);
                                    
                            $admin    $row_eingeloggt['admin'];
                                    
                            $webblog  $row_eingeloggt['webblog'];
                                    
                            $_SESSION['admin']=$admin;
                                    if (
                            $action!='logout')
                                      {
                                       if(
                            $admin == 'yes')
                                          {
                                             echo(
                            "<div id=\"box3\" style=\"background-image:url('gfx/menuleiste.jpg');\">
                                                                           &nbsp;&nbsp;<a href='index.php?action=home'>home</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=news'>news</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=projects'>projekte</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=links'>links</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=sponsors'>sponsoren</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=gallery'>bildergalerie</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=schule'>schule</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=guestbook'>gästebuch</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=myself'>über mich</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=webblog'>tagebuch</a>
                                                                           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='index.php?action=logbuch'>logbuch</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=logout'>admin-logout</a></div>
                                                                          "
                            );
                                                         
                                          }
                                       else
                                          {
                                            echo(
                            "<div id=\"box3\" style=\"background-image:url('gfx/menuleiste.jpg');\">
                                                                           &nbsp;&nbsp;<a href='index.php?action=home'>home</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=news'>news</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=projects'>projekte</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=links'>links</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=sponsors'>sponsoren</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=gallery'>bildergalerie</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=schule'>schule</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=guestbook'>gästebuch</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=myself'>über mich</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=webblog'>tagebuch</a>
                                                                           &nbsp;&nbsp;<a href='index.php?action=logout'>logout</a></div>
                                                                          "
                            );
                                                         
                                          }
                                      }
                                    else
                                      {
                                         echo(
                            "<div id=\"box3\" style=\"background-image:url('gfx/menuleiste.jpg');\">
                                                                       &nbsp;&nbsp;<a href='index.php?action=home'>home</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=news'>news</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=projects'>projekte</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=links'>links</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=sponsors'>sponsoren</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=gallery'>bildergalerie</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=guestbook'>gästebuch</a>
                                                                       &nbsp;&nbsp;<a href='index.php?action=myself'>über mich</a></div>
                                                                      "
                            );
                                                     }
                                   }
                                 else
                                   {
                                    echo(
                            "<div id=\"box3\" style=\"background-image:url('gfx/menuleiste.jpg');\">
                                                                    &nbsp;&nbsp;<a href='index.php?action=home'>home</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=news'>news</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=projects'>projekte</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=links'>links</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=sponsors'>sponsoren</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=gallery'>bildergalerie</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=guestbook'>gästebuch</a>
                                                                    &nbsp;&nbsp;<a href='index.php?action=myself'>über mich</a></div>
                                                                   "
                            );
                                   }

                            ?>
                            <div id="box4" style="background-image:url('gfx/contentbg.jpg');">
                            <?php
                                
                            switch($action)
                                {
                                  case 
                            sponsors  : include "sponsors.php"; break ;
                                  case 
                            links     : include "links.php"; break ;
                                  case 
                            home      : include "home.php"; break ;
                                  case 
                            myself    : include "myself.php"; break ;
                                  case 
                            guestbook : include "guestbook.php"; break ;
                                  case 
                            admin     : include "admin.php"; break ;
                                  case 
                            admin2    : include "admin2.php"; break ;
                                  case 
                            addentry  : include "addentry.php"; break ;
                                  case 
                            gallery   : include "gallery.php"; break ;
                                  case 
                            projects  : include "projects.php"; break ;
                                  case 
                            news      : include "news.php"; break ;
                                  case 
                            logout    : include "admin/logout.php"; break;
                                  case 
                            login     : include "admin/login.php"; break;
                                  case 
                            webblog   : include "webblog.php"; break ;
                                  case 
                            schule    : include "schule.php"; break ;
                                  case 
                            users     : include "users.php"; break;
                                  case 
                            logbuch   : include "admin/logbuch.php"; break;
                                  case 
                            changepw  : include "admin/changepw.php"; break;
                                  case 
                            addwebblog: include "admin/addwebblog.php"; break;
                                  case 
                            webcam    : include "webcam.php"; break;
                                  default        : include 
                            "home.php";
                                };
                              
                            ## ANS ENDE
                              
                            (float)$dauer getmicrotime() - $startzeit//Ende der Zeitmessung
                              
                            $aus round($dauer,4);

                              echo 
                            "<br><br><center><span id=\"footer\">"//Beispielausgabe
                              
                            include "footer.php";
                              echo 
                            "</span></center>";
                            ?>
                            </div>
                            </div>
                            </body>
                            </html>
                            ^^ich weiß etwas umfangreich, ich bin aber noch zu faul gewesen, das zu vereinfachen

                            die admin.php:
                            PHP-Code:
                            <div id="admin">
                            <
                            form align='center' method='post' action='index.php?action=login'>
                            <
                            table border='0' width='220'><tr><td width='50%'>
                            <
                            font size=2 color='black' face='verdana'>Name :</font></td><td width='50%'>
                            <
                            input align='center' type='text' size=15 name='name'></td></tr><tr><td>
                            <
                            font size=2 color='black' face='verdana' >Passwort :</font></td><td>
                            <
                            input align='center' type='password' name='passwort' size=15></td></tr><tr><td align='center'>
                            <
                            input type='submit' value='Log In'></td><td align='center'><input type='reset' value='Reset'></td></tr>
                            </
                            table>
                            </
                            form>
                            </
                            div>
                            <
                            br>
                            <
                            br
                            die login.php:
                            PHP-Code:
                            <?php
                                $name
                            =$_POST['name'];
                                
                            $passwort=$_POST['passwort'];
                                
                            $_SESSION['passwort']=$_POST['passwort'];
                                
                            $_SESSION['name']=$name;
                                
                            $query_login="SELECT name,passwort FROM users WHERE name = '$name';";
                                
                            $result mysql_query($query_login);
                                
                            $row_login mysql_fetch_assoc($result);
                               if(
                            $name == $row_login['name'] AND md5($passwort) == $row_login['passwort'])
                                 {
                                  include(
                            'admin/loggedin.php');
                                 }
                                  else
                                 {
                                  include(
                            'admin/loginfailed.php');
                                 }
                            ?>
                            die loggedin.phpo steht weiter oben, wo der header() net will

                            PS: an die Meister eures Faches, nicht aufregen! ich habe erst damit angefangen und mache das auch nur in meiner Freizeit - beruflich programmiere ich mit Xbase++ (was ist das denn? *g*) und VB .Net und in der Berufsschule Delphi - daher net aufregen, wenn ein paar Sprachen wegfallen, kann ich mich auch mehr auf das wesentliche konzentrieren

                            Kommentar


                            • #15
                              also nimm erstmal das error_reporting raus und dann wässer mal Deinen Code is ja super umständlich, nach error_reporting sollte Dir einiges ausgegeben werden zum beispiel ein header warning, denn Du versucht loggein.php zu include nachdem eine Ausgabe stattfand und dort in loggedin willst Du header senden das geht nicht. Weil alle header gesendet sein müssen bevor das Ergebnis Deines Script an Deinen Brauser gesendet wird... @see my first post
                              Beantworte nie Threads mit mehr als 15 followups...
                              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                              Kommentar

                              Lädt...
                              X