[PHP] Sessions werken niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

ik was thuis een loginscriptje aan het maken. Maar het deed het niet. Ik kijk in de faq van GoT. Kopieer netjes het scriptje:
code:
1
2
3
4
5
6
7
8
9
session_start ();

if ( !isset ( $_SESSION [ 'blaat' ] ) ) {
   $_SESSION [ 'blaat' ] = 'Blaat';
} else {
   echo 'Blaat was reeds gedefinieerd: ' . $_SESSION [ 'blaat' ];
}

echo "<br> sesid : " .session_id() ;


Maar dit werkt ook niet.
Ik heb zelf de session_id() erbij gezet. Die heeft wel een waarde en die blijft ook hetzelfde als ik de pagina vernieuw.
Maar ik krijg niks geen sessie waarden te zien, hoevaak ik ook vernieuw.

Ik heb een beetje een basis install, red hat, apache 1.3.20 en php 4.0.6.

PHPINFO() zegt:

session
Session Support enabled

Directive Local Value Master Value
session.auto_start
Off Off
session.cache_expire
180 180
session.cache_limiter
nocache nocache
session.cookie_domain
no value no value
session.cookie_lifetime
0 0
session.cookie_path
/ /
session.cookie_secure
Off Off
session.entropy_file
no value no value
session.entropy_length
0 0
session.gc_maxlifetime
1440 1440
session.gc_probability
1 1
session.name
PHPSESSID PHPSESSID
session.referer_check
no value no value
session.save_handler
files files
session.save_path
/tmp /tmp
session.serialize_handler
php php
session.use_cookies
On On

Weet iemand wat er fout zit, of wat ik fout doe.

oja er zit ook nog een foutje in het 1e scriptje in de faq:
session_registered moet zijn session_is_registered

[ Voor 8% gewijzigd door Verwijderd op 09-08-2003 16:00 ]


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
Huiswerk.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
php.net doet het niet :(

Fatal error: Call to undefined function: delim() in /local/Web/sites/phpweb/include/layout.inc on line 358

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik wordt nu helemaal moe

code:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
if (!isset($HTTP_SESSION_VARS['count'])) {
    $HTTP_SESSION_VARS['count'] = 0;
} else {
    $HTTP_SESSION_VARS['count']++;
}

echo $HTTP_SESSION_VARS['count'];
?>


copy paste van PHP.net

en de sessievariabele wordt NIET gezet, dus blijft iedere keer 0

[ Voor 27% gewijzigd door Verwijderd op 09-08-2003 16:37 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Da's dus geen c/p van die eerder genoemde link.
Je hebt er een aanpassing nog op gedaan. En die aanpassing heb je bovendien fout gedaan. (als je iets wijzigt, moet je het wel OVERAL wijzigen)

[ Voor 68% gewijzigd door gorgi_19 op 09-08-2003 16:41 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry, zat een type foutje in de post,
mijn code was wel goed (wel overal HTTP_SESSION_VARS van gemaakt).

maar het werkt niet

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Zet eens
PHP:
1
print_r($HTTP_SESSION_VARS);
neer na je laatste echo en laat hier eens zien wat er gebeurd? Kun je toevallig bekijken of er in je tmp directory wel een file wordt aangemaakt?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Bij mij werkt de door jou geposte code prima. Als je met een refresh wilt kijken of de sessie werkt, moet je browser wel cookies accepteren.

Om te kijken of je browser de sessie-cookie wel goed verwerkt en meestuurt, kijk dan achter HTTP_COOKIE in phpinfo().

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

###### Kick: Zit met zo'n zelfde probleem ########

En aangezien ik het onzin vind een nieuwe topic te starten dan maar hier. :) Ik ben bezig met een login-systeem. Op de test server hier werkt het prima. Maar op de server waar het moet komen te staan niet.

De server waar het komt te staan is overgens niet bij ons bedrijf, maar bij de provider: Zeelandnet. Wat session-info van die server:

PHP Versie: 4.0.6
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sessions:           Local:      Master:
-----------------       ---------   ---------
session.auto_start      Off     Off 
session.cache_expire        180     180 
session.cache_limiter       nocache     nocache 
session.cookie_domain       no value    no value 
session.cookie_lifetime     0       0 
session.cookie_path     /       / 
session.cookie_secure       Off     Off 
session.entropy_file        no value    no value 
session.entropy_length      0       0 
session.gc_maxlifetime      1440        1440 
session.gc_probability      1       1 
session.name            PHPSESSID   PHPSESSID 
session.referer_check       no value    no value 
session.save_handler        files       files 
session.save_path       /tmp        /tmp 
session.serialize_handler   php     php 
session.use_cookies     On      On

Ik heb ook op PHP.net gezocht en natuurlijk hier op GoT, vandaar dat ik op dit topic uit kwam. Ik heb de bovenstaande voorbeelden getest, want ik vertrouwde mijn eigen code niet.

Deze twee stukjes heb ik getest op zowel de server hier, als op die van de provider. Bijde deden het wel lokaal hier, maar beide doen het niet op de server van de provider. :?

Code 1
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
session_start ();

if ( !isset ( $HTTP_SESSION_VARS [ 'blaat' ] ) ) {
   $HTTP_SESSION_VARS [ 'blaat' ] = 'Blaat';
} else {
   echo 'Blaat was reeds gedefinieerd: ' . $HTTP_SESSION_VARS [ 'blaat' ];
}

echo "<br> sesid : " .session_id() ;
?>

Deze geeft trouwens in alletwee wel een session_id terug, maar op de provider geen "Blaat...".

Code 2
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
if (!isset($HTTP_SESSION_VARS['count'])) {
    $HTTP_SESSION_VARS['count'] = 0;
} else {
    $HTTP_SESSION_VARS['count']++;
}

echo $HTTP_SESSION_VARS['count'];
?>
Deze telt bij elke refresh op de server hier door, maar op de provider blijft ook deze op 0 steken.

Ik snap echt niet meer hoe dit nou komt. Waarschijnlijk vergeet ik iets ofzo, maar ik ben op dit moment even de weg helemaal kwijt. :{

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-09 13:13
gebruik
PHP:
1
2
3
4
<?PHP
$var = "dit is mijn var";
session_register("var")
PHP?>
om een var te reggen en
PHP:
1
2
3
<?PHP
$var = $HTTP_SESSION_VARS['var'];
PHP?>
om een var op te vragen

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

TRON schreef op 09 September 2003 @ 15:36:
gebruik
PHP:
1
2
3
4
<?PHP
$var = "dit is mijn var";
session_register("var")
PHP?>
om een var te reggen en
PHP:
1
2
3
<?PHP
$var = $HTTP_SESSION_VARS['var'];
PHP?>
om een var op te vragen
Yes! Erg bedankt. Het werkt.
Moet misschien toch eens vaker met oude versies van PHP werken ipv altijd nieuwe waar $_SESSION wel werkt. :{

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-09 13:13
Tja, beetje vaag, maar 't werkt wel zo :). Komt in latere releases wel goed denk ik.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)

Pagina: 1