[PHP] Sessies uit de documentatie werken niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • r.platenkamp603
  • Registratie: Oktober 2001
  • Laatst online: 08-08-2020
Dus ik dacht ff leuk met php, sessions te gaan leren :9~
Maar dit werd echter een :'( K'heb al van alles af gezocht google forums enz enz.
Dus ik begon met goede moed:
PHP:
1
2
echo "Look at this nasty error below:<br />"; 
session_start();

De tutorial van http://www.phpfreaks.com/tutorials/41/1.php door te werken,
Maar nix van dit alles :(
Ik maar ff gekeken of sessions wel aan stond dus
PHP:
1
PHPINFO();

Met als uitkomst:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Session Support     enabled
Registered save handlers    files user

Directive   Local Value Master Value
session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
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_divisor  1000    1000
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   /var/lib/php/session    /var/lib/php/session
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    Off Off
session.use_trans_sid   Off Off

Dus ik begrijp niet warom bij mij de sessions niet werken,
waarschijnlijk word er nu gezecht van maar ehj je vergeet dit of dat....
maar helaas mij is het nog niet gelukt.
Dus ik naar http://nl3.php.net/function.session-start voor hulp
en probeer hun 1e voorbeeld... ook dit zonder enig suc6 8)7
Hopelijk kan iemand mij helpen :9

// Edit
voor mensen die dit met eigen ogen willen zien ;)
http://platenkamp.mine.nu/Pages/page1.php

[ Voor 7% gewijzigd door r.platenkamp603 op 01-07-2005 19:17 . Reden: link ]


Acties:
  • 0 Henk 'm!

  • Mei
  • Registratie: Juni 2005
  • Laatst online: 17-10-2024

Mei

Wat gaat er precies fout dan?

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
PHP:
1
2
3
4
<? 
session_start(); 
echo "Look at this nasty error<br />";  
?>

Krijg je het op deze manier ook? Dus geen echo (output) voordat je de sessie zet.

[ Voor 28% gewijzigd door Noork op 01-07-2005 19:22 ]


Acties:
  • 0 Henk 'm!

  • r.platenkamp603
  • Registratie: Oktober 2001
  • Laatst online: 08-08-2020
Nou volgens mij had hij op http://platenkamp.mine.nu/Pages/page2.php
PHP:
1
2
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];  // cat

mogen echo-en
--- @ Noork
nope nog geen error listing zo als http://www.phpfreaks.com/tutorials/41/1.php
beschrijft dus:
code:
1
2
3
Warning: Cannot send session cookie - headers already sent by (output started at session_header_error/session_error.php:2) in session_header_error/session_error.php on line 3

Warning: Cannot send session cache limiter - headers already sent (output started at session_header_error/session_error.php:2) in session_header_error/session_error.php on line 3

[ Voor 60% gewijzigd door r.platenkamp603 op 01-07-2005 19:24 ]


Acties:
  • 0 Henk 'm!

  • Mei
  • Registratie: Juni 2005
  • Laatst online: 17-10-2024

Mei

Kwam ik net achter nadat jij je bericht gewijzigd had :P. Hmm, me snapt hem niet meer...

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Geef eens wat meer uitleg. Dit is geen doen zo.

Acties:
  • 0 Henk 'm!

Verwijderd

Als je gaat ontwikkelen met PHP, zet dan (tijdens de ontwikkelfase) altijd error reporting zo strict mogelijk, en zorg dat errors / warnings / notices worden getoond.

Zet dus bovenaan al je scripts:

PHP:
1
2
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );

Beter nog: stel het standaard in op je development server.

[ Voor 3% gewijzigd door Verwijderd op 01-07-2005 19:24 ]


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
r.platenkamp schreef op vrijdag 01 juli 2005 @ 19:21:
Nou volgens mij had hij op http://platenkamp.mine.nu/Pages/page2.php
PHP:
1
2
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];  // cat
Zijn de variabelen wel ingevuld?
mogen echo-en
--- @ Noork
nope nog geen error listing zo als http://www.phpfreaks.com/tutorials/41/1.php
beschrijft dus:
code:
1
bla
Waarom doe je het dan toch fout, zoals in de tutorial als is vermeld?

En neem de php faq eens door. Staan nuttige zaken in: P&W FAQ - PHP

