login  Naam:   Wachtwoord: 
Registreer je!
 Forum

file_get_contents enz..

Offline bertlim - 12/01/2006 18:58
Avatar van bertlimPHP interesse Hallo iedereen,

Ik was op men localhost bezig te proberen iets in een .txt bestand weg te schrijven. Maar helaas lukt me dit niet echt.
Dit is mijn script:
  1. <?php
  2.  
  3. $bestand = 'test.txt';
  4.  
  5. $input = file_put_contents($bestand,'hallo dit is een test');
  6.  
  7. $test = file_get_contents($bestand,'w');
  8.  
  9. echo $test;
  10.  
  11. ?>


en nu krijg ik deze error:


Citaat:
Warning: file_put_contents(test.txt) [function.file-put-contents]: failed to open stream: Permission denied in c:Inetpubwwwrootphp zonder MySQLtext.php on line 5

Nu zit ik al een tijdje te zoeken, maar het lukte me echt niet.
Toen kwam ik op een tutorial gevonden op het net over het wegschrijven in een .txt bestand, maar deze was in php4.
Omdat het me niet lukte met file_get_contents enz.. dacht ik deze eens te proberen.
Dit is men script:

  1. <?php
  2.  
  3. $bestand = 'test.txt';
  4.  
  5. $fp = fopen($bestand,'r+');
  6.  
  7. fwrite($fp,'Dit is een test.');
  8.  
  9. fclose($fp);
  10.  
  11. include 'test.txt';
  12.  
  13. ?>


en nu krijg ik deze errors:
Citaat:
Warning: fopen(php%20zonder%20MySQL/test.txt) [function.fopen]: failed to open stream: No such file or directory in c:Inetpubwwwrootphp zonder MySQLtext1.php on line 5

Warning: fwrite(): supplied argument is not a valid stream resource in c:Inetpubwwwrootphp zonder MySQLtext1.php on line 7

Warning: fclose(): supplied argument is not a valid stream resource in c:Inetpubwwwrootphp zonder MySQLtext1.php on line 9

Warning: include(php%20zonder%20MySQL/text.txt) [function.include]: failed to open stream: No such file or directory in c:Inetpubwwwrootphp zonder MySQLtext1.php on line 11

Warning: include() [function.include]: Failed opening 'php%20zonder%20MySQL/text.txt' for inclusion (include_path='.;C:php5pear') in c:Inetpubwwwrootphp zonder MySQLtext1.php on line 11

Nu is mijn vraag: Wat doe ik hier fout? (bij beide scripts?) Of ligt het mss aan mijn localhost?
bedankt bij voorbaat,

Bert

14 antwoorden

Gesponsorde links
Offline Rens - 12/01/2006 19:01
Avatar van Rens Gouden medaille

Crew algemeen
Het bestand test.xt zal niet bestaan gok ik...
Offline bertlim - 12/01/2006 19:04
Avatar van bertlim PHP interesse jawel dit bestaat hoor
Offline Maarten - 12/01/2006 19:14 (laatste wijziging 12/01/2006 19:15)
Avatar van Maarten Erelid Als je met file_put_contents wilt werken, wat ik ook aanraad (gemakkelijker), moet je zorgen dat het bestand de goeie toegansgrechten biedt.

Dit doe je door te chmod'en (google that).

Je kan de chmod van het bestand veranderen zodat de "permission" niet langer "denied" is 
PHP.net: chmod

Citaat:
Value Permission Level
400 Owner Read
200 Owner Write
100 Owner Execute
40 Group Read
20 Group Write
10 Group Execute
4 Global Read
2 Global Write
1 Global Execute
Offline Thomas - 12/01/2006 19:18
Avatar van Thomas Moderator Als je lees- en schrijfoperaties op een bestand uit wilt voeren, moet je in de eerste plaats zorgen dat de lees- en schrijfrechten in de folder waarin je dit wilt doen goed staan.
Daarnaast is het van belang dat je de juiste interne bestands-adressering toepast.

Een goed uitgangspunt voor het "interne adres" van een bestand is $_SERVER['DOCUMENT_ROOT'].

Staat een bestand in je webroot, benader deze dan via $_SERVER['DOCUMENT_ROOT']."bestand.ext", en niet simpelweg via "bestand.ext", want stel je verhuist je script die lees- en schrijf-operaties op dit bestand uitvoert naar een andere directory, dan loopt zonder $_SERVER['DOCUMENT_ROOT'] je adressering in de soep...
Offline bertlim - 12/01/2006 19:31
Avatar van bertlim PHP interesse ik heb nu dit:
  1. <?php
  2.  
  3. $_SERVER['DOCUMENT_ROOT'] = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : '';
  4.  
  5. $bestand = ''.$_SERVER['DOCUMENT_ROOT'].'test.txt';
  6.  
  7. chmod($bestand, 0750);
  8.  
  9. $input = file_put_contents($bestand,'hallo dit is een test');
  10.  
  11. $test = file_get_contents($bestand,'w');
  12.  
  13. echo $test;
  14.  
  15. ?>


