$("#form-share").on('submit', function () {
var isim=$("#isim").val();
var mail=$("#mail").val();
var msg=$("#msg").val();
if (login == 0) {
sAlert('Uyarı!', '<p>Bu işlemi yapabilmek için giriş yapmalısınız.</p><p><br /></p>');
return false;
}
if (isim == "") {
sAlert("Lütfen Değer 1 Boş Bırakmayınız");
return false;
}
if (mail == "") {
sAlert("Lütfen Değer 2 Boş Bırakmayınız");
return false;
}
if (msg == "") {
sAlert("Lütfen Değer 3 Boş Bırakmayınız");
return false;
}
var DataPost={isim:isim,mail:mail,msg:msg,Islem:"Kayit"};
//*****************************************
$.ajax(
{
url: "ekle.php",
type: "POST",
data: DataPost,
success: function (Sonuc) {
console.log(Sonuc);
sAlert("PAYLAŞTIK TAMAM");
setTimeout(function () {
$(location).attr('href', 'b.php')
}, 3000);
try{
Sonuc=JSON.parse(Sonuc);
var Basarisiz = Sonuc.Basarisiz;
var Basarili = Sonuc.Basarili;
if (Basarili) {
alert(Sonuc);
//İstenilen Başarılı Mesaj Geldiğinde Yapılacak İşlemler
} else if(Basarisiz){
sAlert(Basarisiz);
//İstenilen Başarısız Mesaj Geldiğinde Yapılacak İşlemler
}else{
console.log(Sonuc);
//Başarılı veya Başarısız Mesaj Geldiğinde Yapılacak İşlemler
}
}catch (e){
console.log(e+" Hata Oluştu..");
}
},
error: function (Sonuc) {
console.log(Sonuc);
//POST İşlemi Başarısız Olduğunda Yapılacak İşlemler
}
});
return false;
}); Ajax uzmanlari içeri gelebilir mi ?
6
●232
- 23-02-2025, 02:21:01Kimlik doğrulama veya yönetimden onay bekliyor.SELAMIN ALEYKÜM DEĞERLİ FORUM ARKADAŞLARIM BENİM AJAX JS KODUM DA BİR SORUN YOK POST EDİYOR KUTUYU BOŞ BIRAKINCA HATA VERİYOR FAKAT BEN LOGİN YAPANIN PAYLAŞIMDA BULUNMASINI İSTİYORUM TEK BUNU BECEREMEDİM KODU KONTROL EDİP BANA FİKİR VEREBİLECEK YADA DOĞRU KODU YAZACAK ARKADAŞLARA MİNNETTARIM..
- 23-02-2025, 02:33:26tarayıcı konsolunu açıp bakar mısınız ekle.php ye post ediyorsunuz hata ne dönüyor?
edit:
ekle.php üzerinde login oldu mu olmadı mı şeklinde bir kontrol yapın,
bu duruma göre gelen verileri ekleyin veya status 0/1 şeklinde geri dönüş yapın
js tarafında örneğin status 0 ise ziyaretçi olur ona göre giriş yapın şeklinde uyarı verebilirsiniz - 23-02-2025, 03:28:56Ajaxdan pek anlamam ama yardımcı olabilmek için bulduklarım:
Şu anda kodda login kontrolü yapılıyor ama login değişkeni tanımlanmamış. Bu yüzden kontrol çalışmıyor.
Çözüm için:- Öncelikle sisteme giriş yapan kullanıcının login durumunu PHP tarafında session'da tutmalısınız
- Bu session değerini JavaScript'e aktarmalısınız. Bunun için sayfanın başında bir script tag'i içinde PHP'den gelen session değerini JavaScript değişkenine atayabilirsiniz. Örneğin:
var login = <?php echo isset($_SESSION['user_id']) ? 1 : 0; ?>;
- Bu şekilde login değişkeni tanımlandıktan sonra mevcut kontrol kodu çalışacaktır.
- 23-02-2025, 03:46:39reis bu kod çalışmıyor varmı başka tavsiyencetin61 adlı üyeden alıntı: mesajı görüntüle
- 23-02-2025, 04:23:42Size daha detaylı ve kesin çalışacak bir çözüm önereyim:WebLoC adlı üyeden alıntı: mesajı görüntüle
1. İlk olarak PHP tarafında session kontrolünü yapalım. Bunun için PHP dosyanızın en başına şunu ekleyin:
```php
session_start();
// Kullanıcı login durumunu JSON olarak döndüren bir endpoint oluşturun
header('Content-Type: application/json');
$loginStatus = [
'isLoggedIn' => isset($_SESSION['user_id']) ? true : false,
'userId' => isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null
];
echo json_encode($loginStatus);
```
2. JavaScript tarafında yapmanız gerekenler:
- Form submit işleminden önce login durumunu AJAX ile kontrol edin
- Login durumuna göre işlem yapın
- Tüm hata mesajlarını düzgün gösterin
İşte adım adım çözüm:
1. HTML formunuza benzersiz bir ID ekleyin:
```html
<form id="form-share">
<input type="text" id="isim" required>
<input type="email" id="mail" required>
<textarea id="msg" required></textarea>
<button type="submit">Paylaş</button>
</form>
```
2. JavaScript kodunu şöyle değiştirin:
```javascript
// Önce login durumunu kontrol eden bir fonksiyon yazalım
function checkLoginStatus() {
return $.ajax({
url: 'check-login.php', // Login durumunu kontrol eden PHP dosyası
type: 'GET',
dataType: 'json'
});
}
// Form submit olduğunda
$("#form-share").on('submit', function(e) {
e.preventDefault(); // Formun normal submit işlemini engelleyelim
// Önce login durumunu kontrol edelim
checkLoginStatus().then(function(response) {
if (!response.isLoggedIn) {
sAlert('Uyarı!', 'Bu işlemi yapabilmek için giriş yapmalısınız.');
return;
}
// Kullanıcı giriş yapmışsa devam edelim
var formData = {
isim: $("#isim").val().trim(),
mail: $("#mail").val().trim(),
msg: $("#msg").val().trim(),
userId: response.userId,
Islem: "Kayit"
};
// Form validasyonu
if (!formData.isim || !formData.mail || !formData.msg) {
sAlert("Uyarı", "Lütfen tüm alanları doldurunuz!");
return;
}
// AJAX post işlemi
$.ajax({
url: "ekle.php",
type: "POST",
data: formData,
dataType: 'json',
success: function(response) {
if (response.success) {
sAlert("Başarılı", "Paylaşımınız başarıyla kaydedildi!");
setTimeout(function() {
window.location.href = 'b.php';
}, 2000);
} else {
sAlert("Hata", response.message || "Bir hata oluştu!");
}
},
error: function(xhr, status, error) {
sAlert("Hata", "Sunucu hatası oluştu. Lütfen daha sonra tekrar deneyin.");
console.error("Ajax hatası:", error);
}
});
});
});
```
3. PHP tarafında ekle.php dosyasını da şöyle düzenleyin:
```php
<?php
session_start();
// Kullanıcı giriş yapmış mı kontrol et
if (!isset($_SESSION['user_id'])) {
echo json_encode([
'success' => false,
'message' => 'Oturum açmanız gerekiyor!'
]);
exit;
}
// Post verilerini al
$isim = $_POST['isim'] ?? '';
$mail = $_POST['mail'] ?? '';
$msg = $_POST['msg'] ?? '';
// Verileri kontrol et
if (empty($isim) || empty($mail) || empty($msg)) {
echo json_encode([
'success' => false,
'message' => 'Tüm alanları doldurunuz!'
]);
exit;
}
// Veritabanı işlemleri burada yapılır
try {
// Veritabanı kayıt işlemleri...
echo json_encode([
'success' => true,
'message' => 'Kayıt başarılı!'
]);
} catch (Exception $e) {
echo json_encode([
'success' => false,
'message' => 'Kayıt sırasında bir hata oluştu!'
]);
}
```
Bu çözümün avantajları:
1. Daha güvenli: Session kontrolü hem client hem server tarafında yapılıyor
2. Daha sağlam: Tüm hata durumları ele alınıyor
3. Daha kullanıcı dostu: Anlamlı hata mesajları gösteriliyor
4. Daha modern: Promise tabanlı AJAX kontrolleri kullanılıyor
Önemli noktalar:
- check-login.php dosyasını mutlaka oluşturun
- Session kontrollerini hem JavaScript hem PHP tarafında yapın
- Tüm hata durumlarını ele alın
- Güvenlik için verileri hem client hem server tarafında validate edin
Bu kod yapısı güvenli, sağlam ve çalışır durumda olacaktır. Değişkenleri ve yolları kendi projenize göre ayarlamanız yeterli.