-
PHP’de veritabanı sorguları neden yavaş çalışır ve nasıl hızlandırılır?
İlk olarak sorgunun gerçekten nerede zaman kaybettiğini ölçün; ardından sorgu planını inceleyip uygun indeksleri ekleyin, gereksiz veriyi çekmeyi bırakın ve PHP tarafındaki bağlantı, döngü ve sonuç işleme maliyetlerini azaltın. Yalnızca PHP kodunu değiştirmek çoğu zaman yeterli değildir... -
PHP’de JSON verisi nasıl okunur ve diziye dönüştürülür?
JSON verisini PHP’de okumak için metni json_decode() işlevine verin. İkinci parametreyi true yaparsanız JSON nesnesi ilişkisel diziye dönüştürülür; ardından alanlara $veri['alan'] biçiminde erişebilirsiniz. Dönüşüm başarısızsa json_last_error_msg() ile hatanın nedenini kontrol edin. JSON... -
PHP’de URL’den gelen parametreler nasıl güvenli şekilde alınır?
URL sorgu parametrelerini güvenli almak için değeri doğrudan kullanmak yerine önce beklenen biçimde doğrulayın, eksik veya geçersizse işlemi durdurun, veritabanına aktarırken hazırlanan ifadeleri kullanın ve HTML içinde gösterecekseniz çıktı bağlamına uygun şekilde kaçışlayın. Örneğin ?id=42... -
PHP’de büyük dosyalar yüklenirken zaman aşımı hatası nasıl çözülür?
İlk olarak sorunun gerçekten PHP çalışma süresi mi, dosya boyutu sınırı mı yoksa web sunucusunun zaman aşımı mı olduğunu ayırın. Büyük dosya yüklemelerinde genellikle upload_max_filesize, post_max_size ve max_input_time değerleri birlikte kontrol edilir; yükleme tamamlandıktan sonra dosyayı... -
PHP’de sayfalama yaparak veritabanı kayıtları nasıl listelenir?
İlk sayfada kaç kayıt gösterileceğini belirleyip mevcut sayfa numarasından OFFSET hesaplayın; ardından toplam kayıt sayısını ayrı bir sorguyla bulup LIMIT ve OFFSET kullanarak yalnızca ilgili kayıtları çekin. Aşağıdaki PDO örneği, urunler tablosundaki kayıtları sayfalara böler ve her sayfada... -
PHP’de e-posta nasıl gönderilir?
İlk paragrafta ana yanıtı, izlenecek yolu ve ulaşılabilecek sonucu doğrudan ver. PHP’de e-posta göndermenin en kısa yolu yerleşik mail() işlevini kullanmaktır; ancak bunun çalışması için sunucuda bir e-posta aktarım hizmeti veya SMTP yapılandırması bulunmalıdır. Alıcı, konu, ileti ve en az bir... -
PHP’de MySQL bağlantı hatası nasıl çözülür?
İlk olarak hata mesajını gizlemeyin; bağlantıyı try/catch veya connect_error ile görünür hâle getirin. Ardından host, veritabanı adı, kullanıcı adı, parola ve port bilgilerinin sunucunuzdaki gerçek bilgilerle eşleştiğini kontrol edin. Bilgiler doğru olduğu hâlde bağlantı kurulamıyorsa sorunun... -
PHP’de hata mesajları neden ekranda görünmez ve nasıl açılır?
PHP’de hata mesajlarının ekranda görünmemesinin en yaygın nedeni display_errors ayarının kapalı olması veya error_reporting değerinin hataları kapsamamasıdır. Geliştirme ortamında hataları görmek için betiğin en başına error_reporting(E_ALL); ve ini_set('display_errors', '1'); ekleyebilir... -
PHP’de form verileri sunucu tarafında nasıl doğrulanır?
İstemciden gelen form verisini güvenilir kabul etmeyin; sunucu tarafında önce alanları alın, tür ve uzunluklarını kontrol edin, biçimlerini doğrulayın, beklenmeyen değerleri reddedin ve yalnız doğrulamadan geçen veriyi işleyin. Doğrulama başarılı olsa bile SQL sorgularında hazırlanmış ifadeler... -
PHP’de tarih ve saat nasıl doğru biçimlendirilir?
İhtiyacınıza göre PHP’de tarih ve saat biçimlendirmek için önce doğru zaman dilimini belirleyin, ardından değeri DateTimeImmutable ile oluşturup format() yöntemiyle çıktı biçimine çevirin. Veritabanından gelen tarih için değerin hangi zaman diliminde tutulduğunu bilmeden yalnızca biçimi... -
PHP’de include dosyası bulunamadı hatası nasıl çözülür?
İlk olarak hata mesajındaki dosya yolunu ve include satırında kullanılan yolu karşılaştırın. PHP, göreli yolu çoğu durumda çalışan dosyanın bulunduğu klasöre göre değil, betiğin çalıştırıldığı bağlama göre değerlendirir. Bu nedenle yolu __DIR__ ile sabitlemek, dosyanın gerçekten sunucuda... -
PHP’de dosya yükleme boyutu sınırı nasıl artırılır?
İlk olarak PHP’nin kullandığı yapılandırma dosyasındaki upload_max_filesize değerini artırın; ardından post_max_size değerini bundan daha yüksek, gerekiyorsa memory_limit ve max_input_time değerlerini de yeterli olacak şekilde ayarlayın. Örneğin 50 MB dosya kabul etmek için upload_max_filesize =... -
PHP’de oturum açma ve çıkış işlemleri nasıl yapılır?
PHP’de oturum açma ve çıkış işlemi için kullanıcıyı veritabanından doğrulayıp başarılı girişten sonra session_start() ile oturumu başlatmanız, session_regenerate_id() ile oturum kimliğini yenilemeniz ve kullanıcı kimliğini $_SESSION içine yazmanız gerekir. Çıkışta ise oturum verilerini... -
PHP’de kullanıcı şifreleri nasıl güvenli şekilde saklanır?
İyi bir uygulamada kullanıcı şifresi hiçbir zaman düz metin olarak veya MD5, SHA-1, SHA-256 gibi genel amaçlı özetlerle saklanmaz. Kayıt sırasında PHP’nin password_hash() işleviyle tek yönlü parola özeti oluşturulur, veritabanına bu değer olduğu gibi yazılır; girişte ise kullanıcının gönderdiği... -
PHP’de SQL enjeksiyonu nasıl önlenir?
SQL enjeksiyonunu PHP’de önlemenin temel yolu, kullanıcıdan gelen veriyi SQL cümlesine metin olarak eklemek yerine hazırlanmış ifadeler kullanmaktır. PDO veya MySQLi ile sorgunun yapısını parametrelerden ayırın, parametreleri uygun türde bağlayın ve kullanıcı girdisini yalnızca doğrulama... -
PHP’de cURL ile API’den veri nasıl alınır?
İlk API isteği için PHP’nin cURL uzantısını etkinleştirip bir cURL oturumu açmanız, hedef URL’yi tanımlamanız, isteği çalıştırmanız ve dönen JSON metnini json_decode() ile diziye veya nesneye dönüştürmeniz yeterlidir. Aşağıdaki örnek başarılı bir HTTP yanıtını kontrol eder, JSON verisini çözer... -
PHP’de JSON verisi nasıl okunur ve diziye çevrilir?
JSON metnini PHP’de diziye çevirmek için json_decode() işlevini ikinci parametresi true olacak şekilde kullanmalısınız. Örneğin json_decode($json, true) çağrısı JSON nesnesini ilişkisel PHP dizisine dönüştürür. JSON geçersizse sonucu doğrudan kullanmak yerine hatayı kontrol edin; PHP 7.3 ve... -
PHP’de bir dizideki tekrar eden değerler nasıl bulunur?
İlk tekrar eden değerleri bulmak için diziyi array_count_values() ile saydırın, ardından sayısı 1 değerinden büyük olanları ayıklayın. Böylece hem hangi değerlerin tekrar ettiğini hem de her birinin kaç kez bulunduğunu görebilirsiniz. Yalnızca tekrar eden değerleri istiyorsanız sonuçtan sayıları... -
PHP’de sayfalama nasıl yapılır?
PHP’de sayfalama yapmak için toplam kayıt sayısını bulup geçerli sayfa numarasını doğrulamanız, her sayfada gösterilecek kayıt sayısını belirlemeniz ve SQL sorgusunda LIMIT ile OFFSET kullanmanız gerekir. Aşağıdaki örnekte PDO ile products tablosundaki ürünler sayfalara ayrılır; kullanıcı sayfa... -
PHP’de URL’den sorgu parametreleri nasıl alınır?
İstek adresindeki sorgu parametrelerini PHP’de almak için temel olarak $_GET dizisini kullanabilirsiniz. Örneğin urun.php?id=42&kategori=kitap adresinde $_GET['id'] değeri 42, $_GET['kategori'] değeri ise kitap olur. Parametrenin gönderilmediği durumda hata almamak için değeri varsayılanla...