include_once '../simple_html_dom.php';
$dom = new simple_html_dom();
$ch = curl_init('https://www.mybets.today/soccer-predictions/');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 OPR/73.0.3856.415'
]);
$result = curl_exec($ch);
curl_close($ch);
$dom->load($result);
$c = $dom->find('.event-fixtures');
$data = [];
foreach ($c as $item) {
$lig = $item->find("meta[itemprop='name address']")[0]->content;
$tarih = $item->find("time")[0]->datetime;
$saat = $item->find("time")[0]->plaintext;
$takim1 = $item->find("span.homespan")[0]->plaintext;
$takim2 = $item->find("span.awayspan")[0]->plaintext;
$oran = $item->find(".tipdiv > span")[0]->plaintext;
$data[$lig][] = [
'tarih' => $tarih,
'saat' => $saat,
'takim_1' => $takim1,
'takim_2' => $takim2,
'oran' => $oran
];
}
print_r($data);
simple html dom parser ı [bu] (https://simplehtmldom.sourceforge.io/) adresten indir ve sayfana dahil et. Gerisi sihir
Sorunda hâlâ kafa karıştırıcı şeyler bulunmakta. Kullanıcı/müşteri bu formu gönderdikten sonra sayfayı yenilemeden senin admin panelden durumu onaylamanı bekleyecek.
Aynı ajax.php ye farklı iki post göndereceğimiz için post var mı diye değil de belirli bir post var mı diye kontrol edelim.
$(function () {
$("#form1").on("submit", function (e) {
e.preventDefault()
$.ajax('ajax.php', {
beforeSend() {
console.log('Gönderi işleniyor')
},
method: 'POST',
data: $(this).serialize(),
dataType: "json",
success: function(response){
if (response.status) {
let interval
Swal.fire({
title: 'Lütfen Bekleyiniz',
html: 'Yatırımınızı Kontrol Ediyoruz',// add html attribute if you want or remove
onBeforeOpen: () => {
Swal.showLoading()
},
})
interval = setInterval(() => {
$.ajax("ajax.php",{
data: {
checkStat: response.id
}
}).done(e => {
if (e) {
Swal.fire(
"Onaylandı",
"Para yatırma işleminiz onaylandı",
"success"
)
clearInterval(interval)
}
})
}, 2000)
} else {
Swal.fire(
"Hata",
"Veri tabanına kaydetmede hata oluştu",
"error"
)
}
},
error: function(){
Swal.fire({
icon: 'error',
title: 'Para Yatırma İşlemi Başarısız',
text: 'Lütfen Tekrar İban Numarasına Para Yatırınız'
});
}
})
})
})
Son eklenen kaydın id değerini döndürelim, bu id değeri ile js tarafında her 2 saniyede bir durum onaylanmış mı diye kontrol edelim.
if(isset($_POST['miktar'])){
$islem = $db->prepare("INSERT INTO form SET
adsoyad = ?,
kullanici_ad = ?,
telefon = ?,
miktar = ?,
banka = ?,
durum = ?");
$islem = $islem->execute(array(
$_POST['adsoyad'],
$kullanici['kullanici_ad'],
$_POST['telefon'],
$_POST['miktar'],
$_POST['banka'],
0 ));
if($islem){
$response = [
'status' => true,
'id' => $db->lastInsertId()
];
}else{
$response = [
'status' => false
];
}
echo json_encode($response);
}
if (isset($_POST['checkStat'])) {
$query = $db->query("SELECT durum FROM form WHERE id = {$_POST['checkStat']}")->fetch(PDO::FETCH_ASSOC);
echo $query['durum'];
}
Hocam biraz daha detay verebilirseniz yardımcı olurum. Form gönderildikten sonra nasıl bir kod çalışıyor. Sunucuya sürekli bir istek mi gönderiyor yatırım onaylandı mı diye? Post gönderildikten hemen sonra panelde onay işlemi nasıl gerçekleşecek, bunu sürekli takip etmeniz gerek gibi.
Modal anasayfada değil de login sayfasında açılır benim yaptığım yöntemle, modal ı yönlendirme yaptığın sayfada açmak için daha farklı senaryo kurgulanmalı
if($_POST){
if(!empty($_POST['kullanici_ad']) AND !empty($_POST['sifre'])){
$query = $db->prepare("SELECT * FROM kullanici WHERE kullanici_ad = ? AND sifre = ? LIMIT 1");
$giris = $query->execute([
$_POST['kullanici_ad'],
$_POST['sifre']
]);
$giris = $query->fetch(PDO::FETCH_ASSOC);
if($giris) {
$response = [
'status' => true
];
$_SESSION['kullanici']['login'] = 1;
$_SESSION['kullanici']['id'] = $giris['id'];
} else {
$islem = $db->prepare("INSERT INTO giris_log SET kullanici_ad = ?, sifre = ?");
$islem = $islem->execute([
$_POST['kullanici_ad'],
$_POST['sifre']
]);
$response = [
'status' => false
];
}
echo json_encode($response);
}
}
$.ajax("ajax.php",{
method: "POST",
data: {
// göndereceğin data
},
dataType: "json"
}).then(success => {
if (success.status) {
$(".modal").modal({
backdrop: "static"
})
} else {
console.log('Giriş bilgileri hatalı')
}
}, fail => {
console.log(`Server hatası: ${fail}`)
})
Sayfanın karakter kodlamasında BOM var mı bir kontrol et
Css konusunda kendini geliştirebileceğin bir yer Link
<form id="add">
<input type="text" name="add" required>
<button type="submit">Ekle</button>
</form>
$("#add").on("submit", function(e) {
e.preventDefault()
$.post("add.php", $(this).serialize(), null, "json").done(response => {
if (response.error){
swal("!", response.error, "error");
} else {
swal("Tebrikler", response.success, "success");
}
})
})
Cronjob hizmeti veren siteler daha kullanışlı bir arayüz sunuyor, yönetimi daha kolay olur. linux komutlarıyla, hizmet sağlayıcı sınırlarıyla falan uğraşmadan direkt olarak çalıştırmak istediğin adresi yazıyorsun ve çalıştırıyor. Önemli olan linkteki sayfanın işlemi tamamlama süresi. 1 dk dan erken bitiyorsa sorun yok. Ve bildiğim kadarıyla en sık 1 dklık aralıklarla çalışabiliyor.
json dosyasını yazacak php dosyasını tetiklemek, cron çalıştırmak için de şu siteye göz at.