Antworten auf deine Fragen:
Neues Thema erstellen

Kleine PHP Hilfe

irontom100

Nicht mehr ganz neu hier

hi leute
ich habe mal wieder ein kleineres problem mit einer php datei
die ich erstellt habe
PHP:
<?php

require ("header.php");

if ($_GET['site'] == "") {
    include ("sites/master.txt");
}else {
    include ("$path/".$_GET['site']);
}

require ("footer.php");

?>
ich bekomme immer diese fehlermeldung
Notice: Undefined index: site in L:\usb webserver\root\index.php on line 5
könnt ihr mir helfen
was mache ich falsch

danke für eure hilfe
 

netbandit

Aktives Mitglied

AW: Kleine PHP Hilfe

Hallo,

Undefined index: site
Sagt es eigentlich schon. Ein Aufruf mit GET-Patameter, z.B. ?site=test.htm sollte diese Fehlermeldung nicht mehr produzieren.

Alle verwendeten Variablen die in irgendeiner Form an das Script übermittelt werden, sollten zuvor definiert werden, Beispiel:

PHP:
$site='';
if(isset($_GET['site']))$site=$_GET['site'];
if($site==''){
...
}
Das zur Fehlermeldung... Punkto Sicherheit: Mach Dich mal schlau wie das ist Dateinamen/Urls als Parameter zu verwenden um beliebige Dateien zu importieren. Stell irgendwie sicher, dass auch nur die Dateien im Script ausgegeben werden die Du da drin haben willst. :)
 
Zuletzt bearbeitet:

irontom100

Nicht mehr ganz neu hier

AW: Kleine PHP Hilfe

ich danke dir für deine schnelle antwort und für den script ansatz ich werde das gleich mal ausprobieren
 

fakerer

Aktives Mitglied

AW: Kleine PHP Hilfe

oder
Code:
[COLOR=#000000][COLOR=#007700]if (isset([/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][/COLOR][COLOR=#0000BB]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'site'[/COLOR][COLOR=#007700]][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]) && [/COLOR][COLOR=#0000BB]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'site'[/COLOR][COLOR=#007700]] == [/COLOR][COLOR=#DD0000]""[/COLOR][COLOR=#007700]) {[/COLOR][/COLOR]
 

TrueHero

Noch nicht viel geschrieben

AW: Kleine PHP Hilfe

Wenn kein GET-Parameter angegeben ist, dann liegt es vermutlich am Error-Reporting; vermutlich steht es bei dir auf E_ALL, welche nicht nur die Error's sondern auch die Notice's anzeigt. Für's debugging zwar unbrauchbar, aber wenn du fertig bist, kanst du einfach
PHP:
error_reporting(0);
//beziehungsweise
error_reporting(E_ERROR | E_WARNING | E_PARSE);
verwenden. Bei ersterem werden dir gar keine Fehler / Notices mehr angezeigt, bei zweiterem nur noch die 'schwerwiegenden' Fehler.

Liebe Grüße,

TH.
 

Chriss1987

me.drinkCoffee();

AW: Kleine PHP Hilfe

Hi,

@TrueHero: naja, Warnungen und Hinweise auszustellen ist aber nicht wirklich eine Lösung, immerhin weiß man ja, wo es hapert und das sollte man dann auch ausbessern! Ich würde z.B. kein Produkt freigeben/ausliefern, bei dem ich weiß, dass solche Schlampereien vorhanden sind...

@TO: du könntest die verfügbaren Seiten z.B. in ein Array schreiben und prüfen, ob das Element im Array vorhanden ist, dann könntest du z.B. auch einen Key setzen, dass müsstest du an eine URL nicht ?site=impressum.txt anhängen, sondern könntest die Endung weglassen.

PHP:
$sites = array();
$sites['impressum'] = 'impressum.txt';
$sites['home'] = 'master.txt';
...

Schöne Grüße aus dem Sauerland!
Chriss
 

TrueHero

Noch nicht viel geschrieben

AW: Kleine PHP Hilfe

@Chriss1987: Jein, es gibt nämlich vor allem bei POST- und GET-Parametern Dinge, die man nicht verhindern kann. Für's debugging empfehle ich (immer noch)
PHP:
error_reporting(E_ERROR | E_WARNING | E_PARSE);
denn dies ist die einzige Möglichkeit, Notices auszublenden und trotzdem auf Fehler hingewiesen zu werden. Wenn dann irgendwas wieder nicht funktioniert, kann man error_reporting ja wieder auf E_ALL setzen.
Mein (persönliches) Erfolgsrezept: man erstellt ein include mit nur dem Code
PHP:
<?php
error_reporting(E_ALL);
?>
und dann included man selbiges in alle PHP-Dateien des Projektes. So kann man - wenn benötigt - das error_reporting herunter- und heraufsetzen, wie es einem beliebt. Wenn man das Projekt dann wirklich veröffentlicht, kann man es entweder so setzen, dass keine / nur schwerwiegende Fehler angezeigt werden; oder es den neuen Benutzern überlassen, wie sie es anzeigen lassen wollen.

Na dann,

TH

PS: Bin natürlich wieder für Kritik offen :)
 

Chriss1987

me.drinkCoffee();

AW: Kleine PHP Hilfe

Hi,

welche Dinge lassen sich denn deiner Meinung nach bei POST- und GET-Parametern nicht verhindern? MMn ist dann entweder das Programmdesign unüberlegt, oder man ist zu faul, bestimmte Möglichkeiten abzufangen!

Mir ist es bisher nicht untergekommen, dass es bei POST- und GET-Parametern zu Situationen gekommen ist, die ich nicht verhindert werden konnten.

Vielleicht ist mir bis dato auch kein solcher Fall untergekommen undich wäre gespannt, welchen exemplarischen Fall du mir schildern könntest! ;)

Schöne Grüße aus dem Sauerland!
Chriss
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben