• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Anzeige von Datei abhängig von PHP-Funktion

Status
Für weitere Antworten geschlossen.

LudwigM

Mitglied
Ich habe eine PHP-Funktion, die den anzuzeigenden Inhalt bestimmt. Damit sollen anhand des Benutzernamens, Cookies bestimmte Benutzer "gesperrt" werden. Bspw. soll entweder der "normale" Inhalt angezeigt werden, der derzeit als .php Datei mit größtenteils HTML vorliegt.
Wie zeigt man nun abhängig von der Funktion entweder diesen Inhalt oder zum Beispiel einen Hinweis, dass zu diesem derzeit kein Zugriff besteht. Meine Ideen:
1) index.php?parameter=ZielSeite Anhand der Funktion wird entweder die ZielSeite.php per include eingebunden oder eben eine KeinZugriff.php. So würde man sich diese Entscheidungsstruktur für jede einzelne Seite sparen. Nur das HTML-Grundgerüst müsste dann von den ZielSeiten in index.php verlegt werden.
2) Ähnlich wie 1), nur statt include mit $.ajax()
3) was gibt es sonst noch?

Gruß
Ludwig
 
G

Gelöschtes Mitglied 36401

Guest
index.php?parameter=ZielSeite ist auf jeden Fall Quatsch, denn wenn man die Zielseite kennt, gebe ich diese händisch ein.
Wie man das am besten macht, ist aus deiner Beschreibung nicht wirklich zu lesen, poste mal ein echtes Beispiel.
 
G

Gelöschtes Mitglied 36401

Guest
aber es könnte ja anhand des Parameters eine Seite mit kryptischen Namen angezeigt werden.
Auch das nicht, es sei denn, du legst keinen Wert auf Sicherheit. An eine URL hängt man, wenn man es verhindern kann, keine sicherheitsrelevante Daten.
 

LudwigM

Mitglied
Über einen besseren Vorschlag deinerseits würde ich mich sehr freuen.

Da nach einem Code-Beispiel gefragt wurde, hier ein ungetester Entwurf:
Code:
<!-- index.php?seite=i -->
<body>
    <?
        if( zugang_erlaubt() )
        {
            switch ($_POST['seite']) {
                case "1":
                    include 'seite1.html';
                    break;
                case "2":
                    include 'seite2.html';
                    break;
                default:
                    include 'seite_default.html';
                    break;
            }
        } else {
            include 'keinZugang.html';
        }
        ?>
</body>

Die andere Alternative wäre, auf jeder Seite eine Abfrage einzufügen:

Code:
<!-- seite1.php -->
<body>
    <?
        if( zugang_erlaubt() )
        {
            include 'inc.seite1.php';
        }
        } else {
            include 'keinZugang.html';
        }
        ?>
</body>

Die Frage ist, welches davon besser ist, bzw. welche besseren Methoden es generell gibt...
 

Sempervivum

Senior HTML'ler
Du kannst ohne den Umweg über eine URL mit GET-Parameter in PHP eine Seite direkt aufrufen, siehe hier:
Das hätte jedoch den Nachteil, dass diese Seiten auch an der Startseite vorbei direkt aufgerufen werden können, wenn die URL bekannt ist.

Eine Alternative ist, überhaupt keine Weiterleitung zu machen sondern die Prüfung direkt in der Zielseite einzubetten, so wie Du es in deinem zweiten Beispiel angegeben hast. Dann wäre der vollständige Inhalt der seite1.php für den Benutzer nicht zugänglich weil er gar nicht an den Browser gelangt. Insofern die bessere Lösung. Wenn die vollständige Prüfung umfangreicher ist, kannst Du sie in eine Funktion legen und diese wiederum in eine externe Datei, die Du dann einbindest.
 

sandreas

Mitglied
Naja, was du da vorhast, ist eine Authentifizierung von Benutzern (Benutzer müssen ihre Identität NACHWEISEN). Wie macht das denn ein Benutzer aktuell? Über eine Kombination aus Benutzername und Passwort, was er vorher eingibt oder über einen Token oder sonst wie?
 
Status
Für weitere Antworten geschlossen.
Oben