Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Refer-Check [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Refer-Check


 
skalu
03-09-2003, 13:48 
 
Hi Leute,

ich habe in einem Projekt eine Funktion zum Zurückseten von Einstellungen eingebaut. Diese besteht aus zwei Dateien. Der Datei "reset.php" und "reset_do.php". In reset.php wird nur gefragt, ob man sicher ist, dass alles zurückgesetzt wird und in reset_do.php wird dann alles zurückgesetzt.

Nun möchte ich aber in reset_do.php prüfen, ob zuvor die Datei "reset.php" aufgerufen wurde, damit man nicht aus Versehen aus dem Verlauf die Adresse http://www.seite.de/reset_do.php ausführt und alles gelöscht ist.

Habe schon einen PHP Code zum Bekommen des Dateinamens, von dem man kommt:


// Referrer
$refer = getenv("HTTP_REFERER");


// aus $refer wird NUR der Dateiname ausgegeben
$url_info = parse_url($refer);
$pfad = $url_info[path];
$array_refer = explode("/",$pfad);
$filename = end($array_refer);


Da gibt es aber noch ein Problem. In meinem Projekt wird die Seite, die gerade angewählt wurde in die Datei "index.php" includet. Also wenn man "Downloads" anwählt, sieht die URL so aus: http://www.seite.de/index.php?page=downloads.

Wenn ich nun den Code oben ausführe, bekomme ich aber nur "index.php" angezeigt. Und das kann natürlich jede Seite sein, weil ja jede andere Seite auch in der index.php drinnen ist.

Hat nun jemand eine Lösung für mich, wie ich an das "index.php?page=downloads" rankommen könnte?

Tnx 4 Help,
Lukas

 
kapitaeniglo
03-09-2003, 14:03 
 
hiho

du kannst auch an die ganze url rankommen, allerdings wuerde ich net den referrer zur ueberpruefung benutzen ...

weil wenn jemand eine firewall an haat, kann es gut sien, dass der referer geblockt wird ..



benutze leiber sessions ..
auf der ersten seite setzt du ne variable

$_SESSION["variable"]= "ACTIVE";


und auf der naechsten seite ueberpreufst du
ob diese variable gesetzt ist

if($_SESSION["variable"] == "ACTIVE")
{
// ausfuehren udn danach die variable per unset oder
// aehnlichem auf null setzen
}
else
{
echo "scheinbar keine zugriffsberechtigung";
}
[/php]

diese methode finde ich besser...
musst halt nur auf der ersten seite eine session starten , oder wenn
das schon ist nur den wert in die session schrieben ...

gruss
iglo

 
skalu
03-09-2003, 14:08 
 
Gute Idee, kapitaeniglo!

Vielen Dank! Funzt alles,
Greetz Lukas

 
kapitaeniglo
03-09-2003, 14:18 
 
no problemo ...

hatte das problem selbst mal ...
und da kam mir dir idee das ganze ueber sessions zu handeln ...
vor allem, da mein skript mit dem referrer bei allen ausser mir funzt ...
bis ich die firewall ausgestellt hatte ...


greetz
iglo

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:56 Uhr.