Problem mit if eregi ?!

weightwatcher

Erfahrenes Mitglied
Hi Leute, hab gestern schon mal gepostet... aber der Thread wurde dann geschlossen ...
:confused:

Na ja hier nochmal das Problem ..
Mann man den richtigen Pfad zur datei im Browser angibt, also so z.B:

http://www.meineseite.tld/cis/root/acis/addpages.php
soll ne Fehlermeldung kommen, dass man die Datei so nicht aufrufen darf ...

gibt man jedoch die ulr so ein...
index.php?option=addpages
dann soll er die Datei inlucden und öffnen..
Hab mir dann mal folgendes überlegt

PHP:
<?PHP 
global $PHP_SELF; 

if (eregi("addpages.php", $PHP_SELF)) { 
die ("Es ist nicht erlaubt diese Datei direkt zu laden!"); 
} 
?>
funktioniert aber nicht...
Weiß jemand warum -... Ich nicht... :(
Danke im Voraus ... MfG Dennis aka weightwatcher ...
 
PHP:
<?php
if (eregi('addpages.php', $_SERVER['REQUEST_URI']))
    die('Es ist nicht erlaubt diese Datei direkt zu laden!');
?>

Probier's mal so...

MfG. xxenon
 
Probier mal Folgendes:
PHP:
<?php
	[…]
	if( strtolower(basename($_SERVER['PHP_SELF'])) === strtolower(basename(__FILE__)) ) {
		header('HTTP/1.1 403 Forbidden');
	}
	[…]
?>
 
Zuletzt bearbeitet:
Gumbo hat gesagt.:
Probier mal Folgendes:
PHP:
<?php
	[…]
	if( strtolower(basename($_SERVER['REQUEST_URI'])) === strtolower(basename($_SERVER['PHP_SELF'])) ) {
		header('HTTP/1.1 403 Forbidden');
	}
	[…]
?>

Guter Ansatz, muss ich schon sagen =))
 
Zuletzt bearbeitet:
Vielen Dank an euch.. Gleich das erste hat funktioniert... Zum zweiten muss ich sagen ist auch ne gute Lösung will aber ne eigene Message ausgeben... Alos von daher...

So jetzt habe ich nur noch ein Problem... Ich will ja die Seiten in mine admininterface (index.php) includen was für ein script würdet ihr da nehmen ....

Hab nämlich mal ein include script geschrieben, jedoch gabs da immer probleme, weil die addpagesist dafür da, dass man Seiten in ne Mysqldatenbank reinschreiben kann und diesedann auf der contentseite angezeigt werden... Öffnet man also nun die Datei addpages über das including dann sieht das so aus ...
index.php?option=addpages .....

Da man aber in der Addpages ein Title sowie den Text angibt, wir der Titel bei abspeichern in die mysql datenbank noch mit angehängt...
also müsste es auch so gehen ... index.php?option=addpages&hierdanndertitel ?!
Was sollte ich dan für ein script proggen Schlagtmal was vor...

Hier mal der aufbau der addpages.php zum veranschaulichen ...

PHP:
<?php
//Include config file
require_once ( '../../core.php' ) ;

//Is form submitted?
if ( isset ( $_POST['add'] ) )
{
	$Pages->add ( $_POST['title'], $_POST['content']) ;
	header ( 'location:'. $site->url .'?id='. $_POST['title'] ) ;
}
else
{
	echo '<form name="addpage" method="post" action="addpages.php">';
	echo 'Title: <input type="text" name="title"><br>';
	echo 'Content: <textarea name="content" cols="80" rows="20"></textarea><br>';
	echo '<input type="submit" name="add" value="Create Page">';
}	
	
?>

bei echo '<form name="addpage" method="post" action="addpages.php">'; wir dann die datei angebebn nauf die er nacher wieder weiterleitet nach dem speichern ...

und hier header ( 'location:'. $site->url .'?id='. $_POST['title'] ) ; wird dann hinter das index.php?option=addpages noch der titel angehängt ...
also dann so index.php?option=addpages&hierdanndertitel...

Also Jungs ich hoffe ihr könnt mir da weiterhelfen und einpaar gute Tipps geben...
Danke im Voraus .. MfG Dennis aka weightwatcher ... ;)
 
Um ehrlich zu sein habe ich kaum etwas von dem verstanden. Könntest du es bitte etwas deutlicher bzw. verständlicher beschreiben.


Übrigens schließt mein Vorschlag nicht das Verwenden anderer Anweisungen aus, es wäre bloß universeller.
 
sorry, wenn du mich nicht richitg verstanden hasst...
Ich brauche so ein Script wie z.B. dass, was ich hier mla vorbereitet habe ..
PHP:
<?php
if(isset($HTTP_GET_VARS['option']))
{
 $p = $HTTP_GET_VARS['option'];
}
else
{
 $p = 'index';
}

switch($p)
{
 case 'logout':
 require('logout.php');
 break;
.
.
.
.
.
....usw 

 default:
 require ('index.php');
 echo ("$ecode404");
 break;
}

?>

Nur glaube ich, dass dieses Script hier nit so gut ist...
Und wenn ich versuche die datei addpages.php zu includen, dann kommt ne Fehlermeldung ... weil ja hinter das index.php?option noch das &titel angehängt wird... und da entsteht meiner Meinung nach das Problem ...
Daher wollte ich mal Fragen ob ihr ne andere Lösung für solch ein Script wie das ^^ kennt
 
weightwatcher hat gesagt.:
Nur glaube ich, dass dieses Script hier nit so gut ist...
Und wenn ich versuche die datei addpages.php zu includen, dann kommt ne Fehlermeldung ... weil ja hinter das index.php?option noch das &titel angehängt wird... und da entsteht meiner Meinung nach das Problem ...
Daher wollte ich mal Fragen ob ihr ne andere Lösung für solch ein Script wie das ^^ kennt

Versteh ich nicht so ganz


--

Wenn du in deiner Switch-Case-Abfrage sowieso ein default verwendest, kannst du dir diesen Teil sparen:

PHP:
if(isset($HTTP_GET_VARS['option']))
{
$p = $HTTP_GET_VARS['option'];
}
else
{
$p = 'index';
}

Und stattdessen gleich die Variable switchen:

PHP:
switch ($_GET['option']) {
    case 'logout':
        [..]
    break;
    [..]
    default:
        [..]
    break;
}

MfG.
 
Zurück