[php] Wat te doen met deze foutmelding?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • coelho
  • Registratie: Augustus 2000
  • Laatst online: 17-09 14:48
Ik ben bezig met het doorwerken van "Basiscursus PHP 4.2" van Kassenaar. Nu wil ik onderstaand stukje code testen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
$username = "coelho";
session_register("username");
?>
<html>
  <head>  
  </head>
  <body>
    <H2>Session username = <?php echo($_SESSION["username"]);?></H2>
  </body>
</html>


Ik krijg echter een foutmelding. Omdat ik de nieuwste versie van PHP heb, ben ik al op zoek gegaan naar mogelijke aanpassingen die dit kunnen veroorzaken. Heb ondertussen als test de register_globals op ON gezet, want dit zou volgens diverse bronnen moeten helpen. Nu wordt de session-variabele wel getoond, maar nog steeds omgeven door foutmeldingen.

Aangezien de code me goed lijkt, zou ik willen vragen waar onderstaande foutmeldingen nog meer naar kunnen verwijzen. De code lijkt me ok.
Warning: session_start(): open(C:\PHP\sessiondata\sess_9b6f8fb9baae6a1b8a5e503b99e163b2, O_RDWR) failed: Permission denied (13) in c:\inetpub\wwwroot\php\oef_9_2.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\inetpub\wwwroot\php\oef_9_2.php:2) in c:\inetpub\wwwroot\php\oef_9_2.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\inetpub\wwwroot\php\oef_9_2.php:2) in c:\inetpub\wwwroot\php\oef_9_2.php on line 2

Session username = coelho

Warning: Unknown(): open(C:\PHP\sessiondata\sess_9b6f8fb9baae6a1b8a5e503b99e163b2, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\PHP\sessiondata) in Unknown on line 0

PVoutput 7.700Wp ZZO (50°)


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

failed: Permission denied
Oftewel, de user waar je webserver onder draait heeft geen lees/schrijf rechten in C:\PHP\sessiondata\.

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 21:53

Tux

Heeft Apache wel rechten om in C:\php\sessiondata te schrijven en bestaat die map wel?

En ik zie dat er al output is geweest voor de session_register(). Dat probleem krijg je bijvoorbeeld zo:
PHP:
1
2
3
4
5
<b>Woei</b>
<?php 
$woei = "bla";
session_register ("woei");
?>


Dan is er al output geweest voor de session_register() en dat mag niet.
Er zijn twee manieren om dit op te lossen:
- Geen output voor de session_register()
- ob_start(); en ob_end_flush(); gebruiken.
Voor de tweede methode zijn er zat topics te vinden die uitleggen hoe het precies moet.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • coelho
  • Registratie: Augustus 2000
  • Laatst online: 17-09 14:48
Tux schreef op 02 december 2003 @ 12:05:
Heeft Apache wel rechten om in C:\php\sessiondata te schrijven en bestaat die map wel?

En ik zie dat er al output is geweest voor de session_register(). Dat probleem krijg je bijvoorbeeld zo:
PHP:
1
2
3
4
5
<b>Woei</b>
<?php 
$woei = "bla";
session_register ("woei");
?>


Dan is er al output geweest voor de session_register() en dat mag niet.
Er zijn twee manieren om dit op te lossen:
- Geen output voor de session_register()
- ob_start(); en ob_end_flush(); gebruiken.
Voor de tweede methode zijn er zat topics te vinden die uitleggen hoe het precies moet.
Het boek waaruit ik php leer zegt juist dat ik moet beginnen met session_start(), en dat hier geen output voor mag staan. Er staat dat session_register() impliciet hetzelfde doet, maar dat het uit goede programmeergewoonte gebruikelijk is om toch eerst de session_start() aan te roepen.

Verder bestaat de map c:\php\sessiondata gewoon, en heb ik er ook alle rechten op. Ik werk verder niet met Apache maar met IIS (of was het nou ISS??)

PVoutput 7.700Wp ZZO (50°)


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Tipje: Kijk ook even door, voor het geval je dingen met sessions door elkaar gaat halen... :P

Verder is het IIS. (Internet Information Services). En geen idee hoe apache werkt, maar best kans dat je het IUSR_computernaam account rechten moet geven op die folders die de users bovenaan aangeven.

[ Voor 28% gewijzigd door gorgi_19 op 02-12-2003 12:16 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

De al gegeven output is de foutmelding. De rest van de fouten wordt als een domino effect veroorzaakt door de eerste foutmelding. Het aanpassen van de globals settings heeft hier niks mee te maken en deze kun je dus het beste terug zetten.

Zorg dat je het rechten probleem oplost en je applicatie zal werken ;). Let er op dat het niet van belang is wat voor rechten jij hebt op die map, maar wat voor rechten de webserver op die map heeft.

[ Voor 18% gewijzigd door Janoz op 02-12-2003 12:24 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 12-09 17:04
Nog een klein tipje:
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
Je kan dus beter $_SESSION['username'] = $username; gebruiken :)
Pagina: 1