MySQL verileri çekilmiyor

farukk1661

Picopat
Katılım
8 Aralık 2024
Mesajlar
136
Çözümler
2
Daha fazla  
Sistem Özellikleri
Anakart : Gigabyte B450-M S2H
İşlemci: AMD Ryzen 5 5500
RAM : Corsair vengeance RGB pro16GB 3600Mhz
Ekran Kartı : Sapphire nitro plus RX 6600XT
Cinsiyet
Erkek
Meslek
İşsiz
Bütün kodların doğruluğundan neredeyse eminim, hata nerede?

HTML:
//kayit.html
<form id="register-form" action="kayit.php" method="post">
            <div class="form-group animate-fade-in">
              <label for="register-username">Kullanıcı Adı:</label>
              <input
                type="text"
                id="register-username"
                name="username"
                required
                minlength="3"
                maxlength="50"
              />
            </div>
            <div class="form-group animate-fade-in">
              <label for="register-email">E-posta:</label>
              <input type="email" id="register-email" name="email" required />
            </div>
            <div class="form-group animate-fade-in">
              <label for="register-password">Şifre:</label>
              <input
                type="password"
                id="register-password"
                name="password"
                required
                minlength="6"
              />
            </div>
            <div class="message-container">
              <div id="hataMesaji" class="error-message"></div>
              <div id="basariMesaji" class="success-message"></div>
            </div>
            <button type="submit" class="btn btn-primary">Kayıt Ol</button>
          </form>
HTML:
//giris.html
          <form id="login-form" action="giris.php" method="post">
            <div class="form-group animate-fade-in">
              <label for="login-username" data-translate="login-form-username"
                >Kullanıcı Adı veya E-posta:</label
              >
              <input
                type="text"
                id="login-username"
                name="kullanici_adi_veya_email"
                required
              />
            </div>
            <div class="form-group animate-fade-in">
              <label for="login-password" data-translate="login-form-password"
                >Şifre:</label
              >
              <input
                type="password"
                id="login-password"
                name="sifre"
                required
              />
            </div>

            <!-- Hata ve başarı mesajları için alanlar -->
            <div class="message-container">
              <div id="hataMesaji" class="error-message"></div>
              <div id="basariMesaji" class="success-message"></div>
            </div>

            <button
              type="submit"
              class="btn btn-primary animate-button"
              data-translate="login-form-button"
            >
              Giriş Yap
            </button>
          </form>
PHP:
<?php
// config.php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'fmlauncher_db');

try {
    $conn = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    $conn->exec("SET NAMES utf8mb4"); // Türkçe karakter desteği için
    $conn->exec("SET CHARACTER SET utf8mb4"); // Türkçe karakter desteği için
} catch (PDOException $e) {
    die("Veritabanı bağlantı hatası: " . $e->getMessage());
}
PHP:
<?php
// giris.php
header('Content-Type: application/json');
session_start();
require_once 'config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'Invalid request method']);
    exit;
}

$username_or_email = filter_input(INPUT_POST, 'kullanici_adi_veya_email', FILTER_SANITIZE_STRING);
$password = $_POST['sifre'];

if (empty($username_or_email) || empty($password)) {
    echo json_encode(['success' => false, 'message' => 'Tüm alanları doldurunuz']);
    exit;
}

try {
    $stmt = $conn->prepare("SELECT id, username, password FROM users WHERE username = :username OR email = :email");
    $stmt->execute([
        ':username' => $username_or_email,
        ':email' => $username_or_email
    ]);

    $user = $stmt->fetch();

    if ($user && password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['username'] = $user['username'];
        echo json_encode(['success' => true, 'message' => 'Giriş başarılı']);
    } else {
        echo json_encode(['success' => false, 'message' => 'Kullanıcı adı/email veya şifre hatalı']);
    }
} catch (PDOException $e) {
    echo json_encode(['success' => false, 'message' => 'Bir hata oluştu']);
}
PHP:
<?php
// Hata ayıklama için
error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: application/json');
require_once 'config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'Geçersiz istek metodu']);
    exit;
}

// POST verilerini al ve kontrol et
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';

// Gelen verileri logla (geliştirme aşamasında)
error_log('POST Data: ' . print_r($_POST, true));

// Boş alan kontrolü
if (empty($username) || empty($email) || empty($password)) {
    echo json_encode(['success' => false, 'message' => 'Tüm alanları doldurunuz']);
    exit;
}

// Email formatı kontrolü
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo json_encode(['success' => false, 'message' => 'Geçerli bir email adresi giriniz']);
    exit;
}

// Şifre uzunluğu kontrolü
if (strlen($password) < 6) {
    echo json_encode(['success' => false, 'message' => 'Şifre en az 6 karakter olmalıdır']);
    exit;
}

try {
    // Kullanıcı adı veya email kontrolü
    $stmt = $conn->prepare("SELECT COUNT(*) FROM kullanicilar WHERE kullanici_adi = ? OR email = ?");
    $stmt->execute([$username, $email]);

    if ($stmt->fetchColumn() > 0) {
        echo json_encode(['success' => false, 'message' => 'Bu kullanıcı adı veya email zaten kullanımda']);
        exit;
    }

    // Yeni kullanıcı kaydı
    $hashedPassword = password_hash($password, PASSWORD_DEFAULT);

    $stmt = $conn->prepare("INSERT INTO kullanicilar (kullanici_adi, email, sifre) VALUES (?, ?, ?)");
    $stmt->execute([$username, $email, $hashedPassword]);

    echo json_encode(['success' => true, 'message' => 'Kayıt başarıyla tamamlandı']);

} catch (PDOException $e) {
    error_log("Database Error: " . $e->getMessage());
    echo json_encode(['success' => false, 'message' => 'Veritabanı hatası oluştu: ' . $e->getMessage()]);
}
JavaScript:
//script.js
// Tema Yönetimi
const themeToggle = document.getElementById("theme-toggle");
const body = document.body;
const logoImg = document.querySelector(".logo img");

