bu hataları nasıl kapatabilirim
9
●719
- 20-01-2015, 12:00:32@ tagını kullanbilirsin. Raporlamayı tamamen kapatmak bazen sakıncalı olabiliyor diğer hatalarınıda göremeyebilirsin bu yüzden @ ile görünmez yapman daha iyi ayrıca if ilede bir yapı oluşturup isset mantığı kurup hatalarını giderebilirsin.
- 20-01-2015, 12:12:18hocam bunu yaptım ama t string dahil tüm hataları kapatıyor . Sadece undefined index ve use of undefined costant hatalarını kapayabileceğim bişey arıyorum varmı böyle bişeyahmetshen adlı üyeden alıntı: mesajı görüntüle
isset mantığı çok zaman alır. undefined index ve use of undefined costant hatalarını kapayabileceğim birşey var mıAskinDemir adlı üyeden alıntı: mesajı görüntüle - 20-01-2015, 12:16:28@ tagını kullandın mı ? ayrıca bir fonksiyondan geçirebilirsin sonucta fonksiyonu birkez yazacaksın heryerde kullanabilirsin.
- 20-01-2015, 18:18:22Pek çok yerde anlatılanların aksine hata göstermeyi kesinlikle kapatmayın ve @ işaretini kullanmayın. Hatayı gidermemiş sadece gizlemiş olursunuz ve uygulamaya göre bunun sonuçları çok ciddi olabilir. Log şişirmekten açık oluşturmaya kadar gidebilir. Bunun yerine hatanın nasıl oluştuğunu bulun ve ona göre bir kod oluşturun.
"Undefined index" ve "undefined variable" türü hatalar değişken tanımlanmadan kullanılmaya çağırıldığında oluşur.
Örneğin aşağıdaki kodlarda get ile gelen bir "git" sorgusu olursa bunu $git değişkenine aktarıyor ve sonrada ekrana yazıyor. "git" sorgusu olmadığında "undefined variable" hatası verecektir.
if (isset($_GET['git'])) { $git = $_GET['git']; } echo $git;Bunu çözmenin birkaç yolu var, değişkeni önceden oluşturmak veya ekrana yazmadan önce kontrol etmek.
Önceden boş değişken tanımlamak:
$git = ''; if (isset($_GET['git'])) { $git = $_GET['git']; } echo $git;DeÄŸiÅŸkeni kontrol etmek:
if (isset($_GET['git'])) { $git = $_GET['git']; } if (isset($git)) { echo $git; }
Kodlar teoriktik, esas kodlara göre çok farklı çözümler üretilebilir.
"Undefined index" hatası da "undefined variable" hatasının dizi halidir, yani değişken dizi değişkendir $url['git'] gibi.
. - 22-01-2015, 19:32:21Bravo, çok güzel cevap yazmışsın.Alexis adlı üyeden alıntı: mesajı görüntüle
Bunların hepsi birer bugdur, hatadır, düzeltilmesi gerekir. Php seni uyarıyor, @ ile sadece sessizleştirirsin, bu da yaptığı uygulama için iyi birşey değil. @ ile yaptıkların, yapacakların; Ağlayan bebeği duymamak için kulaklarını tıkamak veya ağlayan bebeğin ağzını tıkamak gibi, oysa önemli olan problemin ne olduğunu bulmak ve ortadan kaldırmak. - 23-01-2015, 01:48:37Yalnız arkadaşın da dediği gibi @ ile hata kapatmak sağlıklı değil. Bu derleyici yavaşlatacaktır, yavaşlıyorsa fazladan çalışacak gereksiz iş yapılacak demektir. Ayrıca ekrana hata göstermese de hata olmadığı anlamına gelmeyeceğinden loglamaya devam edecektir. fazladan loglama işlemi geldiği gibi bir de log boyutları yükseldikçe yavaşlama devam edecektir.hddntha adlı üyeden alıntı: mesajı görüntüle
arada undefined constant gördüm, bunun sebebi tırnaksız string yazmaya çalışmaktır. örneğin; $sonuc=$bul[tarih1]; dediğinizde işlem çalışır ama bu tamamen PHP nin iyilik severliğindendir, diğer diller bu konuda daha katıdır. bunun doğrusu $sonuc=$bul['tarih1']; kullanımıdır. İlla ben tırnak içinde değişken kullanırım, elim alışmış denilirse, ki bunu da tavsiye etmem, $sonuc=$bul["tarih1"]; şeklinde yazılır.
Şahsınıza karşı laf söylemediğim gibi Alexis'in de sadece daha doğru olanı belirtmek istediğinden eminim. Farkına varmadan neler neler yanlış yapılıyor, en azından farkında olduğumuz yanlışlardan vazgeçelim.
Saygılarımla