php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.10.2006, 18:16  
Gast
 
Beiträge: n/a
Standard Cannot modify header information

Hi,

ich habe ein Problem mit dem Header meiner PHP-Seite.

Bei der ein/auslogg funktion und bei downloads kommt der

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sacred/inc/config.inc.php:171) in /var/www/sacred/inc/cookielogin.php on line 187

Fehler (bzw. je nach file anders).

Der Download funktioniet über eine PHP-Datei, der dann per Header auf das File weiterleitet, LogIn/Out über cookies.

Das interessante daran ist, dass es die bei der LogIn/Out fehlermeldung angegebene Zeile nicht gibt. Beim Download-Script verweist er auf die Zeile mit der Header-weiterleitung. Desweiteren gibt es keine Ausgaben vor dem senden des Headers. Das gleiche Scipt funktuioniert auf einem anderen Server einwandfrei.

cookielogin.php:
PHP-Code:
<?php
function user_login($username$password$iscookie)
{
    global 
$db;

    
$username savesql($username);
    
$password savesql($password);
    
$index mysql_query("select * from fs_user where user_name = '$username'"$db);
    
$rows mysql_num_rows($index);
    if (
$rows == 0)
    {
        return 
1;  // Fehlercode 1: User nicht vorhanden
    
}
    else
    {
        if (
$iscookie===false)
        {
            
$password md5($password);
        }
        
$dbuserpass mysql_result($index0"user_password");
        
$dbuserid mysql_result($index0"user_id");
        
$username mysql_result($index0"user_name");
        if (
$password == $dbuserpass)
        {
            
$_SESSION["user_level"] = "loggedin";
            
$_SESSION["user_id"] = $dbuserid;
            
$_SESSION["user_name"] = $username;
            return 
0;  // Login akzeptiert
        
}
        else
        {
            return 
2;  // Fehlercode 2: Falsches Passwort
        
}
    }
}



function 
set_cookie($username$password)
{
    global 
$db;

    
$username savesql($username);
    
$password savesql($password);
    
$index mysql_query("select * from fs_user where user_name = '$username'"$db);
    
$rows mysql_num_rows($index);
    if (
$rows == 0)
    {
        return 
false;
    }
    else
    {
        
$password md5($password);
        
$dbuserpass mysql_result($index0"user_password");
        
$dbuserid mysql_result($index0"user_id");
        if (
$password == $dbuserpass)
        {
            
$inhalt $password $username;
            
setcookie ("login"$inhalttime()+2592000"/");
            return 
true;  // Login akzeptiert
        
}
        else
        {
            return 
false;
        }
    }
}

///////////////////////////
///////// Cookie //////////
///////////////////////////

if ($_POST[stayonline]==1)
{
    
set_cookie($_POST[username], $_POST[userpassword]);
}

if (
$HTTP_COOKIE_VARS["login"])
{
    
$userpassword substr($HTTP_COOKIE_VARS["login"], 032);
    
$username substr($HTTP_COOKIE_VARS["login"], 32strlen($HTTP_COOKIE_VARS["login"]));
    
user_login($username$userpasswordtrue);
}

if (
$_POST[login]==1)
{
    
user_login($_POST[username], $_POST[userpassword], false);
}

///////////////////////////
///////// Logout //////////
///////////////////////////

if ($_GET[go] == "logout")
{
 
session_unset();
 
session_destroy();
 
$_SESSION = array();
 
setcookie ("login"""time()-1000"/");
}

?>
dl.inc.php:
PHP-Code:
<?php

// Download
if ($_GET[fileid] && $_GET[dl])
{
    
settype($_GET[fileid], 'integer');
    
$index mysql_query("select * from fs_dl where dl_id = $_GET[fileid]"$db);
    
$file mysql_fetch_array($index);
    
mysql_query("update fs_dl set dl_loads=dl_loads+1 where dl_id = $file[dl_id]"$db);
    
header('Location: '.$file[dl_url]); 
}

// Mirror
if ($_GET[mirrorid] && $_GET[dl])
{
    
settype($_GET[mirrorid], 'integer');
    
$mirrorindex mysql_query("select * from fs_dl_mirrors where mirror_id = $_GET[mirrorid]"$db);
    
$mirror mysql_fetch_array($mirrorindex);
    
mysql_query("update fs_dl_mirrors set mirror_count=mirror_count+1 where mirror_id = $mirror[mirror_id]"$db);
    
header('Location: '.$mirror[mirror_url]); 
}

?>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.10.2006, 19:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Google liefert dir auf "headers already sent" 31 Mio. Treffer.
Und als Nummer 1 den hier:
http://www.php-faq.de/q/q-fehler-header.html
Zergling-new ist offline   Mit Zitat antworten
Alt 23.10.2006, 19:58  
Gast
 
Beiträge: n/a
Standard

Tatsache.
Zitat:
Desweiteren gibt es keine Ausgaben vor dem senden des Headers.
Noch mal den ersten Teil der index.php, in der alles aufgerufen wird:

