PHP - seitenübergreifende Variablen?
Hallöle
ich muss ein PHP Programm schreiben und hab leider keine Ahnung davon :D gibt es bei PHP sowas wie globale Variablen bzw kann ich variablen von einen Script zum nächsten irgendwie übergeben ?
und eine 2.Frage noch: Ich möchte Link zu verschiedenen Sachen erstellen zB zu Äpfeln, Birnen, Tomaten usw. Wenn man auf den jeweiligen Link click soll nur eine Seite erscheinen mit Ja ist verfügbar,bzw Nein ist nicht verfügbar. also ich möchte keine direkte Seite Apfel.php sondern viel mehr auf eine andere Seite mit Ist_verfügbar.php umleiten.
um das ganze mal verständlich zu machen der Benutzer clickt zwar auf einen Link zur Seite Apfel.php kommt aber bei IST_verfügbar.php raus. Geht sowas ?
danke
2 Antworten
Das kannst du mit Sessions machen. Diese sind so ähnlich wie Cookies, in denen du Variabeln speichern kannst. Um eine Session zu Starten benutzt du:
session_start();
Als nächstes speicherst du in die Session einen Wert:
$_SESSION['name'] = "wert";
Da wo name steht kommt der Name der Session rein und wo wert steht der Wert oder die Variabel.
Nun ist die Session gestzt, um Sie in einer anderen Datei zu öffnen und diese in eine Variabel zu speichern machst du folgendes:
session_start();
$variabel= $_SESSION['name'];
und so kannst du eine Session auslesen.
Quelle:
http://www.php-einfach.de/php-tutorial/php-sessions.php
Wenn ich deine zweite Frage richtig verstanden habe dann ändere doch einfach das Verweisziel im Link.
nun ich kann etwas c#
noch eine frage: wie kann ich eine instanzübergreifende Variable(hier ein Array aus einer von mir erstellten Klasse) erzeugen ? Quasi eine art Datenbank ohne Datenbank(eine Datenbank ist für diesen Fall zu viel Aufwand)
ich möchte das diese Variable überall verfügbar und gleich ist, also egal auf welcher Seite, egal welcher Nutzer geht das ? Oder muss ich dafür die werte erst in ein *.txt Document schreiben und dieses dann wieder auslesen ?
Kurz gesagt: Ja. Oder einen alternativen Mechanismus verwenden, z. B. Memcache http://php.net/manual/de/book.memcache.php
@Robinson97
@
1: das funktioniert so, aber dein wording ist ziemlich daneben (und verwirrend): man KANN der session einen namen geben, und zwar mit session_name(...) MUSS man aber nicht (hat was mit den cookies zu tun, führt hier aber zu weit).
mit session_start() wird aber das array $_SESSION verwaltet, d.h. dem aktuellen user wird der entsprechende inhalt von
$_SESSION
zugeordnet.
'name' ist der index des arrays, kann aber auch numerisch oder ein anderes array (etc) sein.
"und so kannst du eine Session auslesen." - nein, du liest den WERT eines array-eintrags aus.
zu 2:
also mit href='ist_verfügbar.php?sache=apfel' und enstprechend hast du EIN php-skript. die sache kannst du dort dann mit
$diesache=$_GET['sache'];
abfragen. im beispiel ist dann
$diesache == 'apfel'
vllt kannst du oben nochmal bei meinem neueren Problem vorbei schauen
danke :)
genauso mit dem $_SESSION-array: du legst dort einen eintrag an, der dein datenbank-array repräsentiert (z.b. 'dbarri') und versorgst diese mit werten:
$_SESSION['dbarri'][index] = wert;
oder liest diese aus:
wert = $_SESSION['dbarri'][index] = wert;
das mit der text-datei geht gar nicht: die verschiedene user würden die sich gegenseitig überschreiben.
Vielleicht wollte ich es so einfach wie möglich erklären, da er meint, dass er keine Ahnung von PHP hat. So ist es leichter sich eine Session als eine Art Cookie vorzustellen.