Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
1642
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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
19 yıl
Er

~files klasörüne yazma yetkisi vermelisin eğer sunucun linux unix işletim sistemine sahip ise destekleyen bi FTP programından mesela FileZilla olabilir ordan ftp ye bağlanıp o klasörün yetki seviyesini 777 ye getirmelisin windows işletim sistemi ise kontrol panelinden write perms(yazma yetkisini) ini aktif etmelisin


Bu mesaja 1 cevap geldi.
E
19 yıl
Yüzbaşı

chmod($dir,0777);


Bu kodu eklersen kurtulursun. $dir değiştireceğin klasörü gösterir.

 chmod($dir,0775);
ile eski haline getirebilirsin





< Bu mesaj bu kişi tarafından değiştirildi Eled -- 25 Nisan 2006; 18:43:06 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.