php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 30 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 19-04-2013, 23:27
schattenwueste
 Registrierter Benutzer
Links : Onlinestatus : schattenwueste ist offline
Registriert seit: Apr 2013
Beiträge: 2
schattenwueste befindet sich auf einem aufstrebenden Ast
Standard Fehler Warning: Cannot modify header information - headers already sent by

Hi und schönen guten Abend euch :-)

Ich habe bei meinem Wordpress Blog ein Problem.
Domain1 verweist auf das Hauptverzeichnis und funkioniert alles einwandfrei.
Domain2 verweist auch auf das gleiche Verzeichnis und da kommt nur die Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web134128/html/guide-and-drive/index.php:3) in /var/www/web134128/html/guide-and-drive/wp-includes/ms-settings.php on line 98


Kann mir da jemand helfen? Als Lösung hab ich das mal gefunden:
Mögliche Lösung: Output-Buffering:
Vor dem session_start(); noch einfügen: ob_start();
Und ganz am Ende des Scripts: ob_end_flush(); Dann sollte es gehen.

Bei mir gibt es aber kein session_start(); und wenn ich die dennoch hinzufüge, gibt es ein Syntaxxfehler.

Hier ist mal der Quellcode:

Code:
<?php 
/**
 * Used to set up and fix common variables and include
 * the Multisite procedural and class library.
 *
 * Allows for some configuration in wp-config.php (see ms-default-constants.php)
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Include Multisite initialization functions */
require( ABSPATH . WPINC . '/ms-load.php' );
require( ABSPATH . WPINC . '/ms-default-constants.php' );

if ( defined( 'SUNRISE' ) )
    include_once( WP_CONTENT_DIR . '/sunrise.php' );

/** Check for and define SUBDOMAIN_INSTALL and the deprecated VHOST constant. */
ms_subdomain_constants();

