PHP Seitenfragement Verweise probleme
.MB
- includes
- php
- versionsverwaltung
moin Community,
ich will über ein Seitenfragment einer der index.php auf sich selbst - also index.php Verweisen. habs mal mit header( " Location: index.php?page=logon " ); oder include( " index.php?page=logon " ); versucht abe kommt n Fehlermeldung: failed to open stream: oder einfach ne Leere Seite. Ich hab mit nem PHP Script auf die Haptseite verwiesen den ich in die hauptseite eingebuten habe.
Wie kan man das anders anstellen???
Grüße MB
Moin!
habs mal mit
header( "Location: index.php?page=logon" );
… Leere Seite.
Fehler anzeigen lassen. Ich vermute, da wird vor dem Header irgendwoher ein Leerzeichen gesendet.
Kandidaten:
<?php
?>
(Hint: ganz weglassen wenn kein Text/HTML in der selben Datei folgt)Test geht auch mit headers_sent()
oder
include("index.php?page=logon");
versucht abe kommt n Fehlermeldung:failed to open stream
Was zu erwarten ist.
Wenn schon:
<?php
$_GET['page']='logon';
require_once $_SERVER['DOCUMENT_ROOT'] . '/index.php';
Jörg Reinholz
Hallo Jörg
habs mal mit
header( "Location: index.php?page=logon" );
… Leere Seite.Fehler anzeigen lassen. Ich vermute, da wird vor dem Header irgendwoher ein Leerzeichen gesendet.
http://localhost/logon/?page=main das kam dabei raus. genauso wie ich es geschrieben habe. Oder meins du etwas anderes?
oder
include("index.php?page=logon");
versucht abe kommt n Fehlermeldung:failed to open stream
Was zu erwarten ist.
Was meinst du? Es wäre doch als Laihe logisch.
Aufjedenfall hatts geklappt. Warum require_once und nich inculde, oder include_once??? Möchte das wissen aufbauen und Vestehen warum. Bleibt das $_GET[] gespeichert sodass require_once aufgerufen wid und sich nachher beim $_GET bedient?
Viele Grüße MB
Moin!
Was meinst du? Es wäre doch als Laihe logisch.
Wenn Du das Dateisystem bemühst (das machst Du mit require / include) dann gibts keine Parameter.
Warum require_once und nich inculde, oder include_once
Bleibt das $_GET[] gespeichert sodass require_once aufgerufen wid und sich nachher beim $_GET bedient?
Ja. PHP-Handbuch. Superglobale
Jörg Reinholz
Hallo Jörg,
Wenn Du das Dateisystem bemühst (das machst Du mit require / include) dann gibts keine Parameter.
Ah ok
Bleibt das $_GET[] gespeichert sodass require_once aufgerufen wid und sich nachher beim $_GET bedient?
Besten Dank MB
Moin!
GRRRRRRRRRRRR!!!
Das ist mal wider Tüüüüü-Pisch! Für schnattrige Antworten und einen schnöden Link zum Geschreibsel Dritter wird sich höchst eifrig bedankt - aber dafür, dass ich mir für die Erweiterung und Verbesserung des Tutorials zu include/require (_once) ganz gewaltig den A... naja aufgerissen habe, gibt's NATÜRLICH keinen Lohn!
*immernochgrummel*
Jörg Reinholz
Hallo Jörg Reinholz,
Das ist mal wider Tüüüüü-Pisch! Für schnattrige Antworten und einen schnöden Link zum Geschreibsel Dritter wird sich höchst eifrig bedankt - aber dafür, dass ich mir für die Erweiterung und Verbesserung des Tutorials zu include/require (_once) ganz gewaltig den A... naja aufgerissen habe, gibt's NATÜRLICH keinen Lohn!
Ich hatte dich schon im Verdacht, dass du diesen Artikel anonym bearbeitet hast. Dankeschön!
Bis demnächst
Matthias
Tach!
Das ist mal wider Tüüüüü-Pisch! Für schnattrige Antworten und einen schnöden Link zum Geschreibsel Dritter wird sich höchst eifrig bedankt - aber dafür, dass ich mir für die Erweiterung und Verbesserung des Tutorials zu include/require (_once) ganz gewaltig den A... naja aufgerissen habe, gibt's NATÜRLICH keinen Lohn!
Tut's noch weh? ;)
Statt einer aufwändigen Blacklist-Funktion kann man auch ein ganz einfaches Whitelist-Array mit den erlaubten Inkludierdateinamen verwenden.
dedlfix.
Hallo dedlfix,
Statt einer aufwändigen Blacklist-Funktion kann man auch ein ganz einfaches Whitelist-Array mit den erlaubten Inkludierdateinamen verwenden.
Kann man nicht nur, sollte man auch. Alles andere ist zu fehleranfällig.
LG,
CK
Moin!
Statt einer aufwändigen Blacklist-Funktion kann man auch ein ganz einfaches Whitelist-Array mit den erlaubten Inkludierdateinamen verwenden.
Kann man nicht nur, sollte man auch. Alles andere ist zu fehleranfällig.
nach allerhand recht speziellen und gewillkürten Verboten kommt:
$forbiddenChars='/[^A-Za-z0-9_.\/*+:,-]/';
if ( preg_match($forbiddenChars, $fileName) ) {
# Brutal:
return error_403();
}
"malen nach Zahlen" habe ich auch vorgesehen und als "sehr sicher und einfach" angepriesen
Jörg Reinholz
Tach!
"malen nach Zahlen" habe ich auch vorgesehen und als "sehr sicher und einfach" angepriesen
Das ist alles jede Menge Code mit vielen Möglichkeiten, ihn nicht zu verstehen oder Fehler einzubauen (beim Erstellen und beim Abtippen). Ein einfaches Array mit den erlaubten Namen der Dateien dazu ein if mit in_array() sowie ein else für den Fehlerfall und fertig ist die Laube.
dedlfix.
Moin!
Ein einfaches Array mit den erlaubten Namen der Dateien dazu ein if mit in_array() sowie ein else für den Fehlerfall und fertig ist die Laube.
Wenn Du dann noch hinzufügst, dass die erlaubten includes in einer CSV stehen und außerdem ein paar Kommentare verwendest bist Du bei nichts anderem als einer Variante von 6.3 Sehr sicher und vergleichsweise einfach: includieren mit abstrakten Angaben (Zahlen)
Jörg Reinholz
Tach!
Wenn Du dann noch hinzufügst, dass die erlaubten includes in einer CSV stehen und außerdem ein paar Kommentare verwendest bist Du bei nichts anderem als einer Variante von 6.3 Sehr sicher und vergleichsweise einfach: includieren mit abstrakten Angaben (Zahlen)
Warum entwickelst du so komplexe Lösungen? Weil du es kannst? Es reicht doch, das Prinzip zu zeigen, und das geht mit einem einfachen Array. Das ist auch verständlicher, als wenn man sich erstmal durch viel Code durchzuwühlen muss. Ob der Leser sich dann entscheidet, eine CSV-Datei oder ein anderes Datenformat, eine Datenbank oder sonstwas statt des Arrays zu verwenden, steht auf einem anderen Blatt. Für die meisten des Zielpublikums ist doch die Array-Variante völlig ausreichend.
dedlfix.
Moin!
Für die meisten des Zielpublikums ist doch die Array-Variante völlig ausreichend.
Ach? Und die gerade eben von Dir als "nicht so ganz fit" beschriebenen sollen dann mit deren "dicken Fingern" im Programm herumschreiben weil eine Seite hinzukommt? Das ist doch gerade der Grund, warum man Daten nicht im Programm unterbringt...
Jörg Reinholz