Zugriff nur über index.php?

fragger1991

Grünschnabel
Hallo,

Ich möchte das man die datei 1.php nur per index.php?site=1 aufrufen kann und nicht direkt per 1.php. Da ich nicht soviel ahnung habe wäre ich dankbar wenn ihr mir schreiben würdet was ich dafür ihn die index.php schreiben muss und in die 1.php

MFG
 
Erstelle doch einfach bei Aufruf der INDEX.PHP eine Session Variable die du auf der 1.php prüfst!

Code index.php
session_start();
$_SESSION['isup'] = 1;
session_end();

Code 1.php
session_start();
if ($_SESSION['isup'] == 1){
echo "mache_das"
}else{
echo "Zugriff verweigert"
};
usw, ,,,
 
klappt leider nicht dann Funktioniert die page nicht mehr Weisses Bild, gibt es da nicht so nen anderen befehl oder kann man diesen nicht so umschreiben?
PHP:
if(!ispageadmin($userID) OR substr(basename($_SERVER[REQUEST_URI]),0,15) != "admincenter.php") die('Zugriff verweigert!');

p.s. das ist Webspell
 
Zuletzt bearbeitet:
Für solche Sachen eignet sich eine .htaccess (Apache mod_rewrite vorausgesetzt) ganz gut, denke ich.

Code:
RewriteEngine on

# nicht umleiten:
RewriteRule ^index.php - [L] 

# alles andere umleiten:
RewriteRule ^(.*)$ index.php [L]
# alternativ für diesen Fall:
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

Das geht sicher auch etwas effektiver, aber im Syntax von mod_rewrite bin ich nicht wirklich bewandert.
 
Danke für deine Antwort!

Ja, .htaccess ist natürlich besser nur ich suche aus einem bestimmten grund PHP codes dafür, weil der Webspace bei T-Online sind und man keinen zugriff auf .htaccess und .htpasswd bekommt
 
Konstante in der index.php definieren ([phpf]define[/phpf]) und in den einzubindenden Dateien prüfen mit :
PHP:
// 1.php
if(!defined('KONSTANTE'))
{
    echo 'Kein Zugriff';
    exit;
}
 
Vorher muss in dem Beispiel natürlich in der index.php die Konstante "KONSTANTE" definiert worden sein:
PHP:
// erste Zeile von index.php
if (!defined('KONSTANTE')) {
    define('KONSTANTE', null);
}

^^
 
Erstelle doch einfach bei Aufruf der INDEX.PHP eine Session Variable die du auf der 1.php prüfst!

Dein Code hat zwei kleine Fehler enthalten ^^ kein Semicolon nach } und nach einem echo kommt ein Semicolon

Code index.php
PHP:
session_start();
$_SESSION['isup'] = "1";
include("Code1.php");

Code1.php
PHP:
if ($_SESSION['isup'] == "1"){
     echo "mache_das";
}else{
   echo "Zugriff verweigert";
}
// usw, ,,,

Naja die Seite sollte inlcudet werden, sonst funktioniert es nicht ^^
--> Sonst bekommste ne Fehlermeldung

Das ganze funktioniert auch, habs grad selbst getestet ^^
 
Zuletzt bearbeitet:
Zurück