fopen probleem...
Alleen, als ik dit probeer te doen krijg ik een 'permission denied' error....
Nu weet ik niet zeker of dit wel echt een php fout is. Misschien moet ik wel iets met apache doen?
PHP en Apache draaien beide op mijn pc, dus heb er volledige controlle over.
Ik weet alleen niet hoe ik nu verder moet. Weet iemand toevallig hoe ik dus een textbestand kan aanmaken op een folder die geshared is in een netwerk??
Kijk hier eens na..
Succes
-Chupskie
Ik heb het nog een keer gechecked. Maar ik kan zelf wel doen wat ik wil. Maar zodra ik het met php probeer lukt dit niet... Weet je misschien wat ik dan verkeerd doe? Ben ik iets vergeten aan te vinken dan ofzo??
Je moet met je FTP programma even een chmod uitvoeren op de map waarin je met PHP wilt kunnen werken. Als waarde werkt 777 altijd, maar dat schijnt niet veilig te zijn. Het is echter de enige waarde die bij mij werkt.
->http://www.nationalemediasite.nl/chmod.php
Is er misschiene een andere manier om chmod uit te voeren op die folder?
Ik zit ook op een window OS, ik weet niet of chmod dan wel echt effect heeft?
Maybe dat je het zo kunt oplossen?? Of bedoel je dit niet??
Die map is al geshared, en ik zelf heb alle rechten in die map. Maar met php kan ik er geen bestanden in plaatsen.
Ik weet niet of je nu zelf op een netwerk zit, maar dan moet je maar eens probereen een map te sharen en daar een textbestand in laten creeren door php. Ik weet zeker dat je tegen het zelfde probleem aanloopt. Maar misschien dat je dan een oplossing ervoor kan vinden?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(!function_exists('file_put_contents')) {
function file_put_contents($filename, $data, $file_append = false) {
$fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
if(!$fp) {
trigger_error('file_put_contents cannot write in file.', E_USER_ERROR);
return;
}
fputs($fp, $data);
fclose($fp);
}
}
file_put_contents("directory/bestand.ext", "inhoud van het bestand");
?>
if(!function_exists('file_put_contents')) {
function file_put_contents($filename, $data, $file_append = false) {
$fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
if(!$fp) {
trigger_error('file_put_contents cannot write in file.', E_USER_ERROR);
return;
}
fputs($fp, $data);
fclose($fp);
}
}
file_put_contents("directory/bestand.ext", "inhoud van het bestand");
?>
bron: http://www.phphulp.nl/php/scripts/2/336/
bron: www.php.net
Uitleg:
file_put_contents("naambestandwaarhetinmoet.txt", "gegevens die er in moeten", true/false);
Als true -> gegevens toevoegen aan het bestand
als false -> gegevens die al in het bestand staan overschrijven met de gegevens die je meegeeft.
Ik zal het strax zelf ook even testen, maar kzit nu op school (wel in een netwerk), maar geen toegang, om php bestanden, aan te maken of te wijzigen!! Vandaar... ;)
Succes
-Chupskie
Probeer anders de map Iedereen/Everybody de rechten te geven.
Elwin
Weet je toevallig waar kan ik dit aanpassen in apache?
@Chupskie
Bedankt, ik heb het geprobeerd maar krijg de zelfde error.
Ben benieuwd of je verder komt als je het zo zelf eens probeerd.
edit:
Deze getest en werkt ook:
Documenten is een gedeelde map op mijn thuisnetwerk.
Gewijzigd op 22/02/2006 11:30:00 door Jan Koehoorn
Ik zit bijvoorbeeld achter pc 001 en pc 002 heeft zijn 'Windows' map geshared.
Als ik naar 'My Network places' (of zoiets) ga zie ik dus dat pc 002 een map heeft gedeeld en daar wil ik een bestand naartoe schrijven.
Dat is geloof ik niet wat je hebt geprobeerd?
Ga ik ff uitproberen, moment.
nofx:
Ja, je hebt D: zelf gedeeld op de pc waar je achter zit. Maar je moet het schrijven naar een map die gedeeld is op een andere PC.
Ik zit bijvoorbeeld achter pc 001 en pc 002 heeft zijn 'Windows' map geshared.
Als ik naar 'My Network places' (of zoiets) ga zie ik dus dat pc 002 een map heeft gedeeld en daar wil ik een bestand naartoe schrijven.
Dat is geloof ik niet wat je hebt geprobeerd?
Ik zit bijvoorbeeld achter pc 001 en pc 002 heeft zijn 'Windows' map geshared.
Als ik naar 'My Network places' (of zoiets) ga zie ik dus dat pc 002 een map heeft gedeeld en daar wil ik een bestand naartoe schrijven.
Dat is geloof ik niet wat je hebt geprobeerd?
En hoe geef jij dan het path op?
Dat lukt hier inderdaad ook niet. Niet als ik de map een sharenaam geef en de gebruikers lees- en schrijfrechten en ook niet als ik de hele partitie deel en rechten toeken. Kan je helaas niet verder helpen op dit moment.
fopen ('\\\\ACER\\testmap\\test.txt', 'wb');
alle backslashes geëscapet dus. Anders zegt hij dat de map of het bestand niet bestaat. In mijn geval zegt hij nu: permission denied.
SanThe:
En hoe geef jij dan het path op?
nofx:
Ja, je hebt D: zelf gedeeld op de pc waar je achter zit. Maar je moet het schrijven naar een map die gedeeld is op een andere PC.
Ik zit bijvoorbeeld achter pc 001 en pc 002 heeft zijn 'Windows' map geshared.
Als ik naar 'My Network places' (of zoiets) ga zie ik dus dat pc 002 een map heeft gedeeld en daar wil ik een bestand naartoe schrijven.
Dat is geloof ik niet wat je hebt geprobeerd?
Ik zit bijvoorbeeld achter pc 001 en pc 002 heeft zijn 'Windows' map geshared.
Als ik naar 'My Network places' (of zoiets) ga zie ik dus dat pc 002 een map heeft gedeeld en daar wil ik een bestand naartoe schrijven.
Dat is geloof ik niet wat je hebt geprobeerd?
En hoe geef jij dan het path op?
Als Q:\
Het is een drive die geshared is op een andere PC, maar hij staat ertussen als ik "Deze Computer" open.
Ook als ik in deze drive ga zijn de pad namen ook Q:\eenmap\
Als ik in "Deze Computer" ga en ik kijk naar de naam staat er dit precies
Publiek$ op Ntl01 (Q:)
Ik neem aan dat ik dan gewoon Q: kan gebruiken? Anders had er denk ik wel iets gestaan van "kan het opgegeven pad niet vinden" met php.
Gewijzigd op 22/02/2006 12:37:00 door nofx nofx
Gebruikers hebben lees/schrijfrechten, maar valt Apache wel onder een van de gebruikers?
Maar hoe je dat zou kunnen veranderen? Geen idee...
Bij mij draait hij als service, dus misschien kan het dan wel helemaal niet...
Ik weet niet of het mogelijk is om ook de services schrijfrechten te geven.