Pagina 1 van 1

mijn sessies werken niet...

Geplaatst: 05 feb 2003, 21:36
door Pi R²
Ik heb nogmaals een probleemke met php

Op de ene pagina heb ik het volgende onnozel codeke gezet
<?php
session_destroy();
session_start();
$naam = "Pi R²" ;
session_register("naam");
$session_id = session_id() ;
echo($session_id."<br>\n");
echo($_SESSION["naam"]);
?>
normaal gezien krijgt ge dan een nieuwe sessie, waarin een variabele naam wordt opgenomen, en dan wordt in u scherm weergeven wat de sessie-id is en de variabele "naam" in die sessie inhoud. Dit werk ook perfect.

Zoals ge misschien wel weet is de bedoeling dat ge met sessies iets kunt opslaan en naar ergens anders kunt openen. Dus heb ik een andere pagina gemaakt met volgende code in.
<?php
$session_id = session_id() ;
echo($session_id."<br>\n");
echo($_SESSION["naam"]);
?>
Volgens mijn bescheiden php-kennis zou nu dezelfde sessie-id en dezelfde inhoud voor de variabele naam op het schermke moeten verschijnen. Dit werkt nu ineens NIET. Wat kan er mis lopen? Of heb ik sessies verkeerd begrepen? Merci voor de hulp

Geplaatst: 05 feb 2003, 22:19
door Pi R²
Ja, het is al niet meer nodig : ik heb niet gezien dat de eerst u sessie moet starten met session_start() ... Lomp he. :oops:

Geplaatst: 05 feb 2003, 22:24
door Sensei Zeon
de lompste fouten daar let je niet op en die zorgen voor de grootste frustratie

Geplaatst: 05 feb 2003, 22:28
door NuKeM
Eerste pagina

Code: Selecteer alles

<?php 
session_destroy(); 
session_start(); 

session_register("naam"); 
$naam = "Pi R²" ;

$session_id_test = session_id();
echo session_id();

echo "Deze waarde zal worden doorgegeven naar de volgende pagina: $naam"; 
?>
2de pagina

Code: Selecteer alles

<?php 
session_start();  <- dit moet op elke pagina HELEMAAL bovenaan staan!!

$session_id_test2 = session_id() ; 

echo "De session id van op de vorige pagina was $session_id_test \n";
echo "Deze moet dezelfde zijn al deze van deze pagina, namelijk $session_id_test2 \n";

echo "Deze waarde werd doorgegeven via de vorige pagina: $naam";
?>
Kan zijn dat er wat foutjes instaan (ik zit dit hier maar wat uit mijn hoofd te typen en heb al enkele maanden gaan php lijntje meer gezien :? ).
Probeer het eens.

Geplaatst: 05 feb 2003, 22:31
door NuKeM
Ha tis al opgelost :) mooi zo...
Inderdaad op elke pagina moet dat boven aan staan :)

Geplaatst: 06 feb 2003, 05:13
door Erik
yep session_start();

moet de eerste regel zijn vrij logisch dacht ik zo :mrgreen:

Geplaatst: 06 feb 2003, 16:56
door Pi R²
NuKeM schreef:Ha tis al opgelost :) mooi zo...
Inderdaad op elke pagina moet dat boven aan staan :)
Toch bedankt voor de reacties allemaal 8) :wink:

Geplaatst: 22 jun 2003, 12:29
door Pi R²
Ik heb nog een paar probleemkes met een mijn sessions...
De gegevens van een sessie worden blijkbaar niet doorgegeven naar een ander bestand. De scripts hebben eerder al gewerkt, maar sinds een 2 dagen merk ik dat ze niet meer werken.

De pagina's bevatten allemaal start_session(); en de gegevens worden uitgelezen met $_SESSION["naam"]. Normaal is dit voldoende dacht ik?

Ik heb vroeger al gemerkt, toen het wel min of meer werkte, dat ik gegevens van pagina A alleen kan doorsturen naar pagina B op voorwaarde dat er op pagina A een link staat naar pagina B. Dan stond er telkens automatisch achter de bestandsnamen ?PHPSESID=6sfy5564h56gv... zonder dat ik dat er gewilt bij liet komen. Nu staat dat er blijkbaar niet meer bij.

Ik kon er mee leven dat ik een hyperlink moest leggen tussen 2 bestanden, en dat ik dat niet gewoon in de adresbalk kon typen, maar nu werkt het systeem helemala niet meer. Kan iemand daar een zinnige verklaring voor geven?

Zou het aan de server kunnen liggen (tripod.lycos)? Of moet ik nu zelf zorgen dat er achter de bestandsnaam nen $_GET[PHPSESID] staat of aan wat kan dat nog liggen?

Geplaatst: 22 jun 2003, 14:38
door meon
Nee, wat jij zegt zou normaal voldoende moeten zijn...
Dat met die phpsesid ... ik snap ook nog altijd niet waarom het soms wel, soms niet er bij komt...

Je hebt bij session_register toch geen $ gebruikt eh?
dus gewoon session_register('var1','var2');
Uit gewoonte maak ik ook wel eens de fout van daar $var te typen..

Geplaatst: 22 jun 2003, 14:45
door Pi R²
Ik heb nu eens hetvolgende gedaan: in de inlogpagina waarin dat de sessie gevuld wordt met de gegevens over de gebruiker en zijn rechten, heb ik voor de link naar het administratiecentrum hetvolgende gedaan:

Code: Selecteer alles

echo '<a href="admin.php?PHPSESSID='.session_id.'">';
Dus nu vult hij in die link automatisch de sessie id in zoals het er soms opkomt (vroeger eigenlijk altijd, en nu plots niemeer), en nu lijkt dat dus weer perfect te werken. Ik moet dus blijkbaar altijd de id meegeven bij lycos.

Ik vind het persoonlijk geen praktische oplossing om elke link die ik vind te gaan aanpassen, maar in augustus gaan ik naar dommel, en dan zal da wel zo werken hoop ik.

Ik heb ook gemerkt, als ik naar een pagina ga waar ik door mijn beveiligingssyteem geen sessie gevonden heb, en er staat bv. nieuws_toevoegen.php , dan geeft hij de verbodentoegangmelding. Als ik daarachter nu in den adresbalk ?PHPSESSID=.... plak, dan werkt dat plots wel.

Zou dat in php.ini ingestelt kunnen worden ofda hij de sesid moet meegeven of niet?

Geplaatst: 22 jun 2003, 17:33
door airzimmy

Code: Selecteer alles

session.use_trans_sid  boolean

    session.use_trans_sid whether transparent sid support is enabled or not. Defaults to 0 (disabled).

        Note: For PHP 4.1.2 or less, it is enabled by compiling with --enable-trans-sid. From PHP 4.2.0, trans-sid feature is always compiled.

        URL based session management has additional security risks compared to cookie based session management. Users may send an URL that contains an active session ID to their friends by email or users may save an URL that contains a session ID to their bookmarks and access your site with the same session ID always, for example. 
Maar dit wil natuurlijk niet zeggen dat het op jouw host verkeerd staat.

Geplaatst: 22 jun 2003, 17:36
door Pi R²
enneuh, wa bedoelt ge daarmee airzimmy? :oops:

Geplaatst: 22 jun 2003, 17:55
door meon
Op Lycos.nl gebruiken ze PHP4U 4.0.2, en daar zullen sessies nog niet zo uitgebreid in zitten als in de tegenwoordig meer gangbare PHP 4.3.0 ... In PHP 3 had je immers nog geen sessies zoals we ze nu kennen, dus misschien moet dat via de URL dan wel...

Al is het vreemd als je zegt dat het vroeger wel heeft gewerkt...

Geplaatst: 22 jun 2003, 19:39
door Pi R²
Maar airzimmy zegt daar zo iets : als ge den session id doorgeeft, en ge plakt die vanboven in den titelbalk, kunt ge dan met meerdere mensen tegelijk op die sessie zitten ofzo? En hoe moet ge dat dan oplossen (vb. den ip derin steken en laten controleren ofzo?)

Geplaatst: 22 jun 2003, 20:30
door airzimmy
neen, ge zou die sessie kunnen stelen als ge dat doorgeeft, die kans is wel klein daar er meestal nog ergens een verificatie in kan zitten.
Er zijn er die zelf hun id's beginnen te genereren met ip en nog andere zaken er in te steken, dan te hashen met iets,....
Over het algemeen zijn de standaard id's uniek genoeg hoor.