Anzeige

PHP Problem

PHP Problem | PSD-Tutorials.de

Erstellt von Christian, 12.05.2005.

  1. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    PHP Problem
    Ich habe folgende Frage:
    Code (Text):
    1. <?php
    2. switch ($action) {
    3.  case "members":
    4.   if ($id == "")
    5.    {include ("members_uebersicht.php");}
    6.   else
    7.    {include ("$id.php");}; break;
    8. case "blub": include ("wasweisich.php"); break;
    9. ?>
    10.  
    Ich möchte die Datei mit dem Namen der Variable $id öffnen, aber der zeigt mir einen Fehler an... kann mir jemand helfen?
     
    #1      
  2. Mway

    Mway Aktives Mitglied

    Dabei seit:
    20.04.2005
    Beiträge:
    1.435
    Geschlecht:
    männlich
    Ort:
    Hirrlingen
    Software:
    Adobe Design Premium CS 5.5 / Lightroom
    Kameratyp:
    Canon 600D
    PHP Problem
    ich bin kein PHP Spezialist ehr ein Leihe aber das == ist doch die Vergleichoperaiton und du vergleichst ja nichts

    ich denke die so müsste es vielleicht gehen

    somit müsste es jetzt eine zuweisung sein

    Ich hoffe ich erzähle hier keinen Sche..
     
    #2      
  3. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    PHP Problem
    Nein das Problem liegt hier:
    {include ("$id.php");}; break;
    ich kann keine Variable $id.php öffnen.
    das if id == "" stimmt schon.
     
    #3      
  4. TRex2003

    TRex2003 Hat es drauf

    Dabei seit:
    15.04.2004
    Beiträge:
    2.582
    Geschlecht:
    männlich
    Software:
    vi :P
    PHP Problem
    ich kann zwar kein php, aber sollte das nich
    {include ($id".php");}; break;

    heißen? oder so ähnlich? in vb (das hab ich vor längerem mal angefanegn zu lernen) würde ich das (variable & ".php") schreiben...
     
    #4      
  5. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    PHP Problem
    Ich habs rausgefunden:
    ich muss
    Code (Text):
    1. include ($id.".php");
    schreiben, da man bei php, wenn man mehrere strings zusammenfassen will, $Variable. schreiben muss.
     
    #5      
  6. UzumakiNaruto

    UzumakiNaruto Fach*****

    Dabei seit:
    12.11.2004
    Beiträge:
    91
    Geschlecht:
    männlich
    Ort:
    Konoha (Hannover)
    PHP Problem
    lass das aber mit dem case.

    nimm lieber

    Code (Text):
    1.  
    2. <?php
    3. if ($action == "")
    4. {
    5.  
    6. } else {  
    7.    if (file_exists("$action.".php"))
    8.    {      
    9.       include("$action.php");
    10.    } elseif (file_exists($action.".htm"))
    11.       {
    12.          include ("$action.htm");
    13.       }
    14.    }
    15. }
    16. ?>
    17.  
    18. der code ist ein wenig inteligenter
    19.  
    index,php?action=main/link>links</a> = include die datei im ordner main, die datei links.php
    [/b]
     
    #6      
  7. d3395

    d3395 Noch nicht viel geschrieben

    Dabei seit:
    21.04.2005
    Beiträge:
    2
    PHP Problem
    Ich habe mal den Vorschlag von UzumakiNaruto etwas abgeändert, damit nicht über das abändern der URL index.php?action=../../../xyz nicht jede gewünschte Datei angezeigt werden kann.

    Hat etwas mit Sicherheit zu tun :wink:

    Code (Text):
    1.  
    2. <?php
    3. if ($_GET['action'] == "") {
    4.    
    5. } else {
    6.     $pfad = "/"; // Hier den Pfad zu dem Verzeichniss angeben, wo die Dateien liegen
    7.     $file = explode("/", $_GET['action']);
    8.     $file = $pfad.$file[count($file)-1];  
    9.     if (file_exists($file.".php")) {        
    10.         include($file.".php");
    11.     } elseif (file_exists($file.".htm")) {
    12.          include ($file.".htm");
    13.     }
    14. }
    15. ?>
    16.  
    So long...
    d3395
     
    #7      
  8. UzumakiNaruto

    UzumakiNaruto Fach*****

    Dabei seit:
    12.11.2004
    Beiträge:
    91
    Geschlecht:
    männlich
    Ort:
    Konoha (Hannover)
    PHP Problem
    warum ich das so mache hat einen grund um auf dem server auch ordnung zu haben

    Bsp. (von meiner hp)

    index.php?action=about/links
    index.php?action=info=waffen

    so habe ich die möglichkeit einzele dateien aus VERSCHIEDENE ordner aufzurufen und änder dann es lieber so, wenn die datei gar nicht existiert, so includiere sonst/fehler.php

    und es ist nicht mögliche externe dateien zu öffnen

    bye Uzu
     
    #8      
  9. d3395

    d3395 Noch nicht viel geschrieben

    Dabei seit:
    21.04.2005
    Beiträge:
    2
    PHP Problem
    Okay.
    Du möchtest also Ordnung auf Deinem Server haben. Das wiederspricht aber nicht einem gewissen Sicherheitsgedanken.

    Ich habe das Skript noch einmal geändert, so dass es Deinen Bedürfnissen für die Ordner nachkommt und trotzdem noch sicher ist.

    Code (Text):
    1. <?php
    2. $file = array('sonst/fehler.php', 'about/links.php', 'info/waffen.php');
    3. if ((isset($_GET['action'])) AND ($_GET['action'] != "")) {
    4.    if (file_exists($file[$_GET['action']])) {        
    5.       include($file[$_GET['action']]);
    6.    } else {
    7.       include ($file[0]);
    8.    }
    9. } else {
    10.  
    11. }
    12. ?>
    Das Skript hat sogar den Vorteil, dass du die Liste mit den erlaubten Seiten in einer Datenbank ablegen könntest.

    Gruß
    d3395
     
    #9      
  10. UzumakiNaruto

    UzumakiNaruto Fach*****

    Dabei seit:
    12.11.2004
    Beiträge:
    91
    Geschlecht:
    männlich
    Ort:
    Konoha (Hannover)
    PHP Problem
    sorry d3395, aber ich bleibe dabei, den auf meinem server ist das sicher und ich habe nicht vor über 100 links in ein array zu schreiben sonst das dynamisch zu generieren

    was mich interessieren würde, wäre was den an meinem script so unsicher ist?

    Code (Text):
    1. <?php
    2. if ($action != "")
    3. {
    4.    if (file_exists("$action.".php"))
    5.    {      
    6.       include("$action.php");
    7.    } elseif (file_exists($action.".htm"))
    8.    {
    9.       include ("$action.htm");
    10.    } else {
    11.       include ("sonst/fehler.php");
    12.    }
    13. }
    14.  
    15. so kann nur ads includiert werden, das auch auf dem server ist und auch nur htm und php dateien
    16. ?>
     
    #10      
x
×
×
teststefan