fehlermeldung wenn man nicht eingeloggt ist

Brian Folte

Angesehenes Mitglied
hallo wenn man auf meiner seite nicht eingeloggt ist, dann bekommt man diese meldung hier:
Warning: Cannot modify header information - headers already sent by (output started at /home/sms4allc/public_html/module/head.inc:11) in /home/sms4allc/public_html/bild.php on line 88

in der bild.php datei steht nur das hier : header("LOCATION: ./index.php");
keine ahnung an was das liegen könnte aber ich bete das ihr es wisst. liebe grüße brian
 
Ich hab keine Ahnung.

Aber Google weiss alles.
"php header" -> http://ch2.php.net/manual/de/function.header.php

Dort steht sehr einleuchtend, dass nicht mehrere Header gesendet werden können. Ergo wird vor deiner Zeile schon etwas ausgegeben, worin der Fehler liegt.

Ich bitte Dich etwas mehr Eigeninitiative an den Tag zu legen. Wenn Du jedesmal jemand anderes deine Probleme lösen lässt, wirst Du nie PHP lernen.
 
@Alain
Da muss ich Dich leider korrigieren.
QUOTE Dort steht sehr einleuchtend, dass nicht mehrere Header gesendet werden können.


Es können sehr wohl mehrere Header gesendet werden, siehe hier - http://de2.php.net/manual/de/function.header.php
jedoch darf vor dem header kein html Code stehen! Also ähnlich wie beim setzten eines Cookie muss der Header vor dem .html stehen.


Aber das mit der Eigeninitiative kann ich so nur unterstreichen!!

schöne Grüsse René
 
Richtig und Danke @z-web, aber so leider ist es gar nicht.

Was ichfalsch ausgedrückt habe, sollte in einem Beispiel ausgdrückt @Brian folgendes vermitteln.

Du darfst nicht:

CODE <?php
echo "etwas";
//oder
?>
so etwas ausgeben (html), wenn Du nachher
<?php
//einen
header("Location: ...");
?>

ausgeben möchtest. D.h. der header ist schon gesendet.

Oftmals liegt der Fehler nur darin, dass Du vor dem <? eine Leerzeile hast. In deinem Fall liegt der Output in Zeile 11 von head.inc.
 
Ja, dem stimme ich vollumfänglich zu!

Die Leerzeile hatte mir auch schon einen Steich gespielt! ;-)

gruss René
 
hallo. in zeile 11 steht nur mein metag schaut selbst:
CODE <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>sms-4-all.com SMS zu günstigen Preisen</title>

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta http-equiv="Content-Language" content="de">
<meta name="robots" content="index,follow">
<meta name="Abstract" content="SMS ab 4 Cent und mit 160 Zeichen verschicken">
<meta name="audience" content=" Alle ">
<meta name="keywords" content="sms, mms, handylogos, javagames, Handy Screensaver, sms sprüche, bildmitteilungen, klingeltöne">
<meta name="description" content="sms-4-all.com SMS ab 4 Cent versenden, Handylogos, Bildmitteilungen, Polyphone, Monophone, Wallpaper, Screensaver, die neusten Charts auf dein Handy . Anmeldung kostenlos !">
<meta name="page-topic" content="SMS, Logos, Klingeltöne, MMS, Javagames weltweit versenden.">
<meta name="revisit-after" content="14 days">
<meta http-equiv="imagetoolbar" content="no" />

<link rel="stylesheet" href="css/design.css" type="text/css">
<!--[if gte IE 5]><link rel="stylesheet" type="text/css" href="css/ie.css" /><![endif]-->

<script type="text/javascript">
<!--

if(top!=self)
top.location=self.location;

function m(el) {
if (el.defaultValue==el.value) el.value = ""
}

nav_off = new Image();
nav_off.src = "img/nav_norm.gif";
nav_on = new Image();
nav_on.src = "img/nav_hover.gif";
nav_aktiv = new Image();
nav_aktiv.src = "img/nav_hover.gif";

//-->
</script>
<script language="JavaScript">
<!--
function wst(){
window.status="© 2005 sms-4-all.com SMS zu günstigen Preisen"; window.setTimeout("wst()",1);}wst();
//-->
</script>
</head>
 
Kein Meta kein Leerschlag oder sonstige Zeigen dürfen vor dem header stehen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Wie bereits mehrfach und eindeutig beschieben von Alain und mir!

Auch nicht .... QUOTE nur mein metag
 
Vielleicht hilft es dir zu sagen was ein Header bedeutet.
Der Browser weiß daraufhin was für ein Typ erhält. BSp. text, html, jpeg ....
Bei php braucht man einen oben genannten Header nicht zu senden, da er automatisch gesendet wird.
Bei anderen Programmiersprachen musst du das machen. Bsp. Perl.

Wenn du einen Weiterleitung macht per header darf nichts davor stehen. Wie schon Alain und z-web gesagt haben.
Würde dir empfehlen die chm Datei von selfphp zu downloaden. Da gibt man bei der Suche z.B. header ein und darauf kann man meist mehrere Fundstellen auswählen. Man findet immer etwas.

selfphp
Da wählst du die Datei:

chm - 1.831.425 Byte
 