en hij geeft nu deze errors:
Citaat:
Warning: chmod() [function.chmod]: Permission denied in c:Inetpubwwwroottesttext.php on line 7

Warning: file_put_contents(test.txt) [function.file-put-contents]: failed to open stream: Permission denied in c:Inetpubwwwroottesttext.php on line 9
Offline ikkedikke - 12/01/2006 21:32
Avatar van ikkedikke PHP expert Windows doet niet aan permissies, wat voor server draai je wel? van IIS (of ISS?) weet ik niet of ze aan rechten doen..
Offline bertlim - 13/01/2006 16:39
Avatar van bertlim PHP interesse IIS server
Offline Thomas - 13/01/2006 16:49
Avatar van Thomas Moderator Het te wijzigen bestand moet waarschijnlijk ook in eerste instantie door PHP aangemaakt zijn...
Offline Barato - 13/01/2006 17:14
Avatar van Barato Nieuw lid
Citaat:
Staat een bestand in je webroot, benader deze dan via $_SERVER['DOCUMENT_ROOT']."bestand.ext", en niet simpelweg via "bestand.ext", want stel je verhuist je script die lees- en schrijf-operaties op dit bestand uitvoert naar een andere directory, dan loopt zonder $_SERVER['DOCUMENT_ROOT'] je adressering in de soep...
misschien wil je bestand.ext dan ook wel mee verhuizen. je kunt beter eerst een goeie structuur uitdenken en dan lekker met relatieve paden werken
Offline bertlim - 13/01/2006 17:21 (laatste wijziging 13/01/2006 17:21)
Avatar van bertlim PHP interesse
Citaat:
Het te wijzigen bestand moet waarschijnlijk ook in eerste instantie door PHP aangemaakt zijn...


hoe doe ik dit dan?
Offline vinTage - 13/01/2006 17:26
Avatar van vinTage Nieuw lid
Citaat:
hoe doe ik dit dan?


fopen ("test.txt", "a");


De "a" zorgt ervoor dat als een geen text.txt is, dat het dan gemaakt word
(a, a+, w, en w+ kunnen zelf een bestand aanmaken)
http://php.belnet.be/manual/nl/function.fopen.php
Offline bertlim - 13/01/2006 17:48
Avatar van bertlim PHP interesse
Citaat:
fopen ("test.txt", "a");


De "a" zorgt ervoor dat als een geen text.txt is, dat het dan gemaakt word
(a, a+, w, en w+ kunnen zelf een bestand aanmaken)
http://php.belnet.be/manual/nl/function.fopen.php


dit werkt ook niet. Hij blijft dezelfde errors geven:
Citaat:
Warning: fopen(test.txt) [function.fopen]: failed to open stream: Permission denied in c:Inetpubwwwroottesttext.php on line 7

Warning: file_put_contents(test.txt) [function.file-put-contents]: failed to open stream: Permission denied in c:Inetpubwwwroottesttext.php on line 9

Warning: file_get_contents(test.txt) [function.file-get-contents]: failed to open stream: No such file or directory in c:Inetpubwwwroottesttext.php on line 11
Offline pim1991 - 13/01/2006 17:51 (laatste wijziging 13/01/2006 17:56)
Avatar van pim1991 PHP interesse nou dat permission denied gedoe is dat hij geen toegang kan krijgen. dan moet je ff chmodden.

edit:
je eerste script is goed. je moet alleen de map chmodden dat hij er wel in kan schrijven!
Offline bertlim - 14/01/2006 14:24 (laatste wijziging 14/01/2006 14:25)
Avatar van bertlim PHP interesse ik heb ff dit script:
  1. <?php
  2.  
  3. $bestand = 'test.txt';
  4.  
  5. $fp = fopen($bestand,'r+');
  6.  
  7. fwrite($fp,'Dit is een test.');
  8.  
  9. fclose($fp);
  10.  
  11. include 'test.txt';
  12.  
  13. ?>


getest op de gratis lycos hosting en daar werkt ie wel.
Dus ik denk dat dit aan men localhost ligt.
Weet iemand hoe ik dit kan instellen dat dit werkt?
Bedankt bij voorbaat,

Bert
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s