if ( !isset( $current_site ) || !isset( $current_blog ) ) {

    $domain = addslashes( $_SERVER['HTTP_HOST'] );
    if ( false !== strpos( $domain, ':' ) ) {
        if ( substr( $domain, -3 ) == ':80' ) {
            $domain = substr( $domain, 0, -3 );
            $_SERVER['HTTP_HOST'] = substr( $_SERVER['HTTP_HOST'], 0, -3 );
        } elseif ( substr( $domain, -4 ) == ':443' ) {
            $domain = substr( $domain, 0, -4 );
            $_SERVER['HTTP_HOST'] = substr( $_SERVER['HTTP_HOST'], 0, -4 );
        } else {
            wp_load_translations_early();
            wp_die( __( 'Multisite only works without the port number in the URL.' ) );
        }
    }

    $domain = rtrim( $domain, '.' );
    $cookie_domain = $domain;
    if ( substr( $cookie_domain, 0, 4 ) == 'www.' )
        $cookie_domain = substr( $cookie_domain, 4 );

    $path = preg_replace( '|([a-z0-9-]+.php.*)|', '', $_SERVER['REQUEST_URI'] );
    $path = str_replace ( '/wp-admin/', '/', $path );
    $path = preg_replace( '|(/[a-z0-9-]+?/).*|', '$1', $path );

    $current_site = wpmu_current_site();
    if ( ! isset( $current_site->blog_id ) )
        $current_site->blog_id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s", $current_site->domain, $current_site->path ) );

    if ( is_subdomain_install() ) {
        $current_blog = wp_cache_get( 'current_blog_' . $domain, 'site-options' );
        if ( !$current_blog ) {
            $current_blog = get_blog_details( array( 'domain' => $domain ), false );
            if ( $current_blog )
                wp_cache_set( 'current_blog_' . $domain, $current_blog, 'site-options' );
        }
        if ( $current_blog && $current_blog->site_id != $current_site->id ) {
            $current_site = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->site WHERE id = %d", $current_blog->site_id ) );
            if ( ! isset( $current_site->blog_id ) )
                $current_site->blog_id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s", $current_site->domain, $current_site->path ) );
        } else
            $blogname = substr( $domain, 0, strpos( $domain, '.' ) );
    } else {
        $blogname = htmlspecialchars( substr( $_SERVER[ 'REQUEST_URI' ], strlen( $path ) ) );
        if ( false !== strpos( $blogname, '/' ) )
            $blogname = substr( $blogname, 0, strpos( $blogname, '/' ) );
        if ( false !== strpos( $blogname, '?' ) )
            $blogname = substr( $blogname, 0, strpos( $blogname, '?' ) );
        $reserved_blognames = array( 'page', 'comments', 'blog', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' );
        if ( $blogname != '' && ! in_array( $blogname, $reserved_blognames ) && ! is_file( $blogname ) )
            $path .= $blogname . '/';
        $current_blog = wp_cache_get( 'current_blog_' . $domain . $path, 'site-options' );
        if ( ! $current_blog ) {
            $current_blog = get_blog_details( array( 'domain' => $domain, 'path' => $path ), false );
            if ( $current_blog )
                wp_cache_set( 'current_blog_' . $domain . $path, $current_blog, 'site-options' );
        }
        unset($reserved_blognames);
    }

    if ( ! defined( 'WP_INSTALLING' ) && is_subdomain_install() && ! is_object( $current_blog ) ) {
        if ( defined( 'NOBLOGREDIRECT' ) ) {
            $destination = NOBLOGREDIRECT;
            if ( '%siteurl%' == $destination )
                $destination = "http://" . $current_site->domain . $current_site->path;
        } else {
            $destination = 'http://' . $current_site->domain . $current_site->path . 'wp-signup.php?new=' . str_replace( '.' . $current_site->domain, '', $domain );
        }
        header( 'Location: ' . $destination );
        die();
    }

    if ( ! defined( 'WP_INSTALLING' ) ) {
        if ( $current_site && ! $current_blog ) {
            if ( $current_site->domain != $_SERVER[ 'HTTP_HOST' ] ) {
                header( 'Location: http://' . $current_site->domain . $current_site->path );
                exit;
            }
            $current_blog = get_blog_details( array( 'domain' => $current_site->domain, 'path' => $current_site->path ), false );
        }
        if ( ! $current_blog || ! $current_site )
            ms_not_installed();
    }

    $blog_id = $current_blog->blog_id;
    $public  = $current_blog->public;

    if ( empty( $current_blog->site_id ) )
        $current_blog->site_id = 1;
    $site_id = $current_blog->site_id;

    $current_site = get_current_site_name( $current_site );

    if ( ! $blog_id ) {
        if ( defined( 'WP_INSTALLING' ) ) {
            $current_blog->blog_id = $blog_id = 1;
        } else {
            wp_load_translations_early();
            $msg = ! $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->site'" ) ? ' ' . __( 'Database tables are missing.' ) : '';
            wp_die( __( 'No site by that name on this system.' ) . $msg );
        }
    }
}
$wpdb->set_prefix( $table_prefix, false ); // $table_prefix can be set in sunrise.php
$wpdb->set_blog_id( $current_blog->blog_id, $current_blog->site_id );
$table_prefix = $wpdb->get_blog_prefix();
$_wp_switched_stack = array();
$switched = false;

// need to init cache again after blog_id is set
wp_start_object_cache();

// Define upload directory constants
ms_upload_constants();
Vielleicht hat jemand von euch eine Lösung. Leider kenn ich mich mit PHP nicht so gut aus, ich glaube das ist ein Fehler weil ich mehrere Domains verwenden will, aber warum das kommt weis ich auch nicht.

Vielen Vielen Dank schonmal im Vorraus
Mit Zitat antworten
  #2 (permalink)  
Alt 20-04-2013, 01:32
Guenni61
 Registrierter Benutzer
Links : Onlinestatus : Guenni61 ist offline
Registriert seit: Nov 2011
Ort: Viersen
Beiträge: 128
Guenni61 befindet sich auf einem aufstrebenden Ast
Standard

Hi schattenwueste,

guck dir mal an, was der Fehler ist und in welcher Zeile der Datei der Fehler auftritt:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web134128/html/guide-and-drive/index.php:3)
in /var/www/web134128/html/guide-and-drive/wp-includes/ms-settings.php on line 98

