mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 10:49 Benutzername: Passwort: Auto-Login

Thema: Problem mit dem php switch vom 03.01.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Problem mit dem php switch
Seite: 1, 2, 3  Weiter
Autor Nachricht
LausitzDesignor
Threadersteller

Dabei seit: 03.01.2009
Ort: Sollschwitz
Alter: -
Geschlecht: Männlich
Verfasst Sa 03.01.2009 17:59
Titel

Problem mit dem php switch

Antworten mit Zitat Zum Seitenanfang

Auf dieser seite habe ich das Problem. Auf dem Webspace funktionierte es nur auf dem server auf einmal nicht. Was kann das sein?

http://www.lausitz-designor.de

Das steht bei mir im Quelltext der Seite.

Code:
<?php

$path="./";

$dir=opendir ($path);

$file_array = array();



while ($file=readdir($dir))

{

    if (filetype($path.$file)!="dir")

    {

        $file_array[basename($file,".php")] = $file;

    }

}

closedir($dir);



function getInclude($file_key,$files_array,$error_file="404.php") {

   if(isset($files_array[$file_key])) {

      return $files_array[$file_key];

   }

   else {

      return $error_file;

   }

}





if(isset($_GET['action'])) {

   include (getInclude($_GET['action'],$file_array));

}

else {

   include("service.php");

}



?>


Die einzelnen Links rufe ich wie folgt auf

Code:
<a href="index.php?action=kontakt"><img src="grafiken/menue_12.png" alt="Kontakt" width="54" height="38" border="0"></a>


Wäre klasse wenn jemand wüßte woran der Fehler liegt. Naja auf der alten Seite lief alles reibungslos nur auf einmal geht es hier nicht mehr. * Ich geb auf... *

Oder hat jemand eventuell eine bessere lösung um einen switch zu realisieren? Immerhin sollte es schnell gehen sicher sein und es muss mein formular weiterhin funktionieren. daher wäre ich erst einmal interessiert wiso mein script nicht mehr will. *Schnief*
  View user's profile Private Nachricht senden
LausitzDesignor
Threadersteller

Dabei seit: 03.01.2009
Ort: Sollschwitz
Alter: -
Geschlecht: Männlich
Verfasst Sa 03.01.2009 19:32
Titel

Antworten mit Zitat Zum Seitenanfang

Habe gerade festgestellt das wenn ich den code:

Code:
<?php

$path="./";

$dir=opendir ($path);


zu diesen ändere das es teils geht

Code:
<?php

$path="sites/";

$dir=opendir ($path);


nur wenn ich im hauptordner z.b. die referenzen lösche zeigt er sie nicht mehr an. und wenn ich sie aus den files/ ordner rausnehme geht es auch nicht. Kann ja die dateien nicht alle doppelt haben. *Schnief*


Zuletzt bearbeitet von LausitzDesignor am So 04.01.2009 13:16, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Sa 03.01.2009 21:15
Titel

Antworten mit Zitat Zum Seitenanfang

wo genau liegt denn überhaupt der fehler?

du hast grade übrigens 2 mal das selbe snippet gepostet *zwinker*


Zuletzt bearbeitet von Pixelpole am Sa 03.01.2009 21:15, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
LausitzDesignor
Threadersteller

Dabei seit: 03.01.2009
Ort: Sollschwitz
Alter: -
Geschlecht: Männlich
Verfasst Sa 03.01.2009 23:18
Titel

Antworten mit Zitat Zum Seitenanfang

wen ich den pfad von
Code:
./
zu
Code:
sites/
ädere geht es aber nur dann wenn ich die zu switchenden dateien in den sites ordner packe.

Habe also zum Beispiel referenzen.php in dem Hauptordner des FTP und eine direkte kopie referenzen.php in den ordner sites.

Jetzt kann ich die seite aufrufen undv referenzen.php wird in die seite eingebunden. Nehme ich jedoch die referenzen.php aus dem root (hauptordner) raus zeigt es sie auch nicht an auch wenn sie im sites ordner ist. Also ich finde das seltsam es sieht so aus als ob der switch auf dem server jetzt die daten doppelt braucht.

