Merhaba!
PHP ve AJAX ile login işlemini yaparken bir loader gif eklemek için aşağıdaki adımları izleyebilirsiniz:
1- Öncelikle, login işleminin yapıldığı sayfada bir div etiketi oluşturun ve bu div'e bir ID verin.
Örneğin:
<div id="loader"></div>
2- Daha sonra, login işlemini yapacak olan AJAX isteğine cevap döndüğünde bu div'in içine bir gif dosyası ekleyin.
Örneğin:
$("#loader").html('<img src="loader.gif" alt="Yükleniyor..." />');
3- Login işleminin başarılı bir şekilde tamamlandığını doğruladıktan sonra, gif dosyasını kaldırın ve login işleminin tamamlandığını kullanıcıya bildirin.
Örneğin:
$("#loader").html('');
alert("Login başarılı!");
Bu adımları uyguladığınızda login işlemi sırasında bir loader gif göstererek kullanıcıyı bekletme süresini kısaltabilirsiniz. Eğer bu konuda daha ayrıntılı bilgiye ihtiyacınız olursa lütfen bana sorularınızı sorun. İyi çalışmalar!
Eğer col-md-4 içindeki divin yüksekliğini section elementinin yüksekliğine eşitlemek istiyorsanız, section elementinin yüksekliğini col-md-4 içindeki divin yüksekliğine eşitleyebilirsiniz.
Bunun için HTML'deki section ve col-md-4 elementlerine aşağıdaki gibi bir style özelliği ekleyebilirsiniz:
<section style="height: 100%;">
<div class="row">
<div class="col-md-4" style="height: 100%;">
Div içeriği
</div>
</div>
</section>
Bu şekilde, col-md-4 içindeki divin yüksekliği artık section elementinin yüksekliğine eşit olacaktır.
Eğer bu divin içeriği fazla ise ve daha fazla büyümeyip scroll açılmasını istiyorsanız,
div elementine aşağıdaki gibi bir style özelliği ekleyebilirsiniz:
<div style="overflow-y: auto;">
Div içeriği
</div>
Bu sayede, divin içeriği fazla ise divin içinde scroll bar görünecektir ve kullanıcı divin içeriğini kaydırarak görebilecektir.
Merhaba! Türkçe ve İngilizce kelimeleri ayırt etmek için PHP'de mb_detect_encoding() fonksiyonunu kullanabilirsiniz.
Bu fonksiyon bir metin dizesinin hangi dil kodlamasına (örneğin Türkçe veya İngilizce) ait olduğunu tespit edebilir.
Örneğin:
$string = 'Bu bir Türkçe cümle.';
$encoding = mb_detect_encoding($string);
if ($encoding === 'UTF-8') {
// Bu Türkçe bir cümledir, çünkü UTF-8 kodlaması kullanılmıştır.
// Türkçe kelimeleri burada işleyebilirsiniz.
}
Bu fonksiyonu kullanarak Türkçe ve İngilizce kelimeleri ayırt edebilir, onları ayrı ayrı işleyebilirsiniz.
Dikkat etmeniz gereken şey, metin dizelerini doğru kodlamada (örneğin UTF-8) depolamanızdır,
böylece mb_detect_encoding() fonksiyonu doğru bir sonuç döndürebilir.
Daha fazla bilgi için: (https://www.php.net/manual/en/function.mb-detect-encoding.php)
Merhaba,
Öncelikle SweetAlert2 kütüphanesini sayfanıza dahil etmeniz gerekiyor.
Bunun için aşağıdaki kodu sayfanızın <head> kısmına ekleyebilirsiniz:
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
Daha sonra, ajax isteğinizin başarılı olduğu durumda aşağıdaki gibi bir kod bloğu yazabilirsiniz:
if(x == 0){
$('#sepete_ekle_durum').addClass('hata').html('Yeterli stok bulunamadı.');
}else if(x == 1){
$('#sepete_ekle_durum').addClass('hata').html('Geçersiz istek.');
}else{
// SweetAlert2 modalini ac
Swal.fire({
title: 'Ürün sepete eklendi!',
text: 'Sepetinize ürün başarıyla eklendi.',
icon: 'success',
showConfirmButton: false,
timer: 1500
});
// Sepeti guncelle
sepet();
$('#saydam_bg').fadeIn(500);
$('#sepet').fadeIn(500);
sepet_sayisi();
}
Bu kod bloğunda, SweetAlert2 kütüphanesini kullanarak bir modal açıyoruz ve başlık, metin, ikon ve timer ayarlarını yapıyoruz. Daha sonra sepeti güncelleyip modalı gösteriyoruz.
Daha fazla bilgi için SweetAlert2 dokümantasyonuna bakabilirsiniz: (https://sweetalert2.github.io)
İyi çalışmalar!
Bu hatanın sebebi, Menu.Divider fonksiyonunun Menu sınıfının bir üyesi olarak tanımlanması.
Menu.Divider adı, Menu sınıfının bir alt sınıfı olarak görünüyor, ancak aslında bir fonksiyon.
Bu nedenle, React bu fonksiyonu bir custom Hook olarak algılamaz ve "useContext" Hook'unun yanlış bir yerde kullanıldığını bildirir.
Bir çözüm olarak, Menu.Divider fonksiyonunu Menu sınıfının bir alt sınıfı değil, tamamen ayrı bir fonksiyon olarak tanımlayabilirsiniz.
Örneğin:
const Divider = () => {
const { position } = useContext(MenuContext);
return (
<div
className="divider"
style={{
"--left": position.left + "px",
"--top": position.top + "px",
"--width": position.width + "px",
"--height": position.height + "px",
}}
></div>
);
};
Bu şekilde, Divider fonksiyonu bağımsız bir fonksiyon olarak tanımlanmış olacak ve "useContext" Hook'unu kullanabilirsiniz.
Menu sınıfının içinde Divider fonksiyonunu çağırmak için aşağıdaki gibi bir kod kullanabilirsiniz:
const Menu = ({ children }) => {
const [position, setPosition] = useState({});
return (
<MenuContext.Provider value={{ setPosition, position }}>
<nav className="menu">
{children}
<Divider />
</nav>
</MenuContext.Provider>
);
};
Öncelikle PHP Curl kütüphanesini kurmanız ve projenize dahil etmeniz gerekir.
Daha sonra, istediğiniz web sitesinin URL'sini belirterek bir CURL isteği yapabilirsiniz.
CURLOPT_RETURNTRANSFER seçeneğini ayarlayarak, istek sonucunu bir değişkende tutabilir ve içeriğini işleyebilirsiniz.
Aşağıda basit bir örnek verilmiştir:
// Kurulum
$ch = curl_init();
// URL ayarlamak
curl_setopt($ch, CURLOPT_URL, "https://erhanurgun.com.tr/");
// Cevapları değişkende tutmak için seçeneği ayarlamak
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// İstek yapmak
$output = curl_exec($ch);
// İşlemler bittiğinde kaynakları serbest bırakmak
curl_close($ch);
// İçeriği işlemek
// ...
Aşağıda ki örnekte, bir formun verilerini içeren bir POST isteği yapılmaktadır.
İstek sonucunu bir değişkende tutarak, içeriğini işleyebilir ve istediğiniz verilere ulaşabilirsiniz.
// Form verilerini ayarlamak
$data = array(
'field1' => 'value1',
'field2' => 'value2',
// ...
);
// Kurulum
$ch = curl_init();
// URL ayarlamak
curl_setopt($ch, CURLOPT_URL, "https://erhanurgun.com.tr/www/submit.php");
// POST isteğini ayarlamak
curl_setopt($ch, CURLOPT_POST, 1);
// Form verilerini ayarlamak
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// Cevapları değişkende tutmak için seçeneği ayarlamak
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// İstek yapmak
$output = curl_exec($ch);
// İşlemler bittiğinde bağlantıyı sonlandırma
curl_close($ch);
// İçeriği işlemek
// ...
PHP Curl kütüphanesinin diğer seçeneklerini ve fonksiyonlarını da kullanarak daha gelişmiş ve özelleştirilmiş istekler yapabilirsiniz.
Daha fazla bilgi için PHP Curl kütüphanesiyle ilgili dokümantasyona bakabilirsiniz
Link: (https://www.php.net/manual/tr/book.curl.php)
Bu sorunu aşmak için birkaç yöntem var.
- Editörün içerisindeki kodları temizleme özelliğini varsa kullanabilirsiniz.
- Editörün içerisindeki kodları temizleme özelliği yoksa, kopyaladığınız metni notepad, notepad++ gibi herhangi bir programda açıp, yazılan kodları yapıştırdığınız da temiz bir metin oluşturabilirsiniz, sonra bu metni editörün içerisine yapıştırabilirsiniz.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Form Posts</title>
<style>
/* Selector Specificity: (1, 0, 0) */
#pdoForm {
background-color: red;
width: 250px;
padding: 10px;
}
/* Selector Specificity: (1, 0, 1) */
form#ajaxForm {
background-color: blue;
width: 200px;
padding: 10px;
}
</style>
</head>
<body>
<!-- PdoFormu -->
<form action="pdo.php" method="POST" id="pdoForm">
<input type="text" name="first_name" placeholder="Ad"><br><br>
<input type="text" name="last_name" placeholder="Soyad"><br><br>
<!-- Ajax Formu -->
<form method="POST" id="ajaxForm" style="background-color: purple; width: 200px; padding: 10px;">
<input type="text" name="username" placeholder="Kullanıcı Adı"><br><br>
<input type="password" name="password" placeholder="Şifre"><br><br>
<button type="submit" id="ajaxSubmit" name="btn_ajax" value="1">Ajax Gönder</button><br><br>
</form>
<button type="submit" id="pdoSubmit" name="btn_pdo" value="1">Pdo Gönder</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
// eğer ajaxSubmit'a tıklandıysa
$('#ajaxSubmit').click(function(e) {
// formu submit etme
e.preventDefault();
// ajaxForm'daki verileri al
let data = $('#ajaxForm').serialize();
// ajaxForm'daki verileri ajax.php'ye gönder
console.log(data);
$.ajax({
type: 'POST',
url: 'ajax.php',
data: data,
success: function(response) {
let data = JSON.parse(response);
console.log(data);
}
});
});
</script>
</body>
</html>

Normalde bu şekilde ayrı ayrı alıp POST edebiliyor olman gerekirdi ama gel gör ki ne yazık ki içi içe olan form'a basit bir CSS dahi işlemiyor !!!
Doğal olarak bu durum POST işlemi içinde aynı...
Ama illa ki bunun da vardır bir çözümü...
Yapsa yapsa @tayfunerbilen hocam yapar bunu :)
<?php
// PHPMailer ile çoklu mail gönderme işlemi yapan sınıf
require_once 'class.phpmailer.php'; // PHPMailer sınıfını dahil ediyoruz
require_once 'class.smtp.php'; // SMTP sınıfını dahil ediyoruz
class Mailer { // Mailer sınıfı oluşturuyoruz
private $mail; // Mailer sınıfı içinde kullanacağımız mail değişkeni
public function __construct() { // Mailer sınıfı oluşturulduğunda çalışacak olan fonksiyon
$this->mail = new PHPMailer(); // Mailer sınıfı içindeki mail değişkenine PHPMailer sınıfını atıyoruz
$this->mail->IsSMTP(); // SMTP kullanacağımızı belirtiyoruz
$this->mail->SMTPAuth = true; // SMTP kullanıcı adı ve şifre ile giriş yapacağımızı belirtiyoruz
$this->mail->SMTPSecure = 'ssl'; // SSL bağlantısı kullanacağımızı belirtiyoruz
$this->mail->Host = 'smtp.gmail.com'; // SMTP sunucusunun adresini belirtiyoruz
$this->mail->Port = 465; // SMTP sunucusunun portunu belirtiyoruz
$this->mail->Username = '[email protected]'; // SMTP kullanıcı adını belirtiyoruz
$this->mail->Password = '************'; // SMTP şifresini belirtiyoruz
$this->mail->SetFrom('[email protected]', 'Gönderen Adı'); // Gönderen adresini ve adını belirtiyoruz
$this->mail->CharSet = 'UTF-8'; // Karakter setini belirtiyoruz
}
public function send($to, $subject, $message) { // Tekil mail gönderme işlemi yapan fonksiyon
$this->mail->Subject = $subject; // Mail konusunu belirtiyoruz
$this->mail->MsgHTML($message); // Mail içeriğini belirtiyoruz
$this->mail->AddAddress($to); // Mail adresini belirtiyoruz
if (!$this->mail->Send()) { // Mail gönderme işlemi başarısız olursa
return false; // false değeri döndürüyoruz
} else { // Mail gönderme işlemi başarılı olursa
return true; // true değeri döndürüyoruz
}
}
public function sendMultiple($to, $subject, $message) { // Çoklu mail gönderme işlemi yapan fonksiyon
$this->mail->Subject = $subject; // Mail konusunu belirtiyoruz
$this->mail->MsgHTML($message); // Mail içeriğini belirtiyoruz
foreach ($to as $address) { // Mail adreslerini döngüye alıyoruz
$this->mail->AddAddress($address); // Mail adresini belirtiyoruz
}
if (!$this->mail->Send()) { // Mail gönderme işlemi başarısız olursa
return false; // false değeri döndürüyoruz
} else { // Mail gönderme işlemi başarılı olursa
return true; // true değeri döndürüyoruz
}
}
}
// Mail gönderme işlemi
$mailer = new Mailer(); // Mailer sınıfını oluşturuyoruz
$to = '[email protected]'; // Tekil mail gönderme işlemi için mail adresi
$subject = 'PHPMailer ile Tekli Mail Gönderme'; // Mail konusu
$message = 'PHPMailer ile tekli mail gönderme işlemi yaptık.'; // Mail içeriği
if ($mailer->send($to, $subject, $message)) { // Tekil mail gönderme işlemi başarılı olursa
echo 'E-posta başarıyla gönderildi.'; // Ekrana mesaj yazdırıyoruz
} else { // Tekil mail gönderme işlemi başarısız olursa
echo 'E-posta gönderilemedi.'; // Ekrana mesaj yazdırıyoruz
}
// Çoklu mail gönderme işlemi
$to = [ // Çoklu mail gönderme işlemi için mail adreslerini diziye atıyoruz
'[email protected]',
'[email protected]',
'[email protected]'
];
$subject = 'PHPMailer ile Çoklu Mail Gönderme';
$message = 'PHPMailer ile çoklu mail gönderme işlemi yaptık.';
if ($mailer->sendMultiple($to, $subject, $message)) {
echo 'E-posta başarıyla gönderildi.';
} else {
echo 'E-posta gönderilemedi.';
}
?>
PHP hic bir zaman olmez!
PHP'yi Tayfun hocam gibi derinlemesine ogrenebilirsen Laravel, Codeigniter vb. bir cok kutupheneyi dahi insa edebilirsin!
Laravel ile ekmek kazanan biri olarak soyluyorum, PHP olmez ve kendi capinda hakki yenemeyecek duzeyde islere vesile olan bir dil!
Eger PHP'yi tam manasiyla olmasa dahi cogunlukla ogrenememis olsaydim suan laravel icin paket yazamiyor olurdum!