Problem mit if eregi ?!

Solange im error_reporting die NOTICE's abgestellt sind, bekommt man da keine Meldung... der Fehler existiert aber trotzdem(hat jedoch keine weiteren Auswirkungen)
 
hab mir jetzt ein anderes include script geschriben ....
Jetzt tauchen folgende Probleme auf...

1. Ich kann die Datei nun auch nicht mehr includen, da dann sofort die Meldung erscheint ...
Code:
Es ist nicht erlaubt diese Datei direkt zu laden!
Egal ob ich die deite per index.php?option=addpages include oder den richtigen pfad eingeben, immer kommt diese Meldung ...

2. Wenn ich dann das Script herausnehem aus den Dateien ...
PHP:
<?php 
if (eregi('deletepages.php', $_SERVER['REQUEST_URI'])) 
    die('Es ist nicht erlaubt diese Datei direkt zu laden!'); 
?>
Dann erscheint die Seite....
So nun zum Problem wenn ich dann ne neue Seite anlegen will, muss ich Titel und Content/Text eingeben... Hier ist die datei zu finden ... Zur addpages.php
Danach klickt man auf Create Pages und nun wird der Titel den man eingeben hat eigentlich an die url angehängt ... wie man bei der Datei sehen kann wenn man mal de ganzen schritte durchmacht...

jedoch wenn man die Datei inlcuded, also über index.php?option=addpages und dann dies alles macht, dann erscheint beim createn folgende error Meldung ...
Code:
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web1/html/page/admin/index.php:5) in /srv/www/htdocs/web1/html/page/admin/addpages.php on line 9

Dazu muss ich noch sagen, dass ich die dateiwo die ganzen includes drinn stehen in die index.php inlcude..

hier mal die admin.cis.php:#
PHP:
<?php
switch ($_GET['option']) { 
    
    case 'addpages': 
    require ("addpages.php");
    break;     
    
usw ....

    default: 
    include ("index.php");
    break; 
} 
?>
und die addpages.php mit line 9 kann man ja oben nachlesen ....
Kann mir jemand helfen ... bidde bidde ist so dringend ...
Danke im Voraus... MfG Dennis aka weightwatcher ...
 
Nimm einfach die Zusicherung von Gumbo, die funktioniert auch =)

Ich vermute, dass das Problem bei eregi() ist, dass der Request-String Teile des Filenamens enthält (addpages : addpages.php).

Beim Identvergleich gibt es solche Probleme nicht.


MfG. xxenon
 
Muss mich korrigieren!

Das Problem ist, dass PHP_SELF nicht den namen des includeten Files zurückgibt, sondern den des ausgeführten Skripts.


Daher müsste eine sinnvoller Vergleich den Dateinamen als Konstante enthalten.

Gumbo's Skript funktioniert daher nur deshalb, weil sich REQUEST_URI von PHP_SELF durch die GET-Variablen unterscheidet.


Mein erster Ansatz war also doch richtig =).
Du könntest aber noch ein strtolower() einbauen.


HTH xxenon
 
danke jetzt gehts....
hab aber immernoch das prob...
Hier nochmals die beschreibung von prob2:

Die Dateien addpages, deletepages und editpages.php greifen alle auf die datei core.php zu, die eine mysql klasse enthält von dort wird dann die verbindung zu datenbank hergestellt...

Wenn ich jetzt eine neue Seite erstellen möchte, so muss ich in der datei addpages.php einen titel und text/html eingeben....
Wenn ich dann Create drücke erstellt er die seite in der Datenbank....
Die Seiten i´sind so konzipiert, dass man nachdem erstellen wieder auf die erstellerseite geleitet wird(addpages.php) aber mit dem titel angehängt, d.h wenn cih eine Datei erstelle mit

Titel: Test3
Text: Hallo dies ist ein text

dann will der den titel an die ulr zur Seite anhängen...
also addpages.php?id=test3

Da ich aber die addpages include also index.php?option=addpages müsste er doch die id sammt titel so anhängen .. index.php?option=addpages&id=test3 oder nicht

Hiermal der ausschnitt der den Titel anhängt ... und irgendwie müsste man des dann umsetzten das der das dann auch so macht

PHP:
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="index.php?option=addpages'. '&id='. $_POST['title']  .'">';

^^ Hab mal was probiert mit index.php?option=addpages'. '&id='. $_POST['title'] .'">'; aber gehen tut auch nit, weil dann kommt ...

Code:
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web1/html/page/admin/index.php:5) in /srv/www/htdocs/web1/html/page/admin/addpages.php on line 12

Was kann man da nur machen ... :confused:
MfG Dennis aka weightwatcher ...
 
Zurück