yardımcı olurmusunuz ? php ile ilgili

Konu

#1
PHP Kod:
<?php
// Hata raporlamayı etkinleştir
error_reporting(E_ALL);
ini_set('display_errors'1);
// Veritabanı bağlantısı
$servername "localhost";
$username "root";
$password "12341234";
$dbname "panel";
// Bağlantıyı oluştur
$conn = new mysqli($servername$username$password$dbname);
// Bağlantıyı kontrol et
if ($conn->connect_error) {
    die("Bağlantı hatası: " $conn->connect_error);
}
// Oturum başlatma işlemini kontrol edin ve sadece bir kez başlatıldığından emin olun
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
// Kullanıcı ID'sini oturumdan al
if (!isset($_SESSION['id']) || empty($_SESSION['id'])) {
    echo "Oturumda kullanıcı ID'si bulunamadı. Lütfen oturum açtığınızdan emin olun.<br>";
    $conn->close();
    exit;
}
$musteri_id $_SESSION['id'];
// Kullanıcının mevcut bakiyesini al
$stmt $conn->prepare("SELECT bakiye, sunucu FROM musteri WHERE id = ?");
$stmt->bind_param("i"$musteri_id);
$stmt->execute();
$stmt->bind_result($bakiye$musteri_sunucu);
if (!
$stmt->fetch()) {
    echo "Kullanıcı bulunamadı veya geçersiz kullanıcı ID'si.<br>";
    $stmt->close();
    $conn->close();
    exit;
}
$stmt->close();
// Seçili sunucu ID'lerini al
$sunucu_ids = isset($_POST['sunucu_ids']) ? $_POST['sunucu_ids'] : [];
if (!empty(
$sunucu_ids)) {
    $total_cost 0;
    $sunucu_ids_to_update = [];
    // Fiyatları hesapla ve toplam maliyeti bul
    foreach ($sunucu_ids as $sunucu_id) {
        $stmt $conn->prepare("SELECT fiyat FROM sunucu WHERE id = ?");
        $stmt->bind_param("i"$sunucu_id);
        $stmt->execute();
        $stmt->bind_result($fiyat);
        if (!$stmt->fetch()) {
            echo "Geçersiz sunucu ID'si: $sunucu_id.<br>";
            $stmt->close();
            continue;
        }
        $stmt->close();
        $total_cost += (float)$fiyat// Fiyatı float olarak işleyin
        $sunucu_ids_to_update[] = $sunucu_id;
    }
    // Toplam maliyeti ve bakiyeyi yazdır
    echo "Toplam maliyet: " number_format($total_cost2) . "<br>";
    echo "Mevcut bakiye: " number_format((float)$bakiye2) . "<br>";
    // Bakiyeyi kontrol et
    if ((float)$bakiye >= $total_cost) {
        // Bakiye güncelle
        $new_bakiye $bakiye $total_cost;
        $stmt $conn->prepare("UPDATE musteri SET bakiye = ? WHERE id = ?");
        $stmt->bind_param("di"$new_bakiye$musteri_id);
        if ($stmt->execute()) {
            // Sunucuları güncelle
            foreach ($sunucu_ids_to_update as $sunucu_id) {
                // Kiralık olarak işaretle
                $stmt $conn->prepare("UPDATE sunucu SET kiralik = 1 WHERE id = ?");
                $stmt->bind_param("i"$sunucu_id);
                if (!$stmt->execute()) {
                    echo "Sunucu (ID: $sunucu_id) bilgileri güncellenirken bir hata oluştu.<br>";
                }
                // Kullanıcının sahip olduğu sunucu ID'sini güncelle
                $new_sunucu_ids = ($musteri_sunucu) ? $musteri_sunucu ',' $sunucu_id $sunucu_id;
                $stmt $conn->prepare("UPDATE musteri SET sunucu = ? WHERE id = ?");
                $stmt->bind_param("si"$new_sunucu_ids$musteri_id);
                if (!$stmt->execute()) {
                    echo "Sunucu (ID: $sunucu_id) bilgileri güncellenirken bir hata oluştu.<br>";
                }
            }
            echo "Seçili sunucular başarıyla satın alındı ve kaydedildi.";
        } else {
            echo "Bakiye güncellenirken bir hata oluştu.";
        }
    } else {
        echo "Yeterli bakiyeniz yok. Toplam maliyet: " number_format($total_cost2) . ", mevcut bakiye: " number_format((float)$bakiye2);
    }
} else {
    echo "Seçili sunucu bulunamadı.";
}
$conn->close();
?>
bu kod Oturumda kullanıcı ID'si bulunamadı. Lütfen oturum açtığınızdan emin olun. böyle diyor nasıl çözerim ? 
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Kayıt Ol
Discord Adresimize Katılın