content includen geht auf goneo webspace nicht ?!

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Noxxx
Mitglied
Beiträge: 162
Registriert: 03.09.2005 10:10
Wohnort: Sachsen
Kontaktdaten:

content includen geht auf goneo webspace nicht ?!

Beitrag von Noxxx »

hi ich möchte eine php seite in einer andere Includen, bis jetzt nahm ich dazu immer folgenden Code

Code: Alles auswählen


<?php 
if (isset($_GET['content'])) 
{ 
   $content = $_GET['content']; 
   // Seiten in ein Array packen 
   $inc_files = explode(',', $content); 
    
   foreach ($inc_files as $inc_file) 
   { 
      switch (strtolower($inc_file)) 
      {  
 
case news:       include('news.php'); 
        break; 
case Impressium:       include('impr.php'); 
        break; 
case Kontakt:       include('kontakt.php'); 
        break; 

} 
   } 
} 
else 
{ 
   include('news.php'); 
} 
?>
auf der einen website funktioniert dieser auch tadellos, nun habe ich einen anderen neuen webspace anbieter und da geht der code nichtmehr ? es inludet mir nur die news aber keine anderen

kann mir jemand vielleicht nen typ geben ?
Code Tags zur besseren Übersicht aktiviert//gn#36
http://www.hate-you.ch

Wir Destroyen alles!
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Da ist - was die Funktionsfähigkeit angeht - eigentlich nichts dran auszusetzen, zumindest wenn die Variable auch das enthält was sie soll. Mir fällt allerdings auf, dass du keinen default setzt, so dass - bei fehlerhaftem Variableninhalt - es vorkommen kann, dass du keinen der Fälle bearbeitest und einfach nichts eingebunden wird. ich würde daher zusätzlich noch

Code: Alles auswählen

default:
include('news.php');
oder etwas ähnliches einfügen.
Falls du den Fehler nicht findest als Tipp: Aktiviere mal

Code: Alles auswählen

error_reporting(E_ALL);
Damit solltest du sämtliche PHP Fehler die so im Betrieb auftauchen ausgegeben bekommen, u.a. auch nicht initialisierte Variablen, damit kannst du schon mal Tippfehler oder auch komliziertere Fehler finden.
EDIT: Ich sehe gerade: Da ist ein logischer Fehler drin. Der Rest dürfte eigentlich vorher auch niemals inkludiert worden sein, denn wenn du strtolower auf eine Variable anwendest enthält sie danach nur noch Kleinbuchstaben, deine beiden anderen Cases enthalten aber Großbuchstaben.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Noxxx
Mitglied
Beiträge: 162
Registriert: 03.09.2005 10:10
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Noxxx »

naja jetzt ist es ja so das wenn was fehlerhaftes eingeben wird oder was falsches includet wird dann zieht er ja aufgrund des befehls

else
{
include('news.php');

die news.php. ! Oder Irre ich mich da ?!?!?!? denn das hat bis jetzt immer geklappt !
trtolower auf eine Variable anwendest enthält sie danach nur noch Kleinbuchstaben, deine beiden anderen Cases enthalten aber Großbuchstaben.
???? wie muss ich das da abändern ? und wo setz ich das error_reporting(E_ALL); rein ? oderist das egal ?!
Zuletzt geändert von Noxxx am 01.08.2007 11:51, insgesamt 1-mal geändert.
http://www.hate-you.ch

Wir Destroyen alles!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

KLeiner Denkanstoss:

Was ist wenn im link --> ?content=blabla drinsteht ?
Dann wird Deine "news.php" nicht included ;-)
Noxxx
Mitglied
Beiträge: 162
Registriert: 03.09.2005 10:10
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Noxxx »

also muss der code jetzt dann so aussehen ?!

<?php
if (isset($_GET['content']))
error_reporting(E_ALL);
{
$content = $_GET['content'];
// Seiten in ein Array packen
$inc_files = explode(',', $content);

foreach ($inc_files as $inc_file)
{
switch (strtolower($inc_file))
{

case news: include('news.php');
break;
case Impressium: include('impr.php');
break;
case Kontakt: include('kontakt.php');
break;

}
}
}
else
{
include('news.php');
}
default:
include('news.php');
?>

aber was nehm ich alternativ zu dem

Code: Alles auswählen

strtolower($inc_file)) 
damit er auch großbuchstaben nimmt ?
http://www.hate-you.ch

Wir Destroyen alles!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Nein, du hast wohl die Switch Anweisung nicht vertsanden...

Code: Alles auswählen

<?php 
if (isset($_GET['content'])) 
{ 
	error_reporting(E_ALL); 
	$content = $_GET['content']; 
	// Seiten in ein Array packen 
	$inc_files = explode(',', $content); 

	foreach ($inc_files as $inc_file) 
	{ 
		switch (strtolower($inc_file)) 
		{ 
		case news: include('news.php'); 
			break; 
		case Impressium: include('impr.php'); 
			break; 
		case Kontakt: include('kontakt.php'); 
			break; 
		default: 
			include('news.php'); 
			break;
		} 
	} 
} 
else 
{ 
	include('news.php'); 
} 

?> 
Zudem schreibe alle Variablen "klein". Mal Groß, mal klein...da blickt im Fehlerfall keiner mehr durch. Genauso bei den File-Namen.

Aber wenn Du es trotztdem möchtest, tausche:

Code: Alles auswählen

(strtolower($inc_file))
mit

Code: Alles auswählen

($inc_file)
aus.
Noxxx
Mitglied
Beiträge: 162
Registriert: 03.09.2005 10:10
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Noxxx »

Vielen Dank :) werde das mal austesten :) :D :D :D :D :D
http://www.hate-you.ch

Wir Destroyen alles!
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Außerdem dran denken: Mache aus "Konktakt" im Switch "kontakt" da du vorher auf die Variable strtolower anwendest. Ein Großbuchstabe wird da niemals rauskommen von daher könntest du auch gleich den ganzen Case weglassen, aber da du das vermutlich nicht willst sondern falls da "Kontakt" steht eben kontakt.php einbinden willst solltest du da besser Kleinbuchstaben draus machen. Analog beim "Impressium" (das schreibt man übrigens eigentlich "Impressum" ;) )
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Noxxx
Mitglied
Beiträge: 162
Registriert: 03.09.2005 10:10
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Noxxx »

ne ich schreib normalerweise eh immer alles klein, aber es gibt halt auch außnahmen.... und es kann ja mal sein das man mal was groß schreibt und sich dann wundert warum es nicht geht, wenn man es allerdings weis dann schreibt man das dann natürlich immer klein :) :o 8)
http://www.hate-you.ch

Wir Destroyen alles!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Strings werden übrigens in ' oder " eingeschlossen.
KB:knigge
Antworten

Zurück zu „Coding & Technik“