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 :)
 
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?

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 :)
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 ?
 

Technopat Haberler

Yeni konular

Geri
Yukarı