User::Login([
'user_id' => $db->lastInsertId(),
'user_name' => $username
]);
Hocam Burada Eksik Parametreler Var Yani Şöyle Düşünebilirsiniz:
public static function Login($data = [
'user_id' => $db->lastInsertId(),
'user_name' => $username
])
{
$_SESSION['user_id'] = $data['user_id'];
$_SESSION['user_name'] = $data['user_name'];
$_SESSION['user_rank'] = $data['user_rank'];
$_SESSION['user_permissions'] = $data['user_permissions'];
}
Böyle düzelecektir.
User::Login([
'user_id' => $db->lastInsertId(),
'user_name' => $username,
'user_rank' => $userrank,
'user_permissions' => $userpermissions
]);
Hocam böyle bir makale buldum umarim işinize yarar.
Bu da 2. si :d
Hocam yapabildiğim en kısa çözüm bu.
Otomatik olarak oynatacak ve sonuna geldiğinde otomatik olarak başa alııyor.
Bunu sona ekleyebilirsiniz.
setInterval(() => {
const sliderWidth = sheets.getBoundingClientRect().width;
const sliderScrollWidth = sheets.scrollWidth;
const offset = parseFloat(sheets.style.left) || 0;
if (-offset + sliderWidth < sliderScrollWidth) {
sheets.style.left = `${offset - sliderWidth}px`;
} else {
sheets.style.left = '0px';
}
}, 5 * 1000); // 5 yerine saniye cinsinden bir sayı yazabilirsiniz
Hocam isset()
bool döndürüyor if in içine bile girmiyor o yüzden.
Bu şekilde olacaktır.
$request = isset($_POST['Uonayisset']) ? $_POST['Uonayisset'] : "";
Bu işinize yaracaktır hocam
<input type="file" name="dosya" id="dosya" />
$dosya = $_FILES["dosya"];
move_uploaded_file($dosya["tmp_name"],
"../../dosya/yolu/". $isim .".". pathinfo($dosya["tmp_name"], PATHINFO_EXTENSION));
return $query->fetchAll();
yerine return $query->fetch();
yaparsanız düzelecektir diye düşünüyorum hocam.
Hocam böyle yaparsanız çalışacaktır
<html>
<body>
<div class="alert alert-primary mt-3" role="alert" id="odemeekrani">
</div>
<select class="form-control form-control-sm urun" name="urun1" id="urun1" data-urunadi="A Kalemi">
<option data-fiyat="0" value="0">Seçiniz..</option>
<option data-fiyat="50" value="1">1</option>
<option data-fiyat="60" value="2">2</option>
<option data-fiyat="75" value="3">3</option>
<option data-fiyat="105" value="4">4</option>
</select>
<script>
[...document.querySelectorAll("select.urun")].forEach(urun => {
// Eğer Select Değişirse (onChange)
urun.addEventListener("change", function(e) {
// data-urunadi nın değerini aldık
var urunadi = this.dataset.urunadi;
//şimdi seçilmiş olan option un fiyatını ve değerini alıcaz
var secilmisOption = this.options[this.selectedIndex];
console.log("Ürün => " + urunadi);
console.log("Fiyat => " + secilmisOption.dataset.fiyat);
console.log("Kaç Tane Alındı => " + secilmisOption.value);
//işlemler Buraya
})
})
</script>
</body>
</html>
Önemli değil hocam iyi günler dilerim.
Hocam direkt olarak urunadi
alınmıyor diye biliyorum data-urunadi
daha kullanışlı olur.
Aynı şey fiyatlar içinde geçerli
Daha verimli olması için tüm ürün select lerine urun
classı verelim.
<div class="alert alert-primary mt-3" role="alert" id="odemeekrani">
</div>
<select class="form-control form-control-sm urun" name="urun1" id="urun1" data-urunadi="A Kalemi">
<option data-fiyat="0" value="0">Seçiniz..</option>
<option data-fiyat="50" value="1">1</option>
<option data-fiyat="60" value="2">2</option>
<option data-fiyat="75" value="3">3</option>
<option data-fiyat="105" value="4">4</option>
</select>
Javascript tarafında rahat edeceğiz böyle yaparsak.
// Tüm ürün classlarını çekiyoruz.
//(Birden fazla ürün olduğunu varsayıyoruz)
[...document.querySelectorAll("select.urun")].forEach(urun => {
// Eğer Select Değişirse (onChange)
urun.addEventListener("change", function(e) {
// data-urunadi nın değerini aldık
var urunadi = this.dataset.urunadi;
//şimdi seçilmiş olan option un fiyatını ve değerini alıcaz
var secilmisOption = this.options[this.selectedIndex];
console.log("Ürün => " + urunadi);
console.log("Fiyat => " + secilmisOption.dataset.fiyat);
console.log("Kaç Tane Alındı => " + secilmisOption.value);
})
})