Verflixte Session Variablen

Gesperrt
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Verflixte Session Variablen

Beitrag von Tom Quenten »

Hallo @all,

ich versuche mich seit einigen Tagen mit dem Session Management von Contenido. Im Forum steht ne Menge drin, auch die Seite von Christian Köhntopp habe ich schon gelesen. Alles sehr interessant aber wie ich an eine Variable wieder rankomme die ich vorher mit $sess->register registriert habe das habe ich nirgends gefunden.

Folgendes habe ich mir zum Probieren mal zurechtgeschustert.

Code: Alles auswählen

<?
/***** registrieren der individuellen variablen *****/
$sess->register("mtn");
$sess->register("knr");
$sess->register("geb");

/***** variable $mtn bekommt einen wert *****/
$mtn = 15+8;

/***** dieser wert sollte jetzt auch in der $sess wiederzufinden sein, jedoch ohne erfolg *****/
echo var_dump($sess);

/***** auch so kein Erfolg *****/
echo $sess->mtn;
?>
durch var_dump bekomme ich sowas zurück (verkürzt auf den interessanten Teil)
["lang"]=> string(1) "1" ["challenge"]=> string(1) "1" ["mtn"]=> bool(true) ["knr"]=> bool(true) ["geb"]=> bool(true) } ["in"]=> string(1) "0" ["cookiename"]=> string(7) "sid_1_1" }

Der Wert ist aber nicht drin, die variablen existieren zwar (übrigends alle als boolesche Werte, wie ich das ändern kann = NULL AHNUNG) aber der Wert ist nicht da.

Ich habe auch schon mit verschiedenen Sachen rumexperimentiert aber bisher kein Erfolg. Mir will einfach kein :idea:



Kann mir jemand mal das Licht anknipsen?

Danke
tomquenten
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

*** make your own tools (wishlist :: thx)
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Beitrag von Tom Quenten »

Hallo emergence,

danke für Deine fixe Antwort.

Ja, das habe ich auch schon gefunden. Demnach sollte ich erst der Variablen den Wert zuweisen und dann mit $sess->register in die Session schreiben, gut hatte ich aber auch schon probiert - ohne Erfolg.

Hier -> http://www.contenido.org/forum/viewtopi ... blen+druck
habe ich jedoch gelesen das die Variable erst registriert werden muss und dann als globale zur Verfügung stehen soll. Das mit dem page_close(); habe ich auch schon probiert, ich weiß eben nicht ob die front_content bis zu ende kommt oder vorher abbricht.

Code: Alles auswählen

<?
/***** registrieren der individuellen variablen *****/ 
$sess->register("mtn"); 
$sess->register("knr"); 
$sess->register("geb"); 

/***** variable $mtn bekommt einen wert *****/ 
$mtn = 15+8; 
$sess->register("mtn");

/***** dieser wert sollte jetzt auch in der $sess wiederzufinden sein, jedoch ohne erfolg *****/ 
echo var_dump($sess); 

/***** auch so kein Erfolg *****/ 
echo $sess->mtn;

/***** und so auch nicht *****/ 
echo $mtn;

?>

Ich sehe es einfach nicht mehr, das Beispiel habe ich genauso umgesetzt, das läuft, nur mein eigener Code der nicht, bin ich blind?


danke
tomquenten
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ad. print_r($sess);
bei pt findet man nur die info das die variable registriert ist -> aber nicht welchen wert sie hat...

der wert der variable ist in den langen ziffernreihen versteckt...

klingt komplizierter als es ist... das sind base64 kodierte werte

was dort wirklich gespeichert ist bekommt man zb mit diesem stückchen code raus

Code: Alles auswählen

<?php
echo base64_decode($sess->that->db->Record['val']);
?>
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

mit $sess->register wird nur festgelegt, welche Variable bei einem page_close gespeichert wird.
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Beitrag von Tom Quenten »

Ok, danke euch beiden, das sid ne menge informationen, ich werde das jetzt mal probieren um zu verstehen was da passiert. Irgendwann werde ich auch mal eine :idea:


Danke
tomquenten
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Beitrag von Tom Quenten »

Ok, nach vielen Versuchen glaube ich nun etwas begriffen zu haben. Zum experimentieren habe ich folgendes geschrieben.

Code: Alles auswählen

<?php 
/***** prüfe ob die $_POST[rufnummer] Daten enthält *****/
if(!empty($_POST[rufnummer])){
$rufnummer = $_POST[rufnummer];
}

/***** prüfen ob variable in $sess registriert ist *****/
if ($sess->is_registered("rufnummer")) { 
    echo "ist registriert ".$rufnummer; 
/***** variable ist noch nicht registriert *****/
} else { 
    echo "ist nicht registriert"; 
    $sess->register("rufnummer"); 
}
?>

<form method="post" action="front_content.php">
<input type="hidden" name="idcatart" value="645">
<input type="text" name="rufnummer">
<input type="submit" value="senden">
</form>
Es geschieht, soweit ich das jetzt auch gerafft habe, folgendes...

es wird eine rufnummer, oder was auch immer, abgefragt, nach dem submit wird diese in der session registriert. wenn die session eine variable mit dem namen rufnummer registriert hat, wird diese ausgegeben. für mich ist der beweis das es funktioniert der, das ich jetzt nachdem die variable registriert ist, so oft auf den button drücken kann wie ich will, die variable wird nach wie vor ausgegeben und der wert ändert sich nicht.

Ich möchte jetzt eigentlich nur noch eine bestätigung von einem erfahrerenen user haben das das auch wirklich passiert was ich mir hier zurechtgereimt habe.



danke
tomquenten
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

bleibt nur noch die frage, warum du es unbedingt in die session schreiben möchtest

dann kann ich dir beantworten ob das, was du machen möchtest, richtig ist
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Beitrag von Tom Quenten »

Timo, das kann ich dir sagen.

Ich halte es einfacher in die Session zu schreiben, als mit $_POST von Seite zu Seite weiterzureichen. Darüber dachte ich hier auch an den Sicherheitsaspekt, ich halte es für sicherer, obwohl ich es nicht für unknackbar halte,jedoch dürfte, nach meinem technischen Verständnis, der Aufwand wesentlich größer sein.

Da ich Onlineformulare bereitselle in einem geschützen Bereich, wo viele Felder ausgefüllt werden, dachte ich mir wäre das der beste Weg, als ich begriffen habe wie einfach es ist $_POST Variablen zu verändern.

Sollte ich hier nun doch auf dem falschen Weg sein, gib mir bitte Feedback!


Gruss
tomquenten
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

da muss ich ein wenig werbung machen für ein modul das timo mal geschrieben hat
-> http://contenido.org/forum/viewtopic.ph ... highlight=
ist vielleicht ganz nützlich für das was du machen möchtest...

ach so schade, der link auf das modul geht nicht mehr...
*** make your own tools (wishlist :: thx)
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Beitrag von Tom Quenten »

Timo wenn du das Modul noch haben solltest, wäre es fantastisch wenn du es hier noch mal zur Verfügung stellen würdest! Das klang recht vielversprechend...


Gruss
tomquenten
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
Gesperrt