Problem mit dem header

  • geschlossen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit dem header

    Hi
    Hab ein kleines Problemchen.
    Ich habe eine index.php, die per GET verschiedenen Unterseiten included.
    Diese Seiten kann man aber nur betrachten, wenn man User in einer SQL Datenbank ist (also eingeloggt ist).

    Wird nun in einer unterseite der header verändert, kommt die Fehlermeldung, dass der Header schon gesetzt wurde.
    Ist mir soweit klar.
    Doch normalerweise umgehe ich das immer mit ob_start();
    Geht aber nun irgendwie nicht.

    index.php

    PHP-Quellcode

    1. <?
    2. ob_start();
    3. session_start();
    4. include("../_config.php");
    5. function adminlogincheck () {
    6. if (isset($_SESSION['admin_username']) && isset($_SESSION['admin_passwort']) && isset($_SESSION['admin_rechte'])) {
    7. $username = $_SESSION['admin_username'];
    8. $passwort = $_SESSION['admin_passwort'];
    9. } elseif (isset($_POST['submit'])) {
    10. $username = $_POST['username'];
    11. $passwort = md5($_POST['passwort']);
    12. } else {
    13. $username = 0;
    14. $passwort = 0;
    15. }
    16. $result = mysql_query("SELECT * FROM $mysqltable_adminlist WHERE `username` LIKE '".$username."' AND `passwort` LIKE '".$passwort."'");
    17. if (mysql_num_rows($result) == 1) {
    18. $fetch = mysql_fetch_array($result);
    19. $_SESSION['admin_username'] = $fetch['username'];
    20. $_SESSION['admin_passwort'] = $fetch['passwort'];
    21. $_SESSION['admin_id'] = $fetch['id'];
    22. $_SESSION['admin_rechte'] = explode(",",$fetch['rechte']);
    23. return true;
    24. } else {
    25. return false;
    26. }
    27. }
    28. if (adminlogincheck()) {
    29. echo "<html>",
    30. "<head>",
    31. "<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheets.css\">",
    32. "<style type=\"text/css\">
    33. .still1 {
    34. font-family: Verdana;
    35. font-size: 10px;
    36. color: #00000;
    37. }
    38. a:link, a, a:visited, a:hover {
    39. font-family: Verdana;
    40. font-size: 10px;
    41. color: blue;
    42. text-decoration: none;
    43. }
    44. .navigation_tr2 {
    45. width: 100%;
    46. background-color: #CCCCCC;
    47. margin: 0px;
    48. border: 0px;
    49. }
    50. .navigation_tr1 {
    51. width: 100%;
    52. background-color: #e9e9e9;
    53. margin: 0px;
    54. border: 0px;
    55. color: #3d3d3d;
    56. }
    57. .navigation_tr1 td, .navigation_tr2 td {
    58. border-collapse: collapse;
    59. padding: 5px;
    60. }
    61. .navigation {
    62. width: 100%;
    63. border-color: #444444;
    64. }
    65. .navigation td {
    66. border-collapse: collapse;
    67. }
    68. </style>
    69. </head>",
    70. "<body>";
    71. if ($_GET[$get_show] != "userinfo" && $_GET[$get_show] != "hilfe" && $_GET[$get_site] != "squadpicedit") include($dir_inc_admin."/inc_navigation.php");
    72. if (isset($_GET[$get_site])) {
    73. $seite_include = $_GET[$get_site].".php";
    74. if (file_exists($seite_include)) {
    75. include($seite_include);
    76. } else {
    77. header("Location: index.php");
    78. }
    79. }
    80. }
    81. else {
    82. echo "<html>",
    83. "<head>",
    84. "<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheets.css\">",
    85. "</head>",
    86. "<body>";
    87. include($dir_inc_admin."/inc_loginform.php");
    88. }
    89. ob_end_flush();
    90. ?>
    Alles anzeigen


    unterseite.php

    PHP-Quellcode

    1. <?
    2. header("Location: url");
    3. ?>


    Wird nun folgende Seite aufgerufen: index.php?site=unterseite
    kommt folgende Fehlermeldung (die mir wohl durchleuchtend ist):

    Quellcode

    1. Warning: Cannot modify header information - headers already sent by (output started at /../../../index.php:28) in /../../../unterseite.php on line 2


    Zeile 28 in index.php

    Quellcode

    1. if (adminlogincheck()) {

    Würd mich über AW freuen.

    ´ gruß
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • hm...

    soweit ich weis, und diese fehlermeldung kenne, hat es was damit zu tun, das du vor setzten des headers, eine ausgabe hast... da zählt ja alles dazu, auch leerzeilen usw...
    es könnte sein, das also der css code, die ausschlaggebende sache ist.... nimm den ma raus, und include nur dann die datei die du willst.... also den css weg, sozusagen das ganze echo ""...

    mfg mruniverse
  • ehm mit ob_start() werden alle Ausgaben in einem internen Puffer gespeichert.
    Per ob_end_flush() wird der interne Puffer wieder ausgegeben.
    Daher sollte es egal sein, ob vor dem header eine Ausgabe an den Clienten erfolgt.
    Vielleicht hab ichs ja auch falsch angewandt... bin mir da aber eigentlich ziemlich sicher, dass es so richtig ist.

    Referenz:
    PHP: ob_start - Manual

    ´gruß

    [edit]

    hat sich erledigt.

    ´gruß
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]