function updateLogo(theme) {
  logoImg.src = `assets/logo-${theme}.png`;
}

function updateLogoText(isDarkTheme) {
  const logoText = document.querySelector(".logo-text");
  logoText.style.color = isDarkTheme ? "#fff" : "#333";
}

function applyThemePreference() {
  const storedTheme = localStorage.getItem("theme");
  const prefersDarkMode = window.matchMedia(
    "(prefers-color-scheme: dark)"
  ).matches;
  const isDarkTheme =
    storedTheme === "dark" || (!storedTheme && prefersDarkMode);

  if (isDarkTheme) {
    body.classList.add("dark-theme");
    themeToggle.classList.replace("fa-moon", "fa-sun");
    updateLogo("dark");
  } else {
    body.classList.remove("dark-theme");
    themeToggle.classList.replace("fa-sun", "fa-moon");
    updateLogo("light");
  }
  updateLogoText(isDarkTheme);
}

themeToggle.addEventListener("click", () => {
  const isDarkTheme = body.classList.contains("dark-theme");

  if (isDarkTheme) {
    body.classList.remove("dark-theme");
    themeToggle.classList.replace("fa-sun", "fa-moon");
    localStorage.setItem("theme", "light");
    updateLogo("light");
  } else {
    body.classList.add("dark-theme");
    themeToggle.classList.replace("fa-moon", "fa-sun");
    localStorage.setItem("theme", "dark");
    updateLogo("dark");
  }
  updateLogoText(!isDarkTheme);
});

// Form işlemleri yardımcı fonksiyonları
function clearMessages(errorElement, successElement) {
  if (errorElement) {
    errorElement.style.display = "none";
    errorElement.textContent = "";
  }
  if (successElement) {
    successElement.style.display = "none";
    successElement.textContent = "";
  }
}

function showMessage(element, message, isError = false) {
  if (element) {
    element.textContent = message;
    element.style.display = "block";
    if (isError) {
      console.error("Error:", message);
    }
  }
}

// Kayıt Formu İşlemleri
const registerForm = document.getElementById("register-form");
if (registerForm) {
  registerForm.addEventListener("submit", function (event) {
    event.preventDefault();

    const hataMesaji = document.getElementById("hataMesaji");
    const basariMesaji = document.getElementById("basariMesaji");
    clearMessages(hataMesaji, basariMesaji);

    fetch("kayit.php", {
      method: "POST",
      body: new FormData(this),
    })
      .then((response) => response.json())
      .then((data) => {
        if (data.success) {
          showMessage(basariMesaji, data.message);
          setTimeout(() => {
            window.location.href = "giris.html";
          }, 2000);
        } else {
          showMessage(hataMesaji, data.message, true);
        }
      })
      .catch((error) => {
        showMessage(
          hataMesaji,
          "Bir hata oluştu. L.tfen tekrar deneyin.",
          true
        );
      });
  });
}

// Giriş Formu İşlemleri
const loginForm = document.getElementById("login-form");
if (loginForm) {
  loginForm.addEventListener("submit", function (event) {
    event.preventDefault();

    const hataMesaji = document.getElementById("hataMesaji");
    const basariMesaji = document.getElementById("basariMesaji");
    clearMessages(hataMesaji, basariMesaji);

    fetch("giris.php", {
      method: "POST",
      body: new FormData(this),
    })
      .then((response) => response.json())
      .then((data) => {
        if (data.success) {
          showMessage(basariMesaji, data.message);
          setTimeout(() => {
            window.location.href = "index.html";
          }, 1000);
        } else {
          showMessage(hataMesaji, data.message, true);
        }
      })
      .catch((error) => {
        showMessage(
          hataMesaji,
          "Bir hata oluştu. L.tfen tekrar deneyin.",
          true
        );
      });
  });
}

// İletişim Formu İşlemleri
const contactForm = document.getElementById("contact-form");
if (contactForm) {
  contactForm.addEventListener("submit", function (event) {
    event.preventDefault();

    const hataMesaji = document.getElementById("hataMesaji");
    const basariMesaji = document.getElementById("basariMesaji");
    clearMessages(hataMesaji, basariMesaji);

    fetch("iletisim.php", {
      method: "POST",
      body: new FormData(this),
    })
      .then((response) => response.json())
      .then((data) => {
        if (data.success) {
          showMessage(basariMesaji, data.message);
          this.reset();
        } else {
          showMessage(hataMesaji, data.message, true);
        }
      })
      .catch((error) => {
        showMessage(
          hataMesaji,
          "Bir hata oluştu. L.tfen tekrar deneyin.",
          true
        );
      });
  });
}

// Sayfa yüklendiğinde tema tercihini uygula
document.addEventListener("DOMContentLoaded", applyThemePreference);
 
Son düzenleyen: Moderatör:

Yeni konular

Geri
Yukarı