2012-04-01 24 views
0

Ich habe ein Formular, sammeln Daten und senden sie an process_form.php diese Datei tut verschiedene Funktionen, aber Benutzerdaten benötigt, um zu arbeiten, wenn ohne ausgeführt wird Benutzerdaten können einige Probleme verursachen. Ich möchte nicht, dass jemand www.mysite.com/process_form.php eingeben kann, aber ich möchte seinen Zugriff nur erlauben, wenn die verweisende URL www.mysite.com/compile.php ist. Möglich?Disable direkten Zugriff auf PHP-Seite, aber erlauben den Zugriff, wenn von bestimmter Seite erreicht

Antwort

1

Es ist möglich, mit $ _SERVER ['HTTP_REFERER'], jedoch gewarnt werden, diese Variable zu verwenden, da sie manipuliert werden kann und unzuverlässig ist. Von php.net:

Die Adresse der Seite (falls vorhanden), die den Benutzeragenten auf die aktuelle Seite bezog. Dies wird vom Benutzeragenten festgelegt. Nicht alle Benutzeragenten werden festlegen, und einige bieten die Möglichkeit, HTTP_REFERER als eine -Funktion zu ändern. Kurz gesagt, es kann nicht wirklich vertraut werden.

Ich empfehle Ihnen, bearbeiten Sie Ihre process_form.php, um zu überprüfen, ob die eingegebenen Daten für die Funktion benötigt, vorhanden ist. Wenn Sie ein Formular mit GET haben, können Sie verwenden:

if(!empty($_GET['myFormFieldName'])) { 
    // process 
} 

oder bei Verwendung von POST:

if(!empty($_POST['myFormFieldName'])) { 
    // process 
} 
0

Sie sollten Sitzungen überprüfen, ob der Benutzer über den richtigen Prozess gegangen ist, um die letzte Seite zu erreichen.

Verwandte Themen