Hat da jemand einen lösungsvorschlag?

Oder eventuell eine andere sichere möglichkeit den switch einzubauen? Ich suchte eben ein switch wo ich nicht jede einzelne datei definiren muss wegen den einbau anderer skripte. Daher war es so eine gute lösung.

Den jetzigen code habe ich auch hier aus dem forum damals mit einen anderen nick erhalten und damals auf dem webspace lief er ja auch nur eben jetzt auf dem server nicht.
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 04.01.2009 12:18
Titel

Antworten mit Zitat Zum Seitenanfang

Nordhesse28 hat geschrieben:
hat den da keiner eine lösung für? *Schnief*


Ich hab bis jetzt immernoch nicht genau verstanden was du nun mit dem Switch erreichen willst. beschreib das mal kurz, dann wird einiges klarer.

Und bitte erwarte nicht, dass nach gerade mal ein paar Stunden schon die Lösung unbedingt da steht. Thread Pushing ist zudem auch verboten (also Doppelposts). Unterlass das bitte zukünftig!


Gruß
Smooth-Graphics
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
LausitzDesignor
Threadersteller

Dabei seit: 03.01.2009
Ort: Sollschwitz
Alter: -
Geschlecht: Männlich
Verfasst So 04.01.2009 13:15
Titel

Antworten mit Zitat Zum Seitenanfang

Hää sehr Interessant also das ist ein Doppelpost. Ist mir ja mal was ganz neues. Für mich sieht es eher aus wie den ersten Post erweitert. Wusste garnicht das wir hier in einem Warezboard sind.

Jetzt mal ab zum Thema habe Dateien referenz.php die liegt im Root. Soweit klar? Root ist da wo auch die Index.php liegt. So rufe ich die Datei auf kommt der Fehler 4.4.php. der mag den Pfad ./ nicht. SIEHE OBEN!
lege ich jetzt den ordner sites an, jawohl auch im root, richtig! und packe dort die referenz.php rein dan kann ich die seite also die referenz.php aufrufen.

lösche ich die referenz.ph aus dem root raus dann zeigt er sie nicht an obwohl sie im ordner sites drin ist.

Aha also die referenz muss im root und im ordner sites liegen dann geht es ist entweder die im rrot weg oder die im sites ordner geht es schon wieder nicht.

+ grafiken
> grafik.jpg
+ bilder
> logo.gif
> header.gif
+ dateien
> dateidemo.zip
index.php
referenz.php
+sites
> referenz.php
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst So 04.01.2009 13:53
Titel

Antworten mit Zitat Zum Seitenanfang

Nordhesse28 hat geschrieben:
Hää sehr Interessant also das ist ein Doppelpost. Ist mir ja mal was ganz neues. Für mich sieht es eher aus wie den ersten Post erweitert. Wusste garnicht das wir hier in einem Warezboard sind.


da du neu bist, will ich es mal nett ausdrücken. doppelpost heißt: zwei posts vom selben user nacheinander... und diese einfache definition mit warez gleichzusetzen, macht dich sicher nicht beliebt. bitte benutz also, wie in fast jedem forum üblich und die regel den edit-button!! danke!

Nordhesse28 hat geschrieben:
Jetzt mal ab zum Thema habe Dateien referenz.php die liegt im Root. Soweit klar? Root ist da wo auch die Index.php liegt. So rufe ich die Datei auf kommt der Fehler 4.4.php. der mag den Pfad ./ nicht. SIEHE OBEN!
lege ich jetzt den ordner sites an, jawohl auch im root, richtig! und packe dort die referenz.php rein dan kann ich die seite also die referenz.php aufrufen.

lösche ich die referenz.ph aus dem root raus dann zeigt er sie nicht an obwohl sie im ordner sites drin ist.

Aha also die referenz muss im root und im ordner sites liegen dann geht es ist entweder die im rrot weg oder die im sites ordner geht es schon wieder nicht.

