PHP PHP konusunda yardımcı olabilir misiniz?

byChemicals

Decapat
Katılım
18 Haziran 2022
Mesajlar
40
Daha fazla  
Cinsiyet
Erkek
PHP:
<?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ı. 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_cost, 2) . "<br>";
 echo "Mevcut bakiye: " . number_format((float)$bakiye, 2) . "<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_cost, 2) . ", mevcut bakiye: " . number_format((float)$bakiye, 2);
 }
} else {
 echo "Seçili sunucu bulunamadı.";
}
$conn->close();
?>
bu kod Oturumda kullanıcı ID'si bulunamadı. oturum açtığınızdan emin olun. böyle diyor nasıl çözerim ?
 
Son düzenleyen: Moderatör:
Kodda o kadar yanlış var ki nereden başlasam bilemedim.
En basiti oturumu başlatmak için
session_start();
kodunu sayfanın en üstüne eklemelisin.
$_SESSION['id'] değişkenini tanımlamadan, $musteri_id değişkenine atamışsın ve bu değişkenle birlikte musteri tablondan veri çekmeye çalışıyorsun.
$musteri_id değişkenin boş, neden?
Çünkü $_SESSION['id'] boş, neden?
Çünkü oturum başlayınca tanımlamamışsın.

Yani yardım kurtarmaz, nereden tutsan elinde kalıyor üzgünüm
 
Sagolun hocam yinede teşekkür ederim sizden birsey istesem bana yardımcı olabilirmisiniz ücretsiz yapabileceğiniz biseyse? Geri kalanını ben düzenlesem geliştirsem?

Ben Bi sürü yazılıma para odedimde ise yaramıyor ya yarıyorda kullanmak istemiyorum siz bana php-rcon query apisi ile basit bir ssh2 extensionlu cs 1.6 panel kodlayip atabilirmisiniz çok basit olsa ?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…