sunucu lazım her şeyden önce. sonra protokol seçmen gerekiyor, smtp veya imap. aralarında pek bir fark yok, smtp ssl yerine tls ile şifreleme yapıyor. birkaç ufak ayarlamadan sonrada, backend programlama gerekecektir diye düşünüyorum.
kurulum ve yapılandırma detayları için aşağıdaki bağlantıyı inceleyebilirsin
https://docs.microsoft.com/en-us/biztalk/install-and-config-guides/appendix-d-create-the-smtp-server
sunucu lazım her şeyden önce. sonra protokol seçmen gerekiyor, smtp veya imap. aralarında pek bir fark yok, smtp ssl yerine tls ile şifreleme yapıyor. birkaç ufak ayarlamadan sonrada, backend programlama gerekecektir diye düşünüyorum.
kurulum ve yapılandırma detayları için aşağıdaki bağlantıyı inceleyebilirsin
https://docs.microsoft.com/en-us/biztalk/install-and-config-guides/appendix-d-create-the-smtp-server
tekrar tekrar sunucuya istekte bulunmanın manası yok, zaten değer döndüğünde yine koşul yazacaksın. benim tavsiyem, çok farklı unsurlar yoksa ve byte açısından dönen değer uzun değilse, tek seferde aldığın veriyi farklı farklı alanlarda kullanmaya bak. hem performans açısından, hemde kullanılabilirlik açısından sürekli elinin altında bulunur. veri büyüksede, bir sınıf oluşturup, özelliklere göre ayrıştırarak kullan. gerekiyorsa sorgu başına önbelleğe de alabilirsin.
sayfada session başlattın mı? bence session da kupon bilgisini tutman tutarsızlıklara davetiye çıkartabilecek bir durum.
if($_POST["kupon"){
$kupon = $db->prepare("SELECT tutar FROM kupon where kod=:kod");
$ka = $kupon->execute(array(":kod"=>$_POST['kupon']));
$ka = $kupon->fetch(PDO::FETCH_ASSOC);
$toplam = $ka->rowCount() > 0 ?
$cek['uyelik_fiyati'] - (($cek['uyelik_fiyati'] * $ka['tutar']) / 100):
$cek['uyelik_fiyati'];
return $toplam;
}
ufak bir detay select de yıldız kullanma, ihtiyacın olan kolonu seç, daha performanslı olur. sorguladığın alanı seçmenede gerek yok, tutarı seçtim ama kod'u sorguladım örneğin.
böyle bi deneyi ver session'lardan da kurtulmaya bak. kupon için gereksiz.
element.SetAttribute('value', 'değer')
aldigin veriyi key => value seklinde dizi haline getir, daha sonra donguye al, dongu icinde de yukaridaki ornek ile inputlari doldur.
bir tane textarea olusturup gizle, dokuman yuklendiginde o gizli textarea icin focus yap. muhtemelen klavye acilacaktir. acilmadi mi? label ata ve tum dokumani textareya referans ver, tetikleyicisini de duruma gore ayarla. touch diyebilirsin mesela.
jquery'nin resmi sitesinde yer alan dökümanlar içerisinde "manipulation" adında bir sayfa var, orada yaklaşık 10 kadar yöntem mevcut. append gibi, zaten o da bu gruba dahil. kullanımlarıda append kadar kolay, bir göz atıver. bir tanede örnek göstereyim;
$('.cikartma-butonu').on('click', function (){
$('.cikartilcak-eleman').remove();
});
.cikartma-butonu class'lı öğeye tıklandığında, .cikartilcak-eleman class'lı html öğesini kaldırmış oldun. buradaki remove fonksiyonu jquery'e ait değildir, düz javascript yöntemidir.
in in bitmedi bakarken yoruldum.
kodları incelemeden cevap veriyorum, mevcut durumun çözümünden ziyade alternatif kullanım;
localStorage.getItem('sepet') ? console.log('sepette ürün var') : console.log('sepette ürün yok');
bunu ürün kontrol etmek için kullan, sepete ürün eklerkende, bunu json olarak kaydet, ürün eklenip çıkartıldığında jsondan objeye dönüp çerezi düzenle. sadece id kaydetsen yeter, bu sayede id'ye göre sepette ürün gösterip güncel fiyatlar için istekte bulunabilirsin. tamamını kaydedersen diye ekstradan söyleyim dedim.
evet iki kere return eklemişim else koşulu için ilk if'i kopyalarken, zaten revize edip daha verimli şekilde tekrar yazdım ilk mesaja bakıver.