kostenloser Webspace werbefrei: lima-city


PHP include $var

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    rupan

    rupan hat kostenlosen Webspace.

    Aloha,

    ich bin erst vor kurzem hier her umgezogen und komischerweise funktioniert seither mein schönes PHP-Templating nicht mehr. Includen geht, doch sobald ich das mit Variablen lösen möchte, bleibts leer. Im Klartext:
    <?php
       if($site=="") { $site="news"; }
       include("$site.php");
       }
    ?>


    Die Variable wir dann gesetzt, indem ich z.B. auf "main.php?site=links" verweise.

    Wo ist das Problem? Wieso wird die Variable durch den Link nicht definiert (echo $site ist leer)?

    Wahrscheinlich liegts an einem einzigen Zeichen, aber ich sehe es gerade nicht; ist auch schon eine Weile her, seit ich das geschrieben habe ^_^ HILFEE und Danke!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Bei Lima werden soweit ich weiß (ich benutze den Webspace nicht),
    kein Getvariablen zu Variablen umgeschrieben.

    Es fehlt einfach ein:
    $site = $_GET["site"];
    vor der if.
  4. s*************h

    Das iste eine geschweifte Klammer zu viel drin müsste dann so aussehen:

    <?php
       if($site=="") { $site="news"; }
       include("$site.php");
    ?>


    Beschreibe aber ncohmal dein Problem genauer!
    Gruß S.Brosch

    Beitrag zuletzt geändert: 18.3.2011 12:27:43 von software-brosch
  5. Autor dieses Themas

    rupan

    rupan hat kostenlosen Webspace.

    @brosch: Klar, danke. Ist mir zum Glück nur bei der Übertragung untergekommen ^_^

    @sneppa: Super, das wars! Vielen Dank :D
  6. Ach und nochwas:

    Bitte validiere vorher, was in der Variable site steht!

    am besten ein Array mit den erlaubten Seiten erstellen und mit in_array() prüfen ob $site enthalten ist,
    ansonsten werden Cracker deine Seite lieben :)
  7. technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    if($site=="") { $site="news"; }
       include("$site.php");


    muss das nicht anders heißen??
    die variable $site.php gibt es nicht...

    <?php
       if($site=="") { $site="news"; }
       include("".$site.".php");
    ?>


    probier das mal aus...

    und in der If-Anweisung fürde ich so prüfen

    if(empty($_GET['site'])...


    wenn site eine Getvariable ist... ich glaube nämlich auch , dass Lima Global_Registers aus hat
  8. Autor dieses Themas

    rupan

    rupan hat kostenlosen Webspace.

    Oh, ich hatte schonmal von der Gefahr gehört. Aber erlaubt mein Quellcode nicht sowieso nur Dateien, die auf .php enden, und somit kann man nur mit den vorhandenen PHP-Dateien Schabernack treiben?

    Ich werde aber auf jeden Fall die Vorkehrung treffen, schon alleine, um die Möglichkeit auszuschließen, dass mit dem include-Befehl die aufrufende Datei integriert wird. Ein Test resultierte gerade in einer.... naja, sagen wir ENDLOSschleife ^_^

    Also einfach ein Array mit den möglichen Werten initialisieren und die Variable mit den Einträgen vergleichen? Hätte das jetzt mit einer While-Schleife gemacht, aber gibts nicht eine Abfrage wie "if (x Element von y[])"?

    @technofan: zum 1.: Nein, wenn ich Anführungszeichen mache, dann wird auch der Code innendrin compiliert und die Variable durch ihren Wert ersetzt ;)
    Deine if-Anweisung sieht schön aus, nur, wenn ich später der Variable den Wert über $_GET zuweisen möchte, geht das zweimal? Oder kann ich den Wert nur einmal "abholen"?
  9. technofan schrieb:
    muss das nicht anders heißen??
    die variable $site.php gibt es nicht...

    PHP interpretiert die Variable $site nicht $seite.php; Variablen mit Punkten gibt es nicht, bzw. sollte es nicht geben ;)

    technofan schrieb:
    wenn site eine Getvariable ist... ich glaube nämlich auch , dass Lima Global_Registers aus hat

    richtig.

    rupan schrieb ja schon das es funktioniert

    rupan schrieb:
    Oh, ich hatte schonmal von der Gefahr gehört. Aber erlaubt mein Quellcode nicht sowieso nur Dateien, die auf .php enden, und somit kann man nur mit den vorhandenen PHP-Dateien Schabernack treiben?

    Nein, es kann auch umgangen werden

    rupan schrieb:
    Ich werde aber auf jeden Fall die Vorkehrung treffen, schon alleine, um die Möglichkeit auszuschließen, dass mit dem include-Befehl die aufrufende Datei integriert wird. Ein Test resultierte gerade in einer.... naja, sagen wir ENDLOSschleife ^_^
    Also einfach ein Array mit den möglichen Werten initialisieren und die Variable mit den Einträgen vergleichen? Hätte das jetzt mit einer While-Schleife gemacht, aber gibts nicht eine Abfrage wie "if (x Element von y[])"?

    wie ich bereits schrieb:
    sneppa schrieb:
    und mit in_array() prüfen ob $site enthalten ist


    rupan schrieb:
    @technofan: zum 1.: [...]
    Deine if-Anweisung sieht schön aus, nur, wenn ich später der Variable den Wert über $_GET zuweisen möchte, geht das zweimal? Oder kann ich den Wert nur einmal "abholen"?

    $_GET ist eine ganz normale Variable und kann normal genutzt werden.
    Ich würde aber dazu raten, die Variable in $site zu schreiben, IMHO die schönere und übersichtlichere Variante.


    Beitrag zuletzt geändert: 18.3.2011 12:56:33 von sneppa
  10. technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    die Getvariable ist im text eine ganz normale Variable wie $site auch, du kannst den Wert so oft abholen wie du willst bis du ihn überschreibst. Man kann Getvariablen also auch so füllen $_GET['blah'] = "test";
    also ganz normal... und zur Sache mit dem beliebigen einbinden einer Datei... prüf noch mit if(file_exist("Datei")) ob die Datei auch vorhanden ist, das bringt wieder etwas Sicherheit.
  11. gegen-den-fluss

    gegen-den-fluss hat kostenlosen Webspace.

    @ rupan
    <?php
    if($site=="") {
    $site="news";
    include($site.".php");
    }
    ?>
    so wärs dann richtig^^
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!