[ Voor 12% gewijzigd door Noork op 01-07-2005 19:27 ]


Acties:
  • 0 Henk 'm!

  • r.platenkamp603
  • Registratie: Oktober 2001
  • Laatst online: 08-08-2020
Verwijderd schreef op vrijdag 01 juli 2005 @ 19:24:
Als je gaat ontwikkelen met PHP, zet dan (tijdens de ontwikkelfase) altijd error reporting zo strict mogelijk, en zorg dat errors / warnings / notices worden getoond.

Zet dus bovenaan al je scripts:

PHP:
1
2
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );

Beter nog: stel het standaard in op je development server.
Thx, dit levert iig een foutmelding op.
Dit had ik al even geprobeert maar iig mis gegaan |:(

Maar dit lost nog niet de fout van
http://nl3.php.net/function.session-start
mmm wel raar, k'heb zelf geen verstand van dit alles (sessions)
dus dan is het ook wel lastiger om te beginnen met fout zoeken, van daar dit topicje.

de fout melding die ik krijg id
code:
1
2
3
Warning: session_start(): open(/var/lib/php/session/sess_6b215d9de4d84bed016a6b7fd4323329, O_RDWR) failed: Permission denied (13) in /var/www/html/Platenkamp/Pages/page3.php on line 5

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/html/Platenkamp/Pages/page3.php:5) in /var/www/html/Platenkamp/Pages/page3.php on line 5

failed: Permission denied (13) valt me op... mmm misschien een rechten probleem?

[ Voor 26% gewijzigd door r.platenkamp603 op 01-07-2005 19:31 . Reden: edit fout code code ]


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Welke foutmelding krijg je dan? Je mag dus niets outputten voordat je session_start() aanroept. Anders krijg je een error. Foutmeldingen binnen PHP zijn over het algemeen duidelijk genoeg om zelf mee aan de slag te gaan.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Met die foutmelding bedoen je waarschijnlijk iets als "headers already sent"?

Dat betekent dus dat je geen output moet genereren vóórdat je de sessie hebt gestart. Er wordt bij het starten van een sessie namelijk een cookie verstuurd in de HTTP headers. Die headers komen vooraan elke response van de server. Zodra je output genereert, worden de headers verstuurd, en wordt daarna je output naar de client verzonden. Dan kun je niet alsnog even een cookie sturen.

[edit]
Nee dus. Waarschijnlijk een gevalletje van een niet-bestaande directory voor de tijdelijke sessie-bestanden, of onvoldoende rechten op die directory.

Probeer eens vanaf de command line he volgende commando te geven:

install -d -m0700 -o piet -g root /var/lib/php/session

Waarbij piet de gebruiker is waaronder je webserver (Apache?) draait.

[ Voor 31% gewijzigd door Verwijderd op 01-07-2005 19:34 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

"Een foutmelding"... Daar kan niemand wat mee. Samengevat is je topic onduidelijk en vaag tegelijk. Er is niet duidelijk wat je precies probeert, en verder ben ik er niet echt van overtuigd dat je de documentatie goed doorgekeken hebt.

Lees de quickstart in onze FAQ eens even door, en geef alle informatie die we nodig hebben om je te helpen. Dit gaat nergens heen zo. Ik pas ook je titel even aan, aangezien de huidige titel niets zegt over je probleem.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • r.platenkamp603
  • Registratie: Oktober 2001
  • Laatst online: 08-08-2020
Mmm ff in de dit gecheked ...
code:
1
2
3
[root@localhost ~]# ll /var/lib/php/
total 12
drwxr-xr-x  2 root root 12288 May 20 16:13 session


apache.apache kan hier niet in schrijfen of zeggen jullie, nee niet deze dir chmod-de?

Acties:
  • 0 Henk 'm!

Verwijderd

r.platenkamp schreef op vrijdag 01 juli 2005 @ 19:36:
Mmm ff in de dit gecheked ...
code:
1
2
3
[root@localhost ~]# ll /var/lib/php/
total 12
drwxr-xr-x  2 root root 12288 May 20 16:13 session


apache.apache kan hier niet in schrijfen of zeggen jullie, nee niet deze dir chmod-de?
Daar kan Apache inderdaad niet in schrijven. Probeer (als root) het bovengenoemde commando uit te voeren. Het is overigens uit het hoofd, en ongetest, maar volgens mij moet het zo lukken.

Acties:
  • 0 Henk 'm!

  • r.platenkamp603
  • Registratie: Oktober 2001
  • Laatst online: 08-08-2020
Verwijderd schreef op vrijdag 01 juli 2005 @ 19:38:
[...]

Daar kan Apache inderdaad niet in schrijven. Probeer (als root) het bovengenoemde commando uit te voeren. Het is overigens uit het hoofd, en ongetest, maar volgens mij moet het zo lukken.
Mijn dank is groot :9

Ik heb de
code:
1
2
3
[root@localhost ~]# ll /var/lib/php/
total 12
drwxrwxrwx  2 root root 12288 Jul  1 19:33 session

aan gepast, en het werkt ;) maar is het wel vertandig om hem naar 777 te chmod ?

