Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Session- und Including-Verhalten

Empfohlene Antworten

Veröffentlicht

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

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.

  • 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)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.