dani
Goto Top

PHP - Leerzeile am Seitenanfang

Hi Leute,

da ich gerade eine Website entwerfe, habe ich Funktionen in eine extra Datei ausgelagert. Soweit funktioniert alles wunderbar. Jedoch habe seit dem oben eine Leerzeile drinne:

efcde688938ac4ff735beb49b3f27959-snap1

Der Quelltext ist so aus:
....
error_reporting(E_All);

# Einbinden der globalen Variablen, Funktionen und Modulen
include_once ("include/global_vars.php");  
include_once ("include/global_methods.php");  
include_once ("include/section.php");  
....
Wenn ich "...global_methods.php" auskommentiere verschwindet die Leerzeile.

ba2e35c69e072cb9b537eb1534f2ea9b-snap2

Wenn ich die "...global_methods.php" komplett leer lasse, ist diese auch Zeile verschwunden. Sobald folgendes in dieser Datei steht, wird die Leerzeile wieder angezeigt.
<?php

?>
Falls der Inhalt doch relevant sein, einfach schreien. face-smile


Gruß
Dani
Änderung(en):
Ich werde den Thread schließen da dein Problem gelöst ist und keine weiteren Kommentare gebraucht werden.
masterG
22:11 4.07.2007

Content-Key: 60816

Url: https://administrator.de/contentid/60816

Printed on: April 18, 2024 at 10:04 o'clock

Mitglied: 16568
16568 Jun 07, 2007 at 16:23:18 (UTC)
Goto Top
Öhm, der Inhalt generell jeder PHP-Datei ist relevant, da keiner weiß, was da drin steht...

steht vielleicht ein <br> oder <br /> drin?
Oder was ganz anderes?

Dani... ich bitte Dich als globl. Admin solltest Du das doch wissen face-wink

Entweder hier den Source posten, oder ein nopaste-Script verwenden.
Alternativ auch eine PN...


Lonesome Walker
Member: Dani
Dani Jun 07, 2007 at 16:30:40 (UTC)
Goto Top
Hallo Lonesome Walker,
Öhm, der Inhalt generell jeder PHP-Datei ist relevant, da keiner weiß, was da drin steht...
steht vielleicht ein <br> oder <br /> drin?
Oder was ganz anderes?
Das ist das Problem. Wenn ich nur
<?php //return gedrückt
Leerzeile //return gedrückt
?> //return gedrückt
in die "global_methods.php" schreibe, habe ich wieder das Problem mit der Leerzeile. Hier mal der Inhalt der Datei:
#######################################################
#Datenbankverbindung aufbauen
#######################################################
function db_login()
	{
	$db_link = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
	$select = mysql_select_db(MYSQL_DATABASE);
	
	mysql_query("SET NAMES '".MYSQL_CHARSET."'");  
	mysql_query("SET CHARACTER SET '".MYSQL_CHARSET."'");  
	}

#######################################################
#Datenbankverbindung beenden
#######################################################
function db_logout()
	{
	mysql_close();
	}
#######################################################
#NOW() wird in  das deutsche Datum umwandeln
#MODUS => "n" - Nur das Datum | "y" - Datum und Uhrzeit 
#######################################################
function german_date($datum)
	{
	$elements = array();
	$elements = preg_split("/[\-\:\ ]/",$datum);  
	
	return "".$elements[2].".".$elements[1].".".$elements."";  
	
	unset($elements);
	unset($datum);
	unset($modus);
 }
#######################################################
#time() wird ausgelesen und nur Stunde & Minute zurückgegeben
#######################################################
function german_time($zeit,$modus)
	{
	$elements = array();
	$elements = preg_split("/[\-\:\ ]/",$zeit);  
	
	return "".$elements.":".$elements[1]."";  

	unset($elements);
	unset($datum);
	unset($modus);
 }
//---------------------------------------------------------------------------------------------------------
//Überprüft im Internet, ob die E-Mailadresse existiert
//---------------------------------------------------------------------------------------------------------
function checkmail($email)  
 {  
  if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email, $check))    
   {  
    list($username,$domain)=split('@',$email);  
	if(fsockopen("smtp.".$domain,25,$errno,$errstr,30))  
	 {
      if(getmxrr(substr(strstr($check, '@'), 1), $validate_email_temp))    
       {  
        return true;  
       }  
      if(checkdnsrr(substr(strstr($check, '@'), 1),"ANY"))   
       {  
        return true;  
       }  
     }
   }	 
  return false;  
 }
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Macht aus Mannschaftsnamen die K?el (z.B. Damen 1 -> d1)
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function kz_mann($mannschaftsname)
	{
	$split=preg_split("/[\/ ]+/", strtolower($mannschaftsname));  
	
	if($split[1] < 1)	$kuerzel=substr($split,0,1)."".substr($split[1],0,1)."".$split[2];  
	else				$kuerzel=substr($split,0,1)."".$split[1];  

	return $kuerzel;
 }
