• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem beim sicheren includen

Status
Für weitere Antworten geschlossen.

Ritschie

Neues Mitglied
Hi

Ich habe ein kleines Problem mit meinem include script.

Und zwar möchte ich auf meiner HP werbung einfügen.
Um nicht jedes mal den Quellcode ändern zu müssen wenn ich Werbung einfüge möchte ich das mit der include funktion von PHP machen hab mich auch schon ein wenig dazu belesen und folgendes einmal zusammen gestellt:

PHP:
<?php
$einbinden = array(
             'werbung' => 'werbung/werbung.html',
             'werbung1' => '',
             'werbung2' => '',
             'werbung3' => ''
             );
?>

//Die Seite//

<?php 
    
        if ($einbinden[$_GET['werbung']] != "")
        {
        include ($einbinden[$_GET['werbung']]);
        }
        else {
        echo ("Da is nix");
        };
        
        if ($einbinden[$_GET['werbung1']] != "")
        {
        include ($einbinden[$_GET['werbung1']]);
        };

        if ($einbinden[$_GET['werbung2']] != "")
        {
        include ($einbinden[$_GET['werbung2']]);
        };

        if ($einbinden[$_GET['werbung3']] != "")
        {
        include ($einbinden[$_GET['werbung3']]);
        };
    ?>
Die echo funktion im ersten teil habe ich ur zum testen eingefügt.
Mein Problem ist das das Script obwohl die Datei "werbung.html" exestiert, dauernd das "Da is nix" ausgibt.
Könnt ihr mir helfen wie ich das beheben kann?

grüsse ritschie
 
damit was eingebunden wird muss $_GET['werbung'] den wert "werbung", "werbung1" etc. haben. die überprüfung auf != "" ist sinnlos, denn wenn $_GET["werbung"] = 0 ist oder = irgendwasandres ist, kriegst du probleme

besser:
PHP:
if (array_key_exists($_GET["werbung"], $einbinden)) {
  //einbinden
} else {
  //nicht einbinden
}

da sollte dir eher helfen.. außerdem brauchst du diese anweisung nur einmal und nicht für jeden werbungstyp zu definieren

$einbinden[$_GET["werbung"]] ist nicht das gleiche wie $einbinden["werbung"]... damit es das gleiche wird muss $_GET["werbung"] den Wert "werbung" haben
 
PHP:
$whitelist = array(
    'werbung1' => 'werbung/werbung_1.html',
    'werbung2' => 'werbung/werbung_2.html',
    'werbung3' => 'werbung/werbung_3.html',
    'werbung4' => 'werbung/werbung_4.html',
    'werbung5' => 'werbung/werbung_5.html',
    'werbung6' => 'werbung/werbung_6.html'
);

if(isset($_GET['werbung']) && array_key_exists($_GET['werbung'], $whitelist)) { // include page
    include($whitelist[$_GET['werbung']]);
} else { // include default
    include($whitelist['werbung1']);
}
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben