Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
1644
Tıklama
0
Öne Çıkarma
php ile dosya yazmak istediğim zaman permission denied hatası ile karşılaşıyorum. ne yaptıysam olmdı
H
19 yıl
Yüzbaşı
Konu Sahibi

arkadaşlar merhaba, ilginç bir sorunum var sıkılmaz iseniz uzun uzun ve tane tane anlatmaya çalışacağım .

:roll: umarım yardımcı olabilirsiniz

yaklaşık 1 aydır pardus kullanıyorum. php öğrenmeye karar verdim. bunun için quanta plus kullanıyorum ,anlattığınız gibi apache server ve php kurulumunu yaptım. 8)

sql yi daha deneme fırsatım olmasa da
/etc/init.d/sudo ./apache2 start komutunu verdikten sonra localhost'a sorunsuzca ulaşabiliyorum da

quanta plus'a root yetkisi verip /var/...../htdocs dizinine dosyalarımı kopyalayıp onları görebiliyorum hatta diğer arkadaşlarıma da ip adresim üzerinden yaptığım sayfaları görmelerini sağlayabiliyorum.

elimde bir kitap var. oradan öğrendiklerimi kendimce yorumlayıp kodlar yazıyorum.

herşey böyle güzel giderken dosya ile ilgili komutlar bölümüne gelmiştim ki karşıma çıkan sorun beni deli etti.

herhangi bir dosyadan okumak için açarken sorun yok ama yazmak için açtığımda
 
Warning: fopen(/var/www/localhost/htdocs/~files/Test.txt) [function.fopen]: failed to open stream: Permission denied in /var/www/localhost/htdocs/ekle.php on line 5


mesajını alıyorum..

halbuki apache dizine rahat rahat ulaşabilsin bana sorun çıkartmasın diye yukarıdaki hata mesajında gördüğünüz gibi /var/www/localhost/htdocs/~files/ klasörü oluşturup bunu

 chmod 777 ~files 
şeklinde okumaya ve yazmaya açmıştım ki ulaşmaya çalıştığım test.txt dosyası orada duruyor.

yardımcı olması için yazdığım programın tamamını
size yolluyorum.

program 3 dosyadan oluşuyor

Test.php
 

<html>
<HEAD><TITLE>Dosya okuma çalışması</TITLE></HEAD>
<Form action="ekle.php" method="POST">
<table border="0" >
<TR> <TD>isim:</TD> <TD><input type="text" name="isim" size="15"></TD> </TR>
<TR> <TD>Mesaj</TD> <TD> <TEXTAREA name="mesaj"> </TEXTAREA></TD> </TR>
<TR> <Td colspan="2"><input type="submit"> </Td></TR>

</table>
</Form>
<?php

$dosya=fopen("~files/Test.txt","r");
$a=0;
if (!$dosya) {echo "<br> üzgünüm dosyayı açamadım yada hiç kayıt yok"; exit;} else {echo "<br> Dosya açma başarılı <br> <h3> Mesajlar </h3>";}
echo "<Table border=1 width=500>";
while (!feof($dosya)) {
$a++;
$isim= fgets($dosya,999);
$mesaj= fgets($dosya,999);
echo ("<tr> <td>". $isim. "<Br>" . $mesaj."</td> </tr>");
}
fclose($dosya);
echo "</Table>";
?>
</html>


ekle.php


 
<Html>
<Head><TITLE></TITLE></Head>
<Body>
<?php
$dosya=fopen($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/~files/Test.txt","a");
Fwrite($dosya,$isim);
Fwrite($dosya,$mesaj);
?>
</Body>
</Html>


bu da el ile yazdığım test.txt
 
Mirat Bayrak
Bu bir test mesajıdır test mesajları tamamen bireyseldir ve genelde sadece program yazarları tarafından görülürler hiçkimse test mesajlarını merak etmez yada onlarla muhattap olmak istemez. zira test demek kararsızlık tutarsızlık demektir biraz sonra ne olacağını asla bilmediğiniz durumlar vardır ya işte onun gibi.. uçurumun kenarındasında durmak gibi kanatlanıp uçacaksınız yada aşağı düşeceksiniz :)
Terazi Şaşmaz
kendinize gelin lütfen çizmeyi aşmayın
Mirat Bayrak
asıl sen kendine gel