February 16, 2011

Hata veren kodu da gite göndereyim mi?Bugün istediğimiz tipe biraz getirdim ama biraz hata var.Uğraşırsak çözeriz ama ben çözemedim.Ben git'e eklesem beraber bakabilir miyiz?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Maalesef koydum hatta mesajı yanlış yazdım.Bu seferlik oradan bakabilir miyiz?

Bir daha buraya eklerim.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Bende git'i daha pek iyi çözemedim ancak beğendim.

silmek için 'git rm dosya'

sonra dosya eklemiş gibi göndereceksin.

mesajı değiştirmiş.

Şimdi geriye dönelim. Ali Beyin dediği gibi. main işlevini kaldır. module adını system.helper.htmlHelper olarak değiştir. modülü daha sınıflı daha structlı daha cicili yaz :-P (Biz git için mesajlarıda ingilizce yazıyoruz.)

Ali Beyin yazdığını olduğu gibi örnek alabilirsin: http://ddili.org/forum/thread/456

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Alıntı:

>

Benimkini deneme olarak kabul edelim. Fikir edinelim ama Kadir Can yazsın.

Zaten o yazacak :-) İstesede istemesede :-D
Kadir hep ilk önce bize göster nasıl olduğunu ondan sonra oldu dediğimizde koyarsın. Ancak ilk önce kod olarak burada göster.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Alıntı:

>

Hata veren kodu da gite göndereyim mi?Bugün istediğimiz tipe biraz getirdim ama biraz hata var.Uğraşırsak çözeriz ama ben çözemedim.Ben git'e eklesem beraber bakabilir miyiz?

Buraya koy biz hem yorum yapmış oluruz hemde hataları gidermiş oluruz.

Bile bile git'e hatalı kod koyma taraftarı değilim. Burasıda çok güzel kod incelemek için.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Alıntı:

>

Sorun nedir? Hata mesajı mı beliriyor? Ne yapmak isteyince?

github'a gönderdim bile diyor. Hemde mesajı yanlış yazdım diyor. hatta iki tane aynı dosya göndermişsin.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Alıntı (Kadir Can):

>

sonra html kodunu content'den çağırırız

Aynı fikirdeyim. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Alıntı (canalpay):

>

global değişken kullanmak çok yanlış bir davranış olarak nitelendirilir.(Tahminen her tarafta değiştirildiği için değişkenin değişimini izleyemiyoruz.

Doğru. Giderdiği düşünülen hemen hemen her ihtiyaç yerel bir değişkenle de halledilebilir. Ama stdin gibi akımlar geleneksel olarak global değişkenlerdir. (İnatla öyle yapmayan diller de var.)

Alıntı:

>

Birde belleksel anlamda da sıkıntılara neden olabiliyordur?)

C ve C++'da, farklı derleme birimlerindeki global değişkenlerin hangi sırada ilklendikleri belirsizdir. Birisi, kendi ilklenmesi sırasında ötekisini kullanmaya çalışsa henüz ilklenmemiş bir nesneyi kullanıyor olabilir:

BenimGlobal::BenimGlobal()
{
   global_log_nesnesi.logla("BenimGlobal kuruluyor");  // <-- Belki de hata
}

D'de bu çok daha iyi durumdadır: modüllerin birbirlerini "import etmeleri"ne bakarak hangisinin hangisine bağımlı olduğu anlaşılır ve globaller ona uygun olarak ilklenirler.

Alıntı:

>

Helper klasör ismi olacaktı. Ali Bey tabiki onun için daha güzel bir ad bulmasını isteyeceğiz

Bu sınıflar html oluşturduklarına göre klasör ismi html mi olsun? Veya sayfayı oluşturdukları için page? html_page?

Alıntı:

>

htmlHelper olabilir

Tamam; güzel.

Alıntı:

>

Ali bey sanki ben böyle hata atmayı denemiştim ancak hata çıktısı gözükmüyordu

Hatanın tarayıcı tarafındaki kullanıcıyla ilgisi yok. Onun için programcının (root olarak) /var/log/apache2/error.log dosyasına bakması gerekiyor. Programın stderr akımına gönderdiği bütün çıktı oraya yazılıyor.

Daha önceki tahminim de yanlışmış: sayfa yarım oluşturulmuşken hata atıldığında programımız sıfırdan farklı bir hata koduyla sonlandığı için Apache tarayıcıya yarım çıktıyı göndermiyor.

Apache'nin "bir hata oldu" gibi genel hatası yerine, programcı hatayı en dışarıda main'de yakalayabilir ve "özür dileriz falan filan" gibi basit bir sayfa da kurabilir.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Alıntı (canalpay):

>

Belki tek html ile sabit kalmayacak ise?

HTML belgeleri XML elemanlarından oluşur. Bir tane XML elemanı sınıfına ihtiyaç var. O XML elemanlarının , , vs. gibi isimlerle ve belirli bir yapıda bir araya gelmeleri HTML'i oluşturur. Böyle bakınca CGI programının kullanacağı elemanların HTML olduğu görülüyor.

XML elemanlarından oluşan üst düzey başka kavramlar tanımlanabilir ama onlar HTML'den ayrı anlamda olurlar.

Alıntı:

>

Ekrana hata yazılacak.

Bunu biliyorsun ama bütünlük amacıyla tekrarlıyorum: CGI programının ekranı yok. Standart giriş, çıkış, ve hata akımları Apache'nin elinde bulunuyor. Bizi başlattığı zaman kendi akımlarıyla başlatıyor.

stdin'den POST yönteminin verileri geliyor; stdout'a yazılanlar HTML belgesini oluşturuyorlar; stderr'a yazılanlar hata mesajları dosyasına (varsayılan /var/log/apache2/error.log) gidiyor.

CGI programı sırasında oluşan hataların tarayıcıyı kullanan kişiyle bir ilgisi yok; ona bir şey ifade etmiyorlar. Örneğin "geçersiz başlık düzeyi" ne demek? :)

Kullanıcı bir tuşa tıklıyor, biz sayfayı oluşturmayı beceremiyoruz. Ne yapalım... :-/ Bazı durumlarda idare edebiliriz: örneğin başlık düzeyini otomatik olarak 1..7 aralığına indirebiliriz; ama bu konuda bir hata mesajı oluştururuz. Bence en iyisi de bu olur. Sayfanın düzeni bozuk olsa da hiç olmazsa bilgi tarayıcıya ulaşmış olur.

Önceki önerimi geri çekebilirim yani. :) Başlık oluşturan kod idare etmeli.

Kurtarılamayan durumlarda da tek bir "sunucuda hata oldu" anlamında bir mesaj da olabilir. Şu hata kodları standart:

http://www.w3schools.com/tags/ref_httpmessages.asp

Apache'ye hangi hata durumunda hangi sayfanın gösterileceği söylenebiliyor. Örneğin ddili'nde 404 için şu sayfa var:

http://ddili.org/boyle_bir_sayfa_yok

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 16, 2011

Bunlar kişisel konular.

Ben özellikle şuradaki < karakterinin etrafında boşluk aradım:

   while(firstPost.length<to!int(getenv("CONTENT_LENGTH"))){

       firstPost~=din.getc;

   }

Benim şu sıralarda alıştığım düzende şöyle oluyor:

   while (firstPost.length < to!int(getenv("CONTENT_LENGTH"))) {
       firstPost ~= din.getc;
   }

Altı boşluk ekledim, iki satır çıkarttım. Boş satırlar metin içlerindeki paragraflar gibi oluyor. Yakın anlamdaki satırları bir arada yazıyoruz ama tek satırın etrafına boşluk yazmıyoruz.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]