Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Kleines Problem mit header LOCATION

Frage Entwicklung PHP

Mitglied: DeeDee0815

DeeDee0815 (Level 1) - Jetzt verbinden

19.01.2006, aktualisiert 23.01.2006, 6268 Aufrufe, 11 Kommentare

Ich möchte auf meiner Seite dafür sorgen, dass wenn man die index.php aufruft automatisch zur index.php?section=startpage weitergeleitet wird. Hier gibt es ein kleines Problem, da der HEADEr schon gesendet wurde...

Hallo,

Ich habe auf meiner Homepage in der index.php folgende Schleifen:

<font class="code"> if(isset($_GET['section'])) {

switch($_GET['section']) {

case "startpage":
include "sections/startpage.php";
break;

case "article":
include "sections/article.php";
break;

case "feature":
include "sections/feature.php";
break;

case "download":
include "sections/download.php";
break;

case "board":
include "sections/board.php";
break;

case "link":
include "sections/link.php";
break;

case "feedback":
include "sections/feedback.php";
break;

case "impress":
include "sections/impress.php";
break;

case "disclaimer":
include "sections/disclaimer.php";
break;

default:
include "sections/error.php";
break;
}

} else {

include "sections/startpage.php";

}</font>

ELSE-Teil unten soll den folgenden Befehl enthalten:

<font class="code">header("LOCATION: index.php?section=startpage");</font>

Was ich bisher gemacht habe, ruf zwar dieselbe Seite auf, ich finde es aber doof wenn in der Adresszeile dann nur 'index.php' steht, und nicht 'index.php?section=startpage".

Was das problem ist, wei� ich schon: Oben in der Datei werden schon einige "ECHOS" gemacht, so ist die Header-Info nicht mehr änderbar, bzw. schon gesendet, bevor PHP "wei�", das diese eingentlich modifiziert werden soll.

Wie kann ich dieses Problemchen beheben?

GruÃ?
DeeDee0815
Mitglied: DeeDee0815
19.01.2006 um 19:26 Uhr
Also ich denke nicht, dass es meine aufgabe ist Umlaute selber in '&auml;' etc. umzuwandeln. Ich denke hier sollten mal die Programmierer dieser Seite etwas entspechendes einbauen. Ich denke es handelt sich um einen temporären Fehler, das war voher auch nicht so.

Gruß
DeeDee0815
Bitte warten ..
Mitglied: filippg
19.01.2006 um 19:48 Uhr
Hallo,

du kannst PHP anweisen, die erzeugten Daten nicht gleich zu senden, sondern erst am Ende des Skripts oder bei einem entsprechenden Befehl. Ergebnis: die Header werden noch nicht gesendet und du kannst sie noch modifizieren. Wie der Befehl heisst weiss ich aus dem Stehgreif auch nicht, aber du wirst ihn in der PHP-Doku sicherlich finden.
Aber ich würde mich gegen die Weiterleitung entscheiden, das braucht ja nur nochmal zusäztliche Zeit.

Filipp
Bitte warten ..
Mitglied: badrulecracker
19.01.2006 um 19:49 Uhr
Hi,

also da gibt es den Weg über das Apache Addon mod rewrite.
Infos: www.modrewrite.de

dein .htaccess file müsste glaube ich etwa so aussehen:

RewriteEngine on
RewriteRule index.php$ index.php?section=startpage


Kleiner Tip für den Programmierstiel:
Mach es doch so, nicht über eine normale switch anweisung, sondern mach ein array mit den dateien als inhalt:

$section = array();
$section['startpage'] = 'sections/startpage.php';
$section['article'] = 'sections/article.php';
$section['feature'] = 'sections/feature.php';

und dann wo du momentan die switch anweisung hast machst du etwa folgendes:

if(isset($_GET['section']) AND isset($section[$_GET['section']]))
{
include $section[$_GET['section']];
}
else
{
include $section['startpage'];
}

Somit brauchst du nur noch für jede weitere Section die du machst einen Eintrag im Array erstellen und nicht mehr im code herumändern...

Ach, übrigens: das ist keine schleife, sondern eine Switch anweisung ;)

mfg, brc
Bitte warten ..
Mitglied: Dani
19.01.2006 um 21:06 Uhr
Warum so kompliziert??

du könntest dies doch so machen:

if(isset($_GET['section']))
{
$modul=$_GET['section'];

include ("sections/".$modul.".php");
}
else
{
include ('sections/startpage.php');
}

So würde ich das machen!!!
Bitte warten ..
Mitglied: DeeDee0815
20.01.2006 um 17:18 Uhr
Danke für den Tipp. Aber das löst leider das Problem nicht.
Bitte warten ..
Mitglied: Dani
20.01.2006 um 17:22 Uhr
Wo sendest du den Header noch??
Bitte warten ..
Mitglied: filippg
20.01.2006 um 17:25 Uhr
Kopie aus der offiziellen PHP-Hilfe (nur die eckigen Klammern sind in wirklichkeit spitz):

Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.


[html]
[?php]
Dies funktioniert nicht. Beachten Sie die
obige Ausgabe noch vor dem header()-Aufruf
header('Location: http://www.example.com/');
?]


Anmerkung: In PHP 4 können Sie dieses Problem umgehen, indem Sie Output Buffering benutzen (mit dem Overhead, dass alle Ihre Ausgaben an den Browser gepuffert werden, bis Sie diese Senden). Um dies zu tun, verwenden Sie in Ihrem Skript ob_start() und ob_end_flush(), oder setzten die Konfigurationsdirektive output_buffering in der php.ini bzw. in den Server Konfigurationsdateien.
Hast du ob_start() mal ausprobiert?

Filipp
Bitte warten ..
Mitglied: DeeDee0815
20.01.2006 um 17:30 Uhr
Danke für die Hilfe. Ob die Weiterleitung nun Zeit kostet oder nicht. Sowas mache ich ja nicht ständig. Und außerdem würde es kaum auffallen. Meine domain verweist ohnehin auf den Parameter. So kostet die Weiterleitung nur die Zeit, die der "Domanserver" benötigt.

EDIT: Ich habe meine Meinung geändert. Vielleicht ist es doch besser keine Weiterleitung zu machen. Denn wer achtet schon auf die Adressleiste....

Gruß
DeeDee0815
Bitte warten ..
Mitglied: Dani
20.01.2006 um 17:33 Uhr
Geht das bei PHP 5 auch??
Bitte warten ..
Mitglied: filippg
20.01.2006 um 17:37 Uhr
Geht das bei PHP 5 auch??
Keine Ahnung, ich habe hier gerade nur die 4er Doku. Und in die Onlinedoku schauen kannst nun wirklich auch selber.

Filipp
Bitte warten ..
Mitglied: DeeDee0815
23.01.2006 um 19:17 Uhr
Ja es geht! Vielen Dank für eure Hilfe.

Gruß
DeeDee0815
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail
Outlook 365 - Header (von - an.) bei Ausdruck plötzlich sehr klein
gelöst Frage von mandragoraOutlook & Mail2 Kommentare

Hallo, Ich habe aktuell ein Problem mit dem Ausdruck von Emails im Memoformat in Outlook 365 Im Header wird ...

Exchange Server
Ungültiger header
Frage von HeinrichMExchange Server2 Kommentare

Hallo zusammen, hier auf einem SBS 2011 gibt es von Zeit zu Zeit Probleme mit dem POP Abruf vom ...

HTML
Webdesign Header
Frage von Snowboarder1994HTML3 Kommentare

Hallo, wer könnte mir bitte helfen folgenden Header zu programmieren, verstehe das nicht ganz mit dem wechseln der Bilder?! ...

Entwicklung
Header Footer im Latex anpassen
gelöst Frage von H41mSh1C0REntwicklung2 Kommentare

Hi@All, Als Dokumentenklasse wird scrreprt benutzt. Aktueller Stand: Das Ergebnis ist auch OK, wenn es auf jeder Seite zu ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 StundenDSL, VDSL

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 2 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 5 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...