PHP-Code:
<?php
session_start
();
include(
"config.inc.php");
if (
$db)
{
    include(
"inc/dl.inc.php");
    include(
"functions.php");
    include(
"cookielogin.php");
    include(
"phrases.inc.php");

    echo
Die config.inc.php ergibt hat auch keine ausgabe. Und nochmal der Hinweis, dass das gleiche CMS auf etlichen anderen Seiten problemlos läuft. die dateien wurden auch schon zig mal durch die originale ersetzt.

Ich könnte mir vorstellen, dass es an einer sever einstellung liegt. ist da etwas bekannt, dass was vorkommen kann?
  Mit Zitat antworten
Alt 23.10.2006, 20:05  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

was macht echo' in der 11ten zeile?
Flor1an ist offline   Mit Zitat antworten
Alt 23.10.2006, 20:13  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
session_start
();
include(
"config.inc.php");
if (
$db)
{
    include(
"inc/dl.inc.php");
    include(
"functions.php");
    include(
"cookielogin.php");
    include(
"phrases.inc.php");

    echo
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
...
also bei dem echo beginnt dann die Ausgabe der Seite. Und eben eigentlich danach...
  Mit Zitat antworten
Alt 23.10.2006, 20:27  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Zitat:
output started at /var/www/sacred/inc/config.inc.php:171
mehr musst du doch gar net wissen, oder?
Chr!s ist offline   Mit Zitat antworten
Alt 23.10.2006, 20:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von tolkien-fan
Tatsache.
Die config.inc.php ergibt hat auch keine ausgabe. Und nochmal der Hinweis, dass das gleiche CMS auf etlichen anderen Seiten problemlos läuft. die dateien wurden auch schon zig mal durch die originale ersetzt.
Das sagt uns ja wohl, daß der Server da irgendwas anders macht, oder? schau dir mal error_reporting () an.
nikosch ist offline   Mit Zitat antworten
Alt 23.10.2006, 20:31  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Mal wieder an der Zeit, Wetten abzuschließen, was?

Also ich tippe auf das Leerzeichen hinter ?> in Zeile 171 von /var/www/sacred/inc/config.inc.php.

Ansonsten hatte ich ein derartiges Problem mal, als ich auf einem Mac an meinen Quellen rumgeschraubt hab. Allerdings wurde da in der ersten Zeile vor <?php irgendwas eingefügt, was nicht wegzubekommen war.

Zum Debuggen mal den OB anschmeipen und vor der ersten (gewollten) Ausgabe den String darin analysieren.

Basti
Basti ist offline   Mit Zitat antworten
Alt 23.10.2006, 20:38  
Gast
 
Beiträge: n/a
Standard

Dann würdest du verlieren, die config.inc.php hat exakt 100 Zeilen. :P
Aber auch in Zeile 100 ist kein Leerzeichen hinter dem ?>
  Mit Zitat antworten
Alt 23.10.2006, 21:24  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Zitat:
Zitat von tolkien-fan
Dann würdest du verlieren, die config.inc.php hat exakt 100 Zeilen. :P
Aber auch in Zeile 100 ist kein Leerzeichen hinter dem ?>
Autsch!

Was gibt denn das hier aus:
PHP-Code:
<?php
ob_start
();

include 
'/var/www/sacred/inc/config.inc.php';

$s = (string) ob_get_contents();
ob_end_clean();

for (
$i 0$i strlen($s); $i++)
    echo 
ord($s{$i}), '
'
;
?>
Basti
Basti ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Cannot modify header information nicobischof PHP Tipps 2006 3 06.01.2006 15:46
Cannot modify header information...??? imported_FlasH PHP Tipps 2007 33 12.11.2005 11:58
Warning: Cannot modify header information - headers already LP PHP Tipps 2005-2 2 12.09.2005 19:28
Fehler: Warning: Cannot modify header information - headers PHP Tipps 2005-2 14 01.09.2005 15:02
Problem: Cannot modify header information Alpha Centauri PHP Tipps 2005 11 25.04.2005 13:05
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
cannot modify header information!?!?! Fraylman PHP Tipps 2005 14 18.03.2005 18:14
Cannot modify header information - headers already sent PHP Tipps 2005 2 15.03.2005 22:10
Warning: Cannot modify header information ... PHP Tipps 2005 24 15.02.2005 11:07
Cannot modify header information PHP Tipps 2004-2 6 05.12.2004 19:37
admincontrolpanel: Cannot modify header information ? phpfortgeschrittener PHP Tipps 2004 2 23.08.2004 19:17
Warning: Cannot modify header... einbinden nicht möglich? PHP Tipps 2004 2 07.08.2004 15:06
Cannot modify header information - headers already sent by PHP Tipps 2004 2 25.07.2004 19:40
Warning: Cannot modify header information PHP Tipps 2004 8 22.07.2004 00:50
Warning: Cannot modify header information.... PHP Tipps 2004 4 18.06.2004 01:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
warning: cannot modify header information - headers already sent by (output started at in /inc/config.inc.php on line 31, sacred fehler header, cannot modify header information - headers already sent session_start(); session_unset(); session_destroy();, modify headers einstellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.