tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
352
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    trekmaster trekmaster ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    Hallo!

    Ich habe eine Seite namens index.php erstellt und folgenden Code in den Links eingefügt:
    --------------------------------
    <a href="./index.php?contentid=main" target="_parent">Startseite</a>
    <a href="./index.php?contentid=impressum" target="_parent">Impressum</a>
    --------------------------

    Hier ist das div-tag, in das die zwei externen Files namens impress.php und main.php, die oben mit den Variablen "impressum" und "main" deklariert wurden, included werden sollen:
    ----------------------------------
    <div style="width:650px; height:435px;">

    <?php
    if($contentid=="")
    {include("./main.php");}
    if($contentid=="main")
    {include("./main.php");}
    if($contentid=="impressum")
    {include("./impress.php");}
    ?>

    </div>
    ----------------------------------

    Der Haken an der Sache ist, dass der Vorgang nur online funktioniert. Auf meinem lokal installierten Apache 1.3 Server hingegen wird zwar die Startseite (main) geladen, jedoch passiert beim Klick auf Impressum gar nichts, selbst, wenn ich den Link in einem neuen Fenster öffnen lasse, erscheint nur wieder die Startseite wie beim normalen Aufruf von index.php. Hat jemand eine Ahnung, was da falsch läuft!?
     

  2. #2
    Avatar von metty
    metty metty ist offline Mitglied Brokat
    Registriert seit
    Jul 2004
    Ort
    Köln
    Beiträge
    323
    nehm doch ne switch case anweisung

    switch

    damit müsste es auf jeden fall gehen!
     
    Servus!

  3. #3
    Avatar von metty
    metty metty ist offline Mitglied Brokat
    Registriert seit
    Jul 2004
    Ort
    Köln
    Beiträge
    323
    ach und verwende nicht

    PHP-Code:
    $contentid 
    sondern

    PHP-Code:
    $_GET['contentid'
     
    Servus!

  4. #4
    trekmaster trekmaster ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    Original geschrieben von kniedel
    ach und verwende nicht

    PHP-Code:
    $contentid 
    sondern

    PHP-Code:
    $_GET['contentid'

    Ok, wo müsste ich das denn rein theoretisch in meinem Code-Beispiel einsetzen!? Sähe das so z.B. aus: $contentid=$_GET['impressum']. An welche Stelle käme das?
    Im übrigen habe ich das Problem auf andere Art gelöst. Man muss in der "php.ini" den Eintrag "register_globals" auf "On" setzen. Dieser war bei mir auf "Off" gesetzt. Das erklärt wohl auch, warum es online und nicht lokal bei mir auf dem Rechner funktioniert hat. Mein Code ist soweit also in Ordnung. Wäre trotzdem schön, wenn wir das mit dem GET noch schnell lösen könnten.
     

  5. #5
    Avatar von lambda
    lambda lambda ist offline Mitglied Brokat
    Registriert seit
    Dec 2001
    Beiträge
    303
    Da hat aber einer das Prinzip noch nicht verstanden.

    Wenn du register_globals auf on setzt, wird unter anderen für jede deiner Werte, die du über www.foo.com?value=abc an deine Seite übergibst eine Variable angelegt: $value

    Ist es auf off, musst du sie über $_GET["value"] ansprechen. $_GET stell also deinen Query-String dar.

    Wenn in deinem Fall, die Variable $contentid bei register_globals=on verfügbar ist, wie muss man denn dann dein $_GET-Array indizieren?

     
    Lambda - Unos, dos, tres, catorce...

  6. #6
    Lukasz Tutorials.de Gastzugang
    Versuche es mal so
    Achtun das ./ ist ? Versuch mal ../

    PHP-Code:
    <?php

    if (file_exists("./$contentid")) 
    { include (
    "./$contentid") }
    if(
    $contentid==FALSE)
    { include(
    "./main.php"); }


    ?>
     

  7. #7
    trekmaster trekmaster ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    Tja, jetzt hat man mir gesagt, dass das mit dem register_global="On" absoluter Murks ist und lediglich schlechten Code verarbeiten soll, gar ein Sicherheitsrisiko darstellt! Was ist dran?

    Hättet Ihr noch ein konkretes Beispiel speziell mit $_GET? Das wird mir von allen Seiten vorgeschlagen.
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Register globals:On ist ein Sicherheitsrisiko, weil du nie weisst, woher eine Variable kommt.

    Stell dir vor, eine login.php.....Abfrage nach Benutzername und Passwort:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    if($name='richtigerName'&&$pass='richtigerPass')
    {
    $eingelocht=true;
    }
     
    if(isset($eingelocht))
    {
    echo 'Wieviel Geld möchten Sie überweisen?';
    }
    Ich bräuchte nur login.php?eingelocht=blabla aufrufen.....und wäre drinnen.

    Du wirst jetzt sagen....so einen Quatsch macht doch keiner...aber bist du sicher, dass alle deine Skripte dagegen abgesichert sind? Ich würde bei mir nicht drauf wetten
     

  9. #9
    Avatar von metty
    metty metty ist offline Mitglied Brokat
    Registriert seit
    Jul 2004
    Ort
    Köln
    Beiträge
    323
    genau, register globals sollten lieber aus bleiben
    aber nun nochmal zur erklärung:
    PHP-Code:

    switch ($_GET['contentid']) {
        case 
    "main": include("./main.html"); break;
        case 
    "impressum": include("./impressum.html"); break;
        default: include(
    "./main.php"); break;

    Ein Link zum Impressum sieht dann so aus:
    Code :
    1
    
    http://www.deineseite.de/index.php?contentid=impressum

    wobei default eingesetzt wird wenn deine $_GET['contentid'] nix beinhaltet.
     
    Servus!

  10. #10
    trekmaster trekmaster ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    Dann mal schönen Dank an alle!
     

Ähnliche Themen

  1. Röhrenbildschirm versagt bei Hitze?
    Von timestamp im Forum Hardware
    Antworten: 4
    Letzter Beitrag: 03.07.10, 12:36
  2. Navigation versagt...
    Von Lyn555 im Forum Flash Plattform
    Antworten: 6
    Letzter Beitrag: 20.09.06, 20:51
  3. Laptop versagt bei 3D Mark 2006
    Von TimN im Forum Hardware
    Antworten: 2
    Letzter Beitrag: 27.02.06, 12:43
  4. SWF in SWF - Steuerung im geladenen Film Versagt
    Von Scholli2005 im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 11.07.05, 04:11
  5. utf8_encode versagt bei " ?
    Von frank manischewski im Forum PHP
    Antworten: 2
    Letzter Beitrag: 24.02.04, 22:18