[PHP] is_writable en fwrite doet lastig

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RS_Jelle
  • Registratie: Mei 2005
  • Laatst online: 28-02 23:30
Ik wil een cachesysteem schrijven, maar is_writable blijft zeggen dat het bestand niet schrijfbaar is en fwrite geeft dan uiteraard ook een error, maar het bestand staat gechmodded naar 777.
Aan de server/php configuratie ligt het ook niet, want cms'en met cachefuncties werken prima.
Het is een Linux (Fedora) server met Apache 2.0.51 en PHP 4.3.10.

De code die lastig doet zonder extra dingen erbij:
PHP:
1
2
3
4
5
6
7
8
9
10
<?php

if (is_writable(cachebestand.php)) {
echo "succes";
}
else {
echo "error";
}

?>


Aan wat kan dit liggen, want dat zelfs deze eenvoudige code lastig kan doen begrijp ik niet :(

Acties:
  • 0 Henk 'm!

  • eXcyle
  • Registratie: Juni 2002
  • Laatst online: 20-09 15:55
Weet niet waar cachebestand.php staat , maar op deze manier ga je er van uit dat het bestand in de zelfde dir staat als je script.
en er missen wat " " om cachebestand.php
PHP:
1
2
3
4
5
6
7
8
<?php
if (is_writable("cachebestand.php")) {
echo "succes";
}
else {
echo "error";
}
?>


zou het beter moeten doen.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
RS_Jelle schreef op vrijdag 20 januari 2006 @ 16:50:
PHP:
1
if (is_writable(cachebestand.php)) {
Deze regel evalueert naar:
PHP:
1
if (is_writeable('cachebestandphp')) {

omdat er nu gezocht gaat worden naar de constante 'cachebestand' en de constante 'php'. Deze bestaan beide niet, dus wordt er aangenomen dat je twee strings bedoeld en deze worden samengenomen (door de .-operator).

Dus, inderdaad, tussen aanhalingstekens! Zet ook error_reporting eens op E_ALL, dan had je het zelf kunnen zien.

[ Voor 11% gewijzigd door Skaah op 20-01-2006 17:35 ]


Acties:
  • 0 Henk 'm!

  • RS_Jelle
  • Registratie: Mei 2005
  • Laatst online: 28-02 23:30
Thx, dat was het :)
Over zo'n "stomme" fouten kijk je altijd over.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Je had jezelf en ons een hoop tijd kunnen besparen door
PHP:
1
error_reporting(E_ALL);
bovenaan je scripts te zetten, of php.ini aan te passen. P&W FAQ - PHP - Ik kan mijn fout echt niet vinden!

[ Voor 22% gewijzigd door Skaah op 20-01-2006 18:15 ]