Hallo. Ja ich weiß bevor ich frage, soll ich immer und immer lesen. das mach ich auch wirklich das könnt ihr mir glauben! den ich bin auch der meinung, das man sich vieles selbst aneignen soll was auch viel mehr spass macht. nur ich sitzte jetzt wieder ein paar stunden daran und mir qualmt der kopf. ich habe eure beiträge jetzt immer und immer wieder gelesen war auch auf den links und habe da gelesen. nur eure aussage das nix davor stehen darf, das will mir nicht so richtig in den kopf. also ich verstehe eure beiträge so:
1. vor dem header("LOCATION. ./index.php"); darf keine leerzeile sein und auch nicht das zeichen sein ?> so verstehe ich das jetzt. damit ich nirgends eine leerzeile habe, müßte ich ja einfach keine freizeile lassen. oder meint ihr das ganz anders und ich hab euch nur nicht richtig verstanden? ich weiß auch das meine fragen manchmal echt auf den Kopf gefallen sind. sorry ich will euch mit meinen fragen auch nicht nerven. liebe grüße brian
 
wenn man einen header über die header() funktion sendet, darf danach kein output in form von html oder über echo erfolgen. setz nach deiner header() funktion einfach ein exit.
 
QUOTE (Arno Nühm @ So 8.5.2005, 20:58) wenn man einen header über die header() funktion sendet, darf danach kein output in form von html oder über echo erfolgen.

Das stimmt so pauschal nicht, es kommt ganz darauf an, was für einen Status Code man sendet. Bei einer 200 folgt ganz normal der HTML Quelltext.

Abgesehen davon deutet die Fehlermeldung darauf hin, dass vor dem header(); eine Ausgabe stattgefunden hat
 
so sieht der quelltext aus:
CODE <?


include("./includes/config.php");



include("./media_show.php");

##Der Benutzer muss eingeloggt sein.

if(isset($_SESSION["id"])){



##User Aktiv??

$result = mysql_query("SELECT aktiv,nummer FROM user WHERE id = '$_SESSION[id]'");

$user = mysql_fetch_array($result);



##Kontostand

$result = mysql_query("SELECT sms FROM pakete WHERE id = '$_SESSION[id]'");

$konto = mysql_fetch_array($result);

$message = "Du hast noch $konto[sms] SMS";

##Send SMS
if($_POST["action"]){

##Check Data
if(!$_POST["nummer"]){
$message="Bitte Handynummer angeben!";
include("./templates/logo_senden.html");
exit();
}
elseif(strlen($_POST["nummer"])<10){
$message="Zu kurze Handynummer";
include("./templates/logo_senden.html");
exit();
}
elseif(!is_numeric($_POST["nummer"])){
$message="Handynummer nur aus Zahlen";
include("./templates/logo_senden.html");
exit();
}
else{

##Beginn Send
$empfaenger = $nummer;

##Pic
$bild = imagecreate(72,14);
$schwarz = imagecolorallocate($bild,0,0,0);
$weiss = imagecolorallocate($bild,255,255,255);
imagefill($bild,0,0,$weiss);

for($i=0;$i<1008;$i++){
if($image[$i]==1){
$zeile=$i/72;
$zeile=intval($zeile);
$spalte=$i-$zeile*72;
$spalte=intval($spalte);
imagesetpixel($bild,$spalte,$zeile,$schwarz);
}
}






$logofile = "$_GET[$mediaSendVar]";
$empfaenger = $nummer;


$logoseite= "http://gateway.mobilant.net/media.php?key=$key&media=logo&handynr=$empfaenger&file=$logofile";
//$logoseite= "http://www.sms-selling.de/logo.php?key=$key&handynr=$empfaenger&media=logo&file=$logofile";

##Sende
$fp = fopen ($logoseite, "r");
if(($fehlercode = @fgets($fp, 1024)) == "100"){
mysql_query("UPDATE pakete set sms = sms-$logo_kosten WHERE user_id = '$_SESSION[id]'");
echo "<img src=$_GET[$mediaSendVar] > Erfolgreich.versandt. Es wurden Ihnen $logo_kosten SMS berechnet.<br><br>";
}
else{
echo "<img src='".$_GET[$mediaSendVar]."' > Fehler beim Senden des Logos.<br><br>Fehlercode: $fehlercode<br><br>Kontaktieren Sie den Administrator.";
}
}
}

##Zeige Formular
include("./templates/logo_senden.html");
include("./includes/footer.php");

}

}

else{

header("LOCATION: ./index.php");

}




?>


<?
if (ImageTypes() & IMG_GIF) {
echo "<img src=http://www.ghostimage.de/load_content.php?id=$_GET[$mediaSendVar] >";
}else{
echo "no gif support installed !";
}

?>
 
Du musst die Includes, die vor dem header() eingelesen werden auch noch überprüfen.
Was steht in der media_show.php - gibt es dort vielleicht eine Ausgabe von HTML Code?
 
Wird dort die head.inc includiert? Diese verursacht ja die Fehlermeldung. Oder in der config.php? Du musst alle Includes, die vor dem header("LOCATION: ./index.php"); eingebaut werden, überprüfen
 
Zurück
Oben