Zeile 98. Könnte das diese sein: wp_die( __( 'No site by that name on this system.' ) . $msg );

Du kannst eine Umleitung (Weiterleitung) mit der Funktion header nur vornehmen, wenn noch keinerlei Ausgabe gemacht wurde.
Versuch mal, anstatt header zu verwenden, ob du an den Stellen mit JavaScript weiter kommst:

Code:
 
<script type="text/javascript">
<!--
window.location.href='Neue_Adresse';
// -->
</script>
Gruß
Günni
Mit Zitat antworten
  #3 (permalink)  
Alt 20-04-2013, 09:34
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

In index.php findet in Zeile 3 eine Ausgabe statt. Vor dem Aufruf von header() darf aber keinerlei Ausgabe gemacht werden.

@Guenni61: JavaScript ist eine blöde Idee. Nicht jeder Browser unterstützt JavaScript und Suchmaschinen in der Regel auch nicht. Sauberer ist ein richtiger Redirect mit dem passenden HTTP Status-Code.
Mit Zitat antworten
  #4 (permalink)  
Alt 21-04-2013, 08:57
schattenwueste
 Registrierter Benutzer
Links : Onlinestatus : schattenwueste ist offline
Registriert seit: Apr 2013
Beiträge: 2
schattenwueste befindet sich auf einem aufstrebenden Ast
Question

Also ersteinmal vielen Danke für die Antworten.

Zitat:
In index.php findet in Zeile 3 eine Ausgabe statt. Vor dem Aufruf von header() darf aber keinerlei Ausgabe gemacht werden.
Also in der index.php findet keine Ausgabe statt.

Quellcode der Index
Code:
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');
?>

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-40104096-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

Die Zeile 98 in der Datei ms-settings.php ist:
Code:
header( 'Location: http://' . $current_site->domain . $current_site->path );
(kompletter Code ist ja oben gepostet)
Also habt Ihr schon mal recht wegen HEADER Ausgabe.

Nur weis ich leider immer nochnicht was ich da ändern soll. Wie gesagt ich weis leider nicht soviel über php.
Mit Zitat antworten
  #5 (permalink)  
Alt 21-04-2013, 21:08
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von schattenwueste Beitrag anzeigen
Also in der index.php findet keine Ausgabe statt.
Doch, tut es. PHP lügt nicht.

Ich vermute, dass du die falsche Datei betrachtest, oder dass du vor <?php ein paar Zeilenumbrüche, Leerbrüche, oder sonstige unsichtbare Zeichen hast. Es kann nur eins von den beiden sein. Etwas anderes ist nicht möglich.
Mit Zitat antworten
  #6 (permalink)  
Alt 27-06-2013, 20:56
Lloragon
 Registrierter Benutzer
Links : Onlinestatus : Lloragon ist offline
Registriert seit: Jun 2013
Beiträge: 1
Lloragon befindet sich auf einem aufstrebenden Ast
Standard

Dem Stimme ich zu, header() ist leider sehr zickig, schon ein unbedachter ZeilenUmbruch, oder ein Leerzeichen reicht aus als "Ausgabe" und blockiert ihn und das kann.sogar in einer vorher eingebundenen include Datei rumstehen
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
cannot modify header, php fehler


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Cannot modify header information - headers already sent by ... phpMorpheus2 PHP Developer Forum 10 28-08-2008 21:45
Warning: Cannot modify header information Larsidotnet PHP Developer Forum 6 30-05-2007 11:49
Warning Cannot modify header information Smartsoul PHP Developer Forum 18 26-11-2005 20:04
: Cannot add header information - headers already sent Berni PHP Developer Forum 1 23-02-2001 19:10
: Cannot add header information - headers already sent Berni PHP Developer Forum 0 23-02-2001 18:22

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:02 Uhr.