+ grafiken
> grafik.jpg
+ bilder
> logo.gif
> header.gif
+ dateien
> dateidemo.zip
index.php
referenz.php
+sites
> referenz.php


zum sachlichen (und dabei bleiben wir ab jetzt bitte auch). dein problem scheint die einstellung des roots zu sein. evtl. in der httpd.conf (virtualHost) des servers...

dass ./root nicht zwingend dein hauptverzeichnis sein muss, kannst du schnell im netz finden (je nach server-os und einstellung).

dass es klappt, wenn die einstellung

Code:

sites/


lautet, hat nichts damit zu tun, ob du im root oder im 12ten unterordner bist. denn diese sagt nur, dass vom aktuellen verzeichnis (egal wo es liegt) aus das verzeichnis "sites" gesucht und genutzt werden soll.

also überprüf mal deine einstellungen bezgl. root-verzeichnis. da liegt wahrscheinlich das problem


Zuletzt bearbeitet von pixelpapst303 am So 04.01.2009 13:57, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
LausitzDesignor
Threadersteller

Dabei seit: 03.01.2009
Ort: Sollschwitz
Alter: -
Geschlecht: Männlich
Verfasst So 04.01.2009 14:52
Titel

Antworten mit Zitat Zum Seitenanfang

Ich suche einen php switch der erstens funktioniert und zweitens sicher ist. Kann mir da jemand helfen?

Ich habe einen gehabt der auf meinem Webspace funktionierte aber nach dem Umzug auf den Server will er nicht so richtig.

Zum Theme ich habe in meinem Ordner wo die Webseite liegt folgende Struktur:

+ Bilder
+ Grafiken
+ Downloads
- index.php
- seite.php
- partner.php

In der index.php ist der switch der bei aufruf von: [PHP]index.php?action=partner[/PHP] die seite partner.php includen soll. Das hat ja auf dem Webspace auch funktioniert.

Auf dem Server habe ich jetzt das Problem das da was nicht stimmt oder nicht funktioniert. Ich mußte die Struktur wie folgt ändern:

+ Bilder
+ Grafiken
+ Downloads
+ sites
- index.php
- seite.php
- partner.php

In den Ordner sites muss die partner.php rein dann funktioniert der switch. Also habe ich die partner.php einmal im hauptverzeichniss und ein weiteres mal im Ordner sites.

Aber doppelt ist ja doof eigendlich also lösche ich die partner.php aus dem hauptverzeichnis raus. Und siehe da es geht auf einmal nicht mehr.
Mir kommt es echt komisch vor das wenn ich partner.php in beiden verzeichnissen habe geht es aber sobald ich es aus einem anderen rausnehme geht es schon nicht mehr.

Die variable
Code:
$path="sites/";

war auf dem Webspace so
Code:
$path="./";

Nur so funktioniert die eben wie gesagt nicht mehr.

Kann mir jemand sagen woran das liegt? Ich suche doch nur ein switch der sicher ist, wo ich nicht jeden dateinamen einzeln definieren b.z.w. angeben muss. Hat da jemand eine Lösung wie ich das Problem in den Griff bekomme oder eventuell eine bessere Möglichkeit?

Hier nochmal mein Code:

Code:
<?php

$path="sites/";

$dir=opendir ($path);

$file_array = array();



while ($file=readdir($dir))

{

    if (filetype($path.$file)!="dir")

    {

        $file_array[basename($file,".php")] = $file;

    }

}

closedir($dir);



function getInclude($file_key,$files_array,$error_file="404.php") {

   if(isset($files_array[$file_key])) {

      return $files_array[$file_key];

   }

   else {

      return $error_file;

   }

}





if(isset($_GET['action'])) {

   include (getInclude($_GET['action'],$file_array));

}

else {

   include("service.php");

}



?>


Zuletzt bearbeitet von LausitzDesignor am So 04.01.2009 16:09, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen PHP Problem mit SWITCH-Befehl
Include Switch Problem
PHP "switch-case"-Problem
css switch
Switch Case?
Fehler im php switch
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.