sqlimde user_id yerine direkt olarak id kullanıyorum. Çoğu tabloda yalnızca id ismini kullanıyorum. Oturumda ıd kontrol ediliyor ve bu ıd öbür ıdlerle karışabilirmi?
footer ve hader kodumda id değerini sorgulayan kısımlar içeriyor
akıl oynatan soru
6
●178
- 15-12-2024, 01:03:32SQL tablolarında birincil anahtarlar için sadece id kullanmanız genel bir uygulama olarak kabul edilir ve doğru bir şekilde tasarlandığında diğer tablolarla karışıklık yaratmaz. Ancak, bunun bazı potansiyel riskleri vardır ve dikkat edilmesi gereken noktalar şunlardır:
Potansiyel Karışıklık Durumları
- Aynı ID'lerin Farklı Tablolarda Kullanılması:
- Eğer oturumda yalnızca bir id değişkeni kontrol ediyorsanız, hangi tabloya ait olduğunu belirlemek zorlaşabilir. Örneğin:
- users tablosundaki bir id değeri ile
- orders veya products gibi diğer tablolardaki bir id değeri aynı oturum değişkeninde karışabilir.
- Eğer oturumda yalnızca bir id değişkeni kontrol ediyorsanız, hangi tabloya ait olduğunu belirlemek zorlaşabilir. Örneğin:
- Yanlış veya Eksik Veritabanı İlişkileri:
- Tablo ilişkileriniz (foreign key, primary key) doğru tanımlanmadıysa veya yanlış bir şekilde sorgulanıyorsa, id sütunlarının karışıklık yaratması olasıdır.
- Footer ve Header Kodunda Kullanılan id Kontrolleri:
- Eğer birden fazla tabloda aynı isimde bir id değişkenine dayanıyorsanız ve bu değişken farklı tablolar için farklı anlamlara geliyorsa (örneğin, user_id ve product_id gibi), bu durum veri bütünlüğünü bozabilir.
- Aynı ID'lerin Farklı Tablolarda Kullanılması:
- 15-12-2024, 01:07:04Düne kadar yazılımımdaki giriş sayfası sorunsuz çalışıyordu. 3lü alt kategori sistemi v.s ekledim. Yazılımın kısa bir videosunu çekeyim dedim giriş yapmıyor ama şifre yanlış olduğunda uyarı vs atıyor kayıtda oluyor sorunu anlamadım gittikuyuto adlı üyeden alıntı: mesajı görüntüle
Chatgptden destek alayım dedim beceremedi
<?php session_start(); // PHP oturumunu başlatıyoruz include 'connect/db.php'; // Veritabanı bağlantısı // Hata ayıklama (geliştirme sırasında kullanın, ancak canlıda devre dışı bırakın) ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); // Giriş işlemi yapılmışsa if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Formdan gelen verileri al $username_or_email = $_POST['login']; $password = $_POST['password']; // MD5 ile şifreyi hash'le $hashed_password = md5($password); // MD5 hash kullanılıyor // Kullanıcı adı veya e-posta ile veritabanında sorgu yap $stmt = $pdo->prepare("SELECT id, username, password FROM users WHERE username = ? OR email = ?"); $stmt->execute([$username_or_email, $username_or_email]); // Kullanıcıyı bul ve şifreyi doğrula if ($stmt->rowCount() > 0) { $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($hashed_password === $user['password']) { // Giriş başarılı $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; // "Beni hatırla" seçeneği kontrolü if (isset($_POST['remember'])) { setcookie('user_id', $user['id'], time() + 86400 * 30, "/"); // 30 gün süreyle hatırlama setcookie('username', $user['username'], time() + 86400 * 30, "/"); } // Giriş başarılı mesajını oturuma kaydet $_SESSION['login_success'] = "Giriş başarılı!"; // Yönlendirme için başarılı olduğunu belirten bir flag gönder echo "<script>window.location.href = '?giris_basarili=true';</script>"; exit(); } } else { $_SESSION['login_error'] = "Kullanıcı adı veya e-posta bulunamadı."; } } ?> - 15-12-2024, 01:18:33Evet bu kodu gptye yazdırdım hata çıkınca, md5 ile şifreleniyor evetkuyuto adlı üyeden alıntı: mesajı görüntüle
- 15-12-2024, 05:54:28Üyeliği durduruldusession kullan cookie yerine
chatgpt geniş bir ansiklopediye sahip asistandır, yazılımcı eleman değil verdiği şeyler genelde şablonlar ve açıklar içeriyor. arkadaşın paylaştığı kodda o şekilde.
id ler karışmaz okuttuğun değişkenler farklı oldukça problem yok
chatgpt geniş bir ansiklopediye sahip asistandır, yazılımcı eleman değil verdiği şeyler genelde şablonlar ve açıklar içeriyor. arkadaşın paylaştığı kodda o şekilde.