ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » [erledigt] Header Information - privmsg.php

Geschlossen
  1. #1
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Hallo zusammen,
    um mehr Übersicht zu bekommen, habe ich die privmsg.php zerlegt, praktisch in ihre Einzelteile, je eine Datei entsprechend der verschiedenen cases.
    Dann habe ich, vergleichbar zum Forum, eine Start-Datei pm.php erstellt, in welcher nach $menu->get(1) geswitcht wird und entsprechend die zusätzlichen, benötigten Dateien per require_once gesetzt werden.
    Aktuell setze ich in der pm.php Title und Header, möchte diese dann aber in den einzelnen Dateien nochmal ändern, so dass ich z.B. in der show.php (Posteingang) im hmenu auch » Private Nachrichten » Posteingang erhalte.
    Setze ich in den einzelnen Dateien diese Informationen zusätzlich zur Startdatei pm.php, erhalte ich die bekannte Fehlermeldung:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\sivos-testpage\include\includes\class\design.php:93) in C:\xampp\htdocs\sivos-testpage\include\includes\class\design.php on line 23

    Wenn ich die Information in der Startdatei weglasse und nur in den Einzel-Dateien setze, zerschießt es mir mein Design.
    Meine Frage also: ist es überhaupt möglich, die Header-Information nach Ausgabe zu modifizieren und wenn ja, wie?

    Danke für Eure Hilfe!

    Grüße Outi
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    Leerzeichen/Zeilenumbruch vor
    ZitatZitat
    <?php
    oder nach dem
    ZitatZitat
    ?>
    .

    Löschen schon gehts.

    Kann in allen deiner datein stecken je nach Switchcase also alle prüfen!
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    OK ich habe sämtliche switchcase-Dateien auf Deinen Hinweis hin überprüft, leider ohne Ergebnis. Heißt, weder Leerzeichen noch Zeilenumbrüche vor <?php, noch nach ?>.
    Die o.g. Fehlermeldung kommt dennoch.
    Ich poste mal die pm.php und eine der switchcase-Dateien:
    <?php
    
    defined('main') or die('no direct access');
    
    //Limit wie viele Nachrichten pro Seite angezeigt werden
    $limit = 30;
    //Farbe für Multipageanzeige bei Archiv (css)
    $color = '#9DBDD4';
    
    function getSDmon($time){
    	$m = date('n', $time);
    	$s = $m == 3 ? 8 : 3;
    	return substr(getDmon($m),0,$s);
    }
    
    $title = $allgAr['title'] . ' :: Private Nachrichten';
    $hmenu = '<a class="smalfont" href="index.php?pm">Private Nachrichten</a>';
    $design = new design ($title , $hmenu, 1);
    $design->header();
    
    if ($allgAr['Fpmf'] != 1) {
        echo 'Private Nachrichten wurden von dem Administrator komplett gesperrt';
        echo '<br><a href="javascript:history.back(-1)">zurück</a>';
        $design->footer(1);
    } elseif (!loggedin()) {
        echo '<br>Gäste dürfen keine Privaten Nachrichten Verschicken!';
        $tpl = new tpl ('user/login');
        $tpl->set_out('WDLINK', 'index.php', 0);
        $design->footer(1);
    } elseif (db_result(db_query("SELECT opt_pm FROM prefix_user WHERE id = " . $_SESSION['authid']), 0) == 0) {
        echo 'Im <a href="index.php?user-profil">Profil</a> einstellen das du die PrivMsg Funktion nutzen m&ouml;chtest';
        $design->footer(1);
    }
    
    $uum = $menu->get(1);
    if ($uum == 'delete' and isset($_POST['toArchiv'])) {
    	$uum = 'toArchiv';
    }
    
    //Anzahl PM's in Ordnern
    $inbox_count = get_message_count('inbox');
    $outbox_count = get_message_count('outbox');
    $archiv_count = get_message_count('archiv');
    
    //an's template header ausgeben
    $tplNav = new tpl ('pm/nav');
    
    //ans template ausgeben
    $tplNav->set('inbox', $inbox_count);
    $tplNav->set('outbox', $outbox_count);
    $tplNav->set('archiv', $archiv_count);
    
    //site festlegen
    if (empty($uum)) {
    	$tplNav->set('site', 'pe');
    } else {
    	if ($uum == 'showmsg') {
    		if ($menu->get(3) == 's') {
    			if ($menu->get(4) == 'arch') {
    				$tplNav->set('site', 'archiv');
    			} else {
    				$tplNav->set('site', 'showsend');
    			}
    		} else {
    			$tplNav->set('site', 'pe');
    		}
    	} elseif ($uum == 'edit') {
    		$tplNav->set('site', 'new');
    	} else {
    		$tplNav->set('site', $uum);
    	}
    }
    
    $tplNav->out(0);
    unset ($tplNav);
    
    
    switch ($uum) {
        default         : $incdatei = 'show.php';       break;
        case 'new'      : $incdatei = 'new.php';        break;
        case 'edit'     : $incdatei = 'edit.php';       break;
        case 'showmsg'  : $incdatei = 'showmsg.php';    break;
        case 'delete'   : $incdatei = 'delete.php';     break;
        case 'toArchiv' : $incdatei = 'toarchiv.php';   break;
        case 'showsend' : $incdatei = 'showsend.php';   break;
        case 'archiv'   : $incdatei = 'archiv.php';     break;
    }
    
    if ( isset($incdatei) ) {
      require_once('include/contents/pm/'.$incdatei);
    }
    
    ?>

    <?php
    
    defined('main') or die('no direct access');
    
    $title = $allgAr['title'] . ' :: Private Nachrichten :: Posteingang';
    $hmenu = '<a class="smalfont" href="index.php?pm">Private Nachrichten</a><b> &raquo; </b>Posteingang';
    $design = new design ($title , $hmenu, 1);
    $design->header();
    
    // message übersicht.
    $tpl = new tpl ('pm/show');
    $tpl->out(0);
                    
    $page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    $MPL = db_make_sites ($page , "WHERE eid = '{$_SESSION['authid']}}' AND status <= 0 AND archiv % 2 = 0" , $limit , '?pm' , 'pm' );
    $anfang = ($page - 1) * $limit;
    		
    $class = 'Cmite';
    $abf = "SELECT a.titel as BET, a.gelesen as NEW, b.name as ABS, a.id as ID, a.`time` FROM `prefix_pm` a left join prefix_user b ON a.sid = b.id WHERE a.eid = " . $_SESSION['authid'] . " AND a.status <= 0 AND a.archiv % 2 = 0 ORDER BY time DESC LIMIT $anfang, $limit";
    $erg = db_query($abf);
    while ($row = db_fetch_assoc($erg)) {
        $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
        $row['ORD'] = ($row['NEW'] == 0 ? 'nord' : 'ord');
        $row['CLASS'] = $class;
        $row['BET'] = (trim($row['BET']) == '' ? ' -- kein Nachrichtentitel -- ' : $row['BET']);
        $row['time'] = date('d. ',$row['time']).getSDmon($row['time']).date(' Y - H:i \U\h\r', $row['time']);
        $tpl->set_ar_out($row, 1);
    }
    
    $tpl->set_out('MPL', $MPL, 2);
    
    $design->footer();
    
    ?>
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    Editor auch so eingestellt das er leere zeilen anzeigt?

    Alles kopieren und in ne neue datei einfügen :p
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Erstes nicht, ist bei der Kürze der Dateien hoffentlich auch so zu erkennen.
    Soll bei Netbeans auch nicht wirklich gut funktionieren bis jetzt...
    Zweites brachte keine Veränderung.


    Zuletzt modifiziert von Outi77 am 06.01.2014 - 23:30:05
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    html dateien auch gecheckt?

    weil es ist definitiv dieser fehler
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Moin,
    was mich wundert ist, dass in der Fehlermeldung keine der verwendeten Dateien aufgeführt ist. Wenn eine davon der Verursacher ist, sollte die dann nicht dort auftauchen?
    html-Dateien gecheckt, so gut ich es kann. Leider auch hier keinen Fehler gefunden. Hättest Du (oder jemand anderes) vielleicht eventuell Zeit, da mal drüber zu schauen?
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Großen Dank an Mairu (und natürlich auch an Rock@wulf, dass er sich Zeit für mich genommen hat), mit dessen Hilfe das Problem beseitigt werden konnte.
    Grund war die mehrfache Initialisierung der Design-Klasse (nicht meine Worte, ich kann das so nicht formulieren), zum Einen in der pm.php und dann nochmals in den einzelnen switchcase-Dateien.
    Kann geschlossen werden!
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Erledigt und geschlossen
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten