ahralordnikon
Goto Top

Php include öffnet bei firefox eine neue Seite

Hallo alle zusammen.

Nach langer suche poste ich jetzt hier, hab leider keine hilfe im inet gefunden. Ich habe ein Problem mit dem PHP include. Ich sollte gleich mal sagen das ich mit PHP bisher nicht so viel zu tun hatte ;).

Es geht um folgendes:

Ich habe eine Seite mit der Rubrik Video. Video hat unten ein Menü und oben einen <div> bereich für inhalt (wir nennen ihn mal content_main). Mit php include wird in content_main eine Video_main Seite geladen. Auf dieser Video_main Seite
gibt es ein Menü rechts in dem man einzelne Videos laden kann. Später soll mal (wenn genug videos da sind) mehrere Video_mains geben für einzelne Videogruppen die über die Hauptseite Video geöffnet werden. Auf der Video_main Seite
gibt es ebenfalls einen <div> bereich in dem Content geladen werden kann (die eigentlich Videos). Dieser Bereich wird gefüllt wenn man rechts in dem menü auf einen Link klickt. Beim Laden der Seite (video_main) wird der Content mit
einer Seite geladen die Video_welcome heißt. Klickt man jetzt auf einen Link rechts im menü um ein Video anzuzeigen öffnet sich ein neuer Tab. Das Gilt allerdings nur für den ersten klick, danach funktioniert alles. Das Ganze ist auch begrenz auf
den Firefox. Im IE geht es. Schaut euch einfach die Seite an dann ist es verständlicher

www.bilderpol.de und dann Rubrik Video

Hier mal der Code der Video Hauptseite
<?php
					include_once('config.php');  
					if(isset($_GET['section']) AND isset($dateien[$_GET['section']]))  
					{
					 //Ist eine $_GET Variable vorhanden wird PHP angewiesen 
					 //zu prüfen ob die Datei existiert und diese dann zu laden
					 
					 if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";  

					 include $dateien[$_GET['section']];   
					}
					else
					{
					 //Wenn keine Variable oder Definition vorhanden ist
					 //lade die Fehlerseite bzw. die Indexseite
					 include $dateien['video_home'];   
					}
					?> 
hier der Code der video_main
<?php
					//inhalt.php
					include_once('config.php');  

					if(isset($_GET['s']) AND isset($dateien[$_GET['s']]))  
					{
					 //Ist eine $_GET Variable vorhanden wird PHP angewiesen 
					 //zu prüfen ob die Datei existiert und diese dann zu laden
					 
					 if(!file_exists($dateien[$_GET['s']])) echo "Die Datei ist nicht vorhanden.";  

					 include_once $dateien[$_GET['s']];   
					}
					else
					{
					 //Wenn keine Variable oder Definition vorhanden ist
					 //lade die Fehlerseite bzw. die Indexseite
					 include_once $dateien['video_welcome'];   
					}
					?> 
		 

meine config.php
$dateien['v1'] = "video_v1.shtml";  
$dateien['video_welcome'] = "video_welcome.shtml";  
$dateien['video_home'] = "video_main.php";  
Ich hoffe ich versteht was ich meine ;). Falls jemand hier weiß warum Firefox ein neuen Tab öffnet währe ich echt dankbar....

ps: ;) ich meine Natürlich "Ich hoffe ihr versteht was ich meine"
Kommentar vom Moderator masterG am 10.10.2010 um 09:31:56 Uhr
Bitte das nächste mal die Formatierungshilfe durchlesen.

Content-ID: 152681

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

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

meight
meight 09.10.2010 um 12:44:17 Uhr
Goto Top
hast dus schon mal über "direkte" varaiblen versucht?

also nicht
$dateien['video_home'] = "video_main.php";  
sonder
$video_home = "video_main.php";  
und dann in den anderen dateien statt
include $dateien['video_home'];   
einfach
include $video_home; 

oder, wenn dus trotzdem so machen möchtest wie in deinem beispiel versucht mal in der config.php datei folgendes:
<?php
$dateien = array(	"v1" => "video_v1.shtml",  
					"'video_welcome" => "video_welcome.shtml",  
					"video_home" => "video_main.php");  
?>
AhraLordNikon
AhraLordNikon 09.10.2010 um 12:59:57 Uhr
Goto Top
Danke erstmal, hätte die komplett posten sollen also meine config sieht so aus
<?php
//config.php

$dateien = array();
$dateien['video_home'] = "video_main.php";   
$dateien['video_welcome'] = "video_welcome.shtml";  
$dateien['v1'] = "video_v1.shtml";  
$dateien['v2'] = "video_v2.shtml";  
$dateien['v3'] = "video_v3.shtml";  

?> 
hab es jetzt auch mal mit folgendem versucht:
<?php 

$dateien = array(	  "video_home" => "video_main.php",                 
              "video_welcome" => "video_welcome.shtml",          
             "v1" => "video_v1.shtml",  
             "v2" => "video_v2.shtml",  
            "v3" => "video_v3.shtml");  
?>
ändert aber nichts. Allso wie gesagt unter IE8 geht es ja
AhraLordNikon
AhraLordNikon 09.10.2010 um 14:24:56 Uhr
Goto Top
Wie muss den der link aussehen?

mein link lautet: "<a href="video.php?section=video_main&s=v1" >"

wobei section der include bereich von der hauptseite ist und s der include bereich von der video_main
Guenni
Guenni 09.10.2010 um 16:50:29 Uhr
Goto Top
Hi AhraLordNikon,

1. Hast du schonmal daran gedacht, dass dies eine Eigenschaft von FireFox sein könnte?

2. Hast du dir mal den Quelltext von bilderpol.de/video.php im Browser angesehen?

Durch deine includierten Seiten hast du mehrere verschachtelte *html, head, body Tags* sowie

mehrere DOC-Type Deklarationen. Includierte Seiten enhalten auschließlich den Inhalt zwischen

den Body-Tags und sonst nichts, noch nicht mal die Body-Tags selber.

3. In einer includierten Seite steht <base target="people_inline"> als Ziel. Hast du ein Frameset,

das einen Frame dieses Namens enthält? Es wird, je nach Browser, immer eine neue Seite geöffnet,

wenn ein Ziel fehlerhaft geschrieben wird bzw. nicht vorhanden ist(War jedenfalls früher so).


Gruß
Günni
AhraLordNikon
AhraLordNikon 09.10.2010 um 19:48:11 Uhr
Goto Top
Vielen dank, hast mir echt weitergeholfen ;)

hab die ganzen html tags (also body und so) weg. dann gings ;)

ps: hab die seite vorher mit inline frames gehabt, das mit <base target="people_inline"> ist noch ein überbleibsel....

nochmal danke