Ob die Programmierung gut oder schlecht ist, sei dahin gestellt. face-smile

Dani... ich bitte Dich als globl. Admin solltest Du das doch wissen
Jap...aber die Tatsache, dass das Grundgerüst von PHP (siehe oben) schon den Fehler erzeugt, hat mich die Entscheidung so treffen lassen. Ich hoffe, du kannst mir das verzeihen!


Gruß
Dani
Mitglied: 17735
17735 Jun 07, 2007 at 17:56:50 (UTC)
Goto Top
Hallo Dani,

in welchen Browsern (und unter welchen Betriebssystemen) tritt das Problem auf?

Gruß,
Ahnenforscher
Mitglied: 16568
16568 Jun 07, 2007 at 17:58:45 (UTC)
Goto Top
Das wollte ich auch grade fragen face-big-smile

Bissel mehr Input...

Welcher Server parst die Scripte? (IIS, ApacheI, ApacheII)
Sieht soweit alles normal aus, aber wer weiß, was in den anderen Dateien alles noch drin steht, und dann schlußendlich zu so einer Verschiebung führt...


Lonesome Walker
Member: Dani
Dani Jun 07, 2007 at 20:39:50 (UTC)
Goto Top
Hi Jungs / Mädels,
sry..war bis jetzt außer Haus.

Also das Problem tritt bei mir unter WindowsXP Prof. + SP2 / Internet Explorer 7 auf. Firefox o.ä. habe ich noch nicht probiert. Das spielt zur Zeit auch keine Rolle, da die Nutzer zu 99% nur den IE 6 / 7 zur Verfügung steht.

Ah...den Server habe ich noch vergessen. Also mein Testsystem ist XAMPP 1.6.1b für Windows (also Apache 2.x und MySQL 5.x). In der php.ini ist der "SafeMode" die "GlobalVars" deaktiviert.

Sieht soweit alles normal aus, aber wer weiß, was in den anderen Dateien alles noch drin
steht, und dann schlußendlich zu so einer Verschiebung führt...
Hmm....ich kann hier schlecht alle Dateien (20 Stück) posten, die in dieser Konstellation zusammenspielen. Das gäbe dann hier ein paar Codeblöcke. Den Quellcode für Jeden bereitstellen ist keine Option! Aber ich könnte mir sehr gut vorstellen, einigen (vertrauenswürdigen) Usern die PHP-Dateien zur Verfügung zustellen.


Schönen Abend
Dani
Member: Dani
Dani Jun 08, 2007 at 20:16:20 (UTC)
Goto Top
Guten Abend,
es gibt eine gute Nachricht und eine schlechte Nachricht! face-smile

Gute Nachricht:
Ich konnte den Fehler nach Tagen finden. Und zwar habe ich die Dateien im "UTF-8" Format abgespeichert.
include_once ("include/global_vars.php");  
include_once ("include/global_methods.php");  
include_once ("include/section.php");  
Sprich, wenn ich alle 3 Dateien im "ANSI - Format" speichere, ist die Zeile weg. Sobald eine der 3 wieder im UTF-8 Format speichere, tritt das Problem wieder auf.

Schlechte Nachricht:
Ich habe keine Ahnung, warum gerade bei den 3 Dateien das Problem auftritt und bei den anderen alles "OK" ist.

Mein Editor ist Notepad++. Schönen Abend & erholsames Wochenende.
[Edit 08.06.07 22:19]
Sowie es aussieht, betrifft das alle PHP-Dateien!!


Gruß
Dani
Mitglied: 16568
16568 Jun 09, 2007 at 08:04:24 (UTC)
Goto Top
Hallo Dani,

ich denke, für Dich gelten dieselben Regeln, wie für andere Foren-Mitglieder.
Daher verweise ich aber zusätzlich auf Regel Nr. 1 in meinem Profil.

Entweder Du läßt die Hose runter, und wir können Dir bei Deinem Problem helfen, oder wir lassen den ganzen Kindergarten.
Daß es nur an UTF-8 liegen soll wäre dann doch etwas komisch...


Lonesome Walker
Member: wakko
wakko Jul 04, 2007 at 15:20:09 (UTC)
Goto Top
Moin,
hatte ein ähnliches Problem, welches ich lösen konnte.
Ich arbeite mit Dreamweaver, welcher bei utf-8 Datein die Option bietet "Unicode-Signatur (BOM) einschließen" (Modifizieren-> Seiteneigenschaften). Dort den Haken weggemacht, und die Leerzeile (erschien bei mir nur im IE) war wech...

Evt. ist dein Prob auf eine ähnliche Einstellung zurückzuführen?

Gruß,
Henrik
Member: Dani
Dani Jul 04, 2007 at 15:26:25 (UTC)
Goto Top
Hi wakko,
also ich habe die Möglichkeit, UTF-8 ohne BOM. So wies aussieht funktionierts nun. Danke dir....Somit wieder ein Problemchen auf meiner Liste gestrichen.


Grüße
Dani