Zum Inhalt springen

Session- und Including-Verhalten


Empfohlene Beiträge

Hallo zusammen,

ich möchte nur mein Verständnis jetzt festigen und momentan aufgetauchten Defizite ausmerzten =)

Ich habe eine index.php, in der ich alle andere notwendigen Dateien includiere.

			     <?php
if(empty($_GET['seite']))
$_GET['seite'] = "index";
if(file_exists("inc/".$_GET['seite'].".php"))
{
include("inc/".$_GET['seite'].".php");
}
else
{
include("inc/error.php");
}


?>[/PHP]

Ganz oben beginne ich mit meine Sessionstart.

[PHP]<?php
session_start();
?>

weitere Seiten auf den includieren Dateien verlinke ich mit mit dem "?":

echo "Sie sind nicht eingeloggt.<br>\n".
"Bitte <a href=\"?seite=index\">loggen</a> Sie sich zuerst ein.\n";[/PHP]

Mein Verständnis dazu ist folgendes:

1. Includierte Dateien werden zusammen mit der index.php komplett neu geladen (Also nicht nur die zu includierende Datei wird hinzugefügt)

2. Weitere Werte übergebe ich beim includieren mit immer dem &:

[PHP] echo "<a href=\"?seite=profil&id=".$row['ID']."\">".$row['Nickname']."</a>\n";

Frage: können auch mehre "&" hintereinander genutzt werden?

3. Die Session auf meiner index.php ist ausreichend für die Komplette Homepage. Nur ich muss sie ab der dritten Ebene aufwerts als Variable mitgeben:

(Ich habs leider noch nicht geschafft, weil ich nicht Verstehe, ab wann die Session ID zum Beispiel nicht mehr erkannt wird bzw. wie mehrere Scripte die Session für sich nutzen können)

Denn mit session_start() bekomme ich die ganze Zeit nur immer eine Ausgabe, die sich nie ändert: z.B: 906ab9053468660df7cd626fd16de7cd

Wenn ich jetzt aber die Session als Konstante übermittel - in einem tutorial habe ich dazu das gefunden:

<a href="test.php?<?=SID?>">next</a>

- wie lange ist sie dann gültig und kann ich sie immer und überall abrufen bis ich die Session beende?

4. So lange ich auf der index.php - auf der die Session gestartet wird - auch aus includierden Dateien andere Dateien includiere, muss/bzw darf ich auf andere Seiten keine neue Session starten, da es sonst zu der header-fehlermeldung kommt, dass die session schonvorher gestartet wurde?

Ich weiss, alles kann man sich im internet aneignen =) Das will ich ja auch aber anscheinend komm ich mit den Fakten etwas durcheinander. Um das gerade zu bügeln ohne mich mit anderen abweichenden Thematiken auseinanderzusetzen, indem die Informationen zwar enthalten sind, aber in einem anderen Kontext stehen, bitte ich ja um eure Hilfe.

Ich hoffe ich bin nicht ganz auf dem Holzweg. Zumindest scheint es auf meiner Übungspage zu funktionieren. Aber ich werd das Gefühl nicht los das ich es unsauber angehe .. =(

Danke für eure Hilfe.

LG Oct

Link zu diesem Kommentar
Auf anderen Seiten teilen

in PHP kannst du über $_SESSION['ID'](war das so? php ist lange her ... ) von überall her auf die Session/ SessionID zugreifen. D.H. Es ist eigentlich nicht nötig, diese als GET oder POST Parameter zu übergeben.

Das "&" ist übrigens die Parameterübergabe per GET-Methode (also ?p1=w1&p2=w2...) und kann natürlich mehrfach vorkommen.

Die Session wird automatisch nach dem (in der php.ini) gesetzten Session-Timeout zerstört. Das behandeln der Logins usw. musst dann aber trotzdem du machen.

Mach dich am besten mit folgenden Seiten vertraut:

PHP - SELFPHP: Version 5.4.7 Befehlsreferenz - Tutorial – Kochbuch – Forum zum Thema PHP

PHP Tutorial

sowie als Grundlage:

SELFHTML 8.1.2 (HTML-Dateien selbst erstellen)

Grüße.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Ein kleiner, aber wichtiger tipp zur sicherheit:

include("inc/".$_GET['seite'].".php");

mach sowas niemals ohne den getparameter mit einer whitelist zu prüfen, da der user mit punktoperatoren in den pfadangaben fast auf jede beliebige datei auf dem server zugreifen kann ... (einschließlich systemdateien wenn der server falsch konfiguriert ist)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...