// 2e edit, dus maar niet 777 maar 700 en dan wel voor de user apache
code:
1
2
3
[root@localhost ~]# ll /var/lib/php/
total 12
drwx------  2 apache apache 12288 Jul  2 11:20 session

[ Voor 16% gewijzigd door r.platenkamp603 op 02-07-2005 11:47 ]


Acties:
  • 0 Henk 'm!

  • r.platenkamp603
  • Registratie: Oktober 2001
  • Laatst online: 08-08-2020
-NMe- schreef op vrijdag 01 juli 2005 @ 19:36:
"Een foutmelding"... Daar kan niemand wat mee. Samengevat is je topic onduidelijk en vaag tegelijk. Er is niet duidelijk wat je precies probeert, en verder ben ik er niet echt van overtuigd dat je de documentatie goed doorgekeken hebt.

Lees de quickstart in onze FAQ eens even door, en geef alle informatie die we nodig hebben om je te helpen. Dit gaat nergens heen zo. Ik pas ook je titel even aan, aangezien de huidige titel niets zegt over je probleem.
Oke oke, het mag dan een beetje ongeorganiseerd overkomen, maar als je wanneer net als ik een beginneling ben met dit soort dingen... kunnen de kleinste problemen een heleandere wending aan nemen, zo als een dir de apache niet kon aanpassen.

maar iig vriendelijk bedankt voor alle mensen die me zo snel wouden tewoord staan _/-\o_ tweakers

[ Voor 9% gewijzigd door r.platenkamp603 op 01-07-2005 19:48 ]


Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

r.platenkamp schreef op vrijdag 01 juli 2005 @ 19:41:
[...]


Mijn dank is groot :9

Ik heb de
code:
1
2
3
[root@localhost ~]# ll /var/lib/php/
total 12
drwxrwxrwx  2 root root 12288 Jul  1 19:33 session

aan gepast, en het werkt ;) maar is het wel vertandig om hem naar 777 te chmod ?
En nu kan elke user je sessies wijzigen en verwijderen.. Geen goed idee dus:
chown -R apache:apache session
chmod -R 700 session

Acties:
  • 0 Henk 'm!

Verwijderd

Radiant schreef op vrijdag 01 juli 2005 @ 19:57:

En nu kan elke user je sessies wijzigen en verwijderen.. Geen goed idee dus:
chown -R apache:apache session
chmod -R 700 session
Dit is een equivalent van wat ik al eerder bedoelde: Maak apache de owner van de directory, geef de gebruiker apache alle rechten, en verder niemand. Er is namelijk niemand anders die aan die bestanden hoeft te komen. Vandaar de groep 'root', voor extra veiligheid. En expliciet eventuele andere bits uitschakelen. Dat is de reden van die 0700 mask.

Bij eigenlijk alle operating systems geldt: geef nooit iemand rechten op iets waarop hij helemaal geen rechten hoeft te hebben.

[edit]
Op een lokale development server maakt het uiteraard niet zoveel uit.

[ Voor 7% gewijzigd door Verwijderd op 01-07-2005 20:02 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

r.platenkamp schreef op vrijdag 01 juli 2005 @ 19:43:
Oke oke, het mag dan een beetje ongeorganiseerd overkomen, maar als je wanneer net als ik een beginneling ben met dit soort dingen... kunnen de kleinste problemen een heleandere wending aan nemen, zo als een dir de apache niet kon aanpassen.
Dat kan je er niet van mogen weerhouden om zo duidelijk mogelijk je probleem te omschrijven. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1