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

Zugriffsberechtigung

Status
Für weitere Antworten geschlossen.

Web_spider

Neues Mitglied
HI all :)
Ich habe da ein Problem und denke es ist mit php zu lösen.
Also:
Ich habe mehrere Seiten wie die Regestrier Datei (reg.php) die zu seiten wie work.php
weiterleiten. Ich möchte gerne, dass die Detai work.php nur dann dem User ausgeführt wird, wenn er durch reg.php dahingeleitet wird. Klartext: Sie darf nicht ausgeführt werden, wenn man sie manuell (work.php) aufruft. früher habe ich das mit post geregelt. sprich bei der Reg Datei Stand dann:
PHP:
<html>
....
<input type="hidden" name="berechtigt" value="ja">
....
</html>
und dann bei der Datei work.php:
PHP:
<?php
$test = $_POST['berechtigt'];
if  ($test == "Ja")
{
    //Inhalt und Code
}
else
{
    print("Sie sind nicht berechtigt diese Seite einzusehen");
}
?>
Da ich aber momentan nicht mehr mit der Postmethode übergeben kann, da ich in eineigen Dateien kein Formular habe, brauche ich eine andere Zugriffsberechtigung

Hoffe auf Hilfe

mfg web_spider :D
 
Hi erstmal Web_Spider!
Kleines tut für sessions:

Um Sessions in deiner Datei verwenden zu können, musst du vor allem Code, der angezeigt wird "session_start()" schreiben.. Das heißt am Besten gibts du als allererstes in deiner Datei folgendes ein:
PHP:
<?php session_start(); ?><Doctype.......>
Für diese Datei sind die Sesseions jetzzt sozusagen "freigeschaltet"!
Um nun Sachen in einer Session zu speichern gibt es den superglobalen Array: $_SESSION.. Nehmen wir mal dein Beispiel.. Du willst, dass die Seite nur angezeigt wird, wenn man über einen Link geleitet wurde.. Dann musst du der Session etwas zuweisen.. Meinetwegen: erlaubt... (Für "Zugriff erlaubt").. das speicherst du nun so in der Session ab:
PHP:
$_SESSION['erlaubt']=true;
jetzt ist in der Session: "erlaubt" der Wert true gespeichert..
Das wäre der erste Teil.. (Daten in eine Session schreiben). Kommen wir zum zweiten Teil, dem auslesen (gleich mal ein Beispiel):
PHP:
var_dump($_SESSION['erlaubt']);
Ausgabe:
Es hat also funktioniert! Natürlich kannst du in einer Session auch Strings oder Integer speichern.. Das würde genau so funktionieren.. Also noch ein Beispiel: Du willst "Hallo" in einer Session namens "Name" speichern! Code:
PHP:
<?php 
session_start()
$_SESSION['Name']=Hallo;
var_dump($_SESSION['Name']);
?>
Ausgabe:
string(5) "Hallo"
Noch ein letztes Beispiel: Du Willst eine Überprüfung machen, ob der User auf "legalem" Weg auf deine Seite gekommen ist.. Also schreibst du ganz einfach eine if-else-Abfrage:
PHP:
<?php 
session_start();
/*In einer anderen Datei muss die Session natürlich auf true gesetzt worden sein*/
if($_SESSION['erlaubt']==true){
    echo "HEY, HO! Du Bist ein guter Mensch!";}
else{
   echo "Mieser Hacker!"}
//ZUm Schluss noch die Session-Variable wieder auf false setzten
$_SESSION['erlaubt']=false;
?>



Hoffe, ich konnte dir das Thema ein bisschen besser erklären!
Gruß, Fredmonster!
 
klar kannste so einen login machen, du musst die session nicht weggmachen kanst es aber, mit:
PHP:
session_destroy();
 
Ach so ja sry xD
Sagt mal ist das nicht gefährlich, wenn man dies Session nicht Zerstört? wenn
der User die Seite verlässt? oder geschieht das Automatisch ^^ siehe Wiederspruch von XraYSoLo

mfg web_spider :D
 
jetzt habe ich ein Problem:
Wenn jetzt die Datei User.php (soll Zugriffsgeschützt sein) das erste mal aufgerufen wird wird der Code ausgeführt. WEnn ich dann noch ein Paar mal
die Seite aufrufe klappt die Zugriffsberechtigung. Anscheinend wurde das erste mal noch keine Sessionid dem user zugeteilt. ich weiß es nicht.

mfg web_spider :D
 
index.php
da machste den session-kram,
die session wird beibehalten, bis session_destroy();
zum beispiel beim logout
wenn du ne session nur nach dem einlogg-formular startest,
kannste mit
if (isset($_SESSION['DERNAME'])) {

}
testen ob eingeloggt oder nich,
am besten du speicherst die ID die users rein, so kannste
die immer benutzen für weitere abfragen ..
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben