Variable zwischenspeichern

zmedia

Angesehenes Mitglied
Hi zusammen

Gibt es eine Möglichkeit, eine GET_Variable für den weitern gebrauch zwischen zu speichern? Ohne gleich diese in eine DB oder ein txt abzufüllen.

Also wenn ich zu Beispiel die Sprache wechsle ...&sprache=en
Damit ich immer auf die Variabel Sprache zurückgreifen kann.

Danke René
 
Ich nehm an, Du sprichst von PHP. Das kenn ich leider nicht, aber ich speichere solche Sachen immer in der Session. Und soweit ich weiss, macht man das bei PHP auch (such doch mal nach $_SESSION oder $HTTP_SESSION_VARS).

Griessli
Irene
 
Danke Irene

session hatte ich bereits ausgeschlossen. Sorry hätte es auch erwähnen können.

Weil session wie cookies gespeichert werden, bedingt es dass der Browser diese auch akzeptiert. (nach meinem Test zu urteilen). Also suche ich eine Möglichkeit welche Userseitig keine Einschränkungen haben kann.

Gruss René
 
Hmm gerade bei einer "Spracheinstellung" kannst du doch zB. ...index.php?page=home&sprache=DE&id=2 in der URL haben und mit $_GET auslesen..
oder willst das nicht?
 
Richtig das will ich nicht! ;-)

Möchte meine Url so schlank wie Möglich halten. ...?seite=home

Das will ich auch so belassen, desshalb mein Problem.
 
QUOTE Weil session wie cookies gespeichert werden, bedingt es dass der Browser diese auch akzeptiert.

PHP macht das transparent. Möglich ist entweder, die Session-Id in einem Cookie zu speichern oder sie über die URL zu übergeben.

Ohne eine ID wirst du nicht auskommen, um verschiedene Nutzer unterscheiden zu können.
 
Und da ich nichts weiter in meiner url stehen haben will, muss ich die session wohl oder übel in einem Cookie speichern. ;-(


Und wenn ich es so oder so als Cookie speichern muss, kann ich es gleich als solches defoieren und brauche keine session.
 
Über $_POST wäre noch eine Möglichkeit, man braucht zwar einen Button, aber den könnte man auch schön formatieren
 
Ja, das ginge mit einem hidden Feld.

Nur will ich die variable bei jeden Klick (auch aus der Navigation) auslesen können. Un nur wegen dem das ganze umstellen? Nö.

So wie es aussieht komme ich nicht um Session-Cookie rum.
 
Du könntest natürlich auch ein Frame Set bauen und die Variable in einem versteckten Frame speichern.
Nachteil: Manche mögen keine Frames.
Vorteil: stets direkter Zugriff ohne reload falls sich der Wert ändert.
 
Ja, manche mögen kein Frame.
wink.gif


Und zudem wäre es eh ein viel zu grosser Aufwand alles umzubauen.


 
Ich wegen zwei Datenbankfeldern seit heute nachmittag am umbauen und fasse ich Deinen Beitrag mal als Ansporn auf.
Warum fragst Du eigentlich. Du kennst doch Cookies. Meines Wissens kann man $_SESSION auch irgendwie im Cache speichern. Diese Methode gilt aber als instabil und ich hab nichts gutes drüber gefunden.
Zuletzt liegst aber meistens doch am Programmierer.
Wenn Du Dich damit schlau machst, lass doch bitte von Dir hören.

function_exists('session_cache_expire')

 
Bei mir werden mit session_cache_expire die Cookies nicht beim user, sondern unter C:\apachefriends\xampp\tmp abgelegt.,
aber leider auch nicht mehr gelöscht.
Deswegen benutze ich das nur zum Einloggen in den Memberbereich.
Das versteckte Frame dient der sicheren Funktionalität und einfache $_SESSION gibt's nur für den Luxus.
wink.gif
 
Habe das ganze jetzt mit Cookies gelöst. Schliesslich handelt es sich "nur" um die Sprachwahl. Falls ein User Cookie nicht akzetiert wird er halt die Seite mit der Browserstandard Sprache sehen.

Beim User Login nutze ich auch $_session und Frame.

Gruss René
 
Ich muss jetzt nochmal d umm nachfragen. Bei PHP ist es doch auch (wie z.B. bei ASP) so, dass eine Session-ID jeweils per Cookie zwischen Browser und Server hin- und zurückgeschickt wird. Die Sessionvariablen sind nur auf dem Server vorhanden, ob jetzt In-Memory oder in nem File oder DB, ist ja egal. Der Server findet die zugehörigen Sessionvariablen aufgrund des Session-ID-Cookies, das der Browser mit jedem Request mitschickt. Und ob da jetzt nur eine oder mehrere Sessionvariablen vorhanden sind, spielt für den Roundtrip keine Rolle, übermittelt wird immer nur das Session-Cookie und der Benutzer wird von seinem Browser höchstens einmal gefragt, ob er ein Cookie akzeptieren will.

Macht es da nicht mehr Sinn, benutzerspezifische Variablen in der Session zu speichern? Falls irgendwann einmal noch ein weiterer Wert pro Benutzer benötigt wird, setzt man den einfach zusätzlich in die Session und am Rest ändert nichts. Und soweit ich gelesen hab, kann PHP für die Session-ID automatisch herausfinden, ob ein Browser Cookies unterstützt oder nicht, und setzt entsprechend die Session-ID in ein Cookie oder halt in die URL.

Oder spricht irgendwas gegen die Verwendung von Sessions bei PHP?

Wäre dankbar für Aufklärung ;-)

Griessli
Irene

 
dagen spricht eigentlich nur das die Session_id immer an die URL angehängt wird wenn keine Cookies aktzeptiert werden. Das ist für Suchmaschinen ziemlich schlecht.
Bei der ersten Anfrage wird die Session_id per Cookie gesetzt und an die URL gehängt, wenn das Cookie dann vorhanden ist wird nur noch das Cookie zur übergabe verwendet. Also hat z.B. der Google-Bot auf Seiten die Sessions verwenden immer die Session_id in der URL. Anders bekommt man leider nicht raus ob der User das Cookie angenommen hat... erst beim 2. Aufruf.
 
Genau Manuel, danke für den eitrag, so muss ich das nicht mehr schreiben.

Gruss rené
 
Hallo!

Die Session-ID wird ja nur an die URL angehängt, wenn der Benutzer keine Cookies annimmt.

Goolgebot akzeptiert zwar auch keine Cookies ist aber m. E. so schlau, dass er diese nicht als Teil der URL im Index speichert. ==> habe ich zumindest schon lange nicht mehr gesehen.

MSN speichtert die Session-ID dagegen gnadenlos mit ab.

Das kannst du aber im Script abfangen in dem Du die Session nur dann startest, wenn der Besucher kein Bot ist.

Sollte doch so funktionieren:

CODE
/*Bot-Sperre*/
$giga = strpos($HTTP_USER_AGENT,"gigabot");
$google = strpos($HTTP_USER_AGENT,"googlebot");
$msn = strpos($HTTP_USER_AGENT,"gigabot");
$botstring = $giga+$google+$msn;
if ($botstring < 1)
{
@session_start();
}



CU

Sascha
 
bringt mir aber überhaupt nichts, weil wenn ich Session verwenden möchte dann muss ich ja auch mit $_SESSION['key'] auf eine Session-Variable zugreiffen können oder eine setzten. Wenn ich die Session aber nicht starte wird das glaub ich zu einigen Fehlermeldungen führen... ein Test wäre es aber wert.
Oder man macht es gleich "richtig" und baut sich eine eigene Session-Klasse die dann bei einem Bot alle SET oder GET Anfragen mit "" zurück gibt:) Dafür wäre deine Lösung noch richtig gut
wink.gif
 
Zurück
Oben