PHP ile SQL bağlantısı hata veriyor

paricfy

Hectopat
Katılım
21 Mayıs 2022
Mesajlar
1.134
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba önce size nasıl bir şey düşündüğümü özetleyeyim daha hakim olabilmeniz için. Tasarladığım sitede ilan yükleme sistemi olacak. Yani siteye yeni bir ürün eklemek için kaynak kodunda değişiklik yapılmayacak. Satıcı giriş yapıp kendi panelinden ilan yükleyecek ve o ilan SQL tablosuna eklenip ürünler sayfasında gözükecek. Ama ben daha buraya gelemeden hata alıyorum. Şöyle ki sitede giriş yaparken kullanıcı bilgileri SQL'den çekiliyor. Yani sitenin girilen kullanıcı bilgileri SQL de users tablomda varsa dierkt giriş yapılmış olması lazım ama bu kısımda otomatik kaynak kodunu gösteren bir sayfaya atıyor. Sitenin temeli HTML5 ve CSS fakat SQL bağlantılarını PHP ile yapıyorum. Gerekli kodları aşağıya ekleyeceğim.
"saticigiris.html"

HTML:
<!DOCTYPE html>
<html lang="tr">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Satıcı Girişi</title>
 <link rel="stylesheet" href="firmaadi.css">
 <link rel="stylesheet" href="saticigiris.css">
</head>
<body>
 <header>
 <h1>Satıcı Girişi</h1>
 </header>

 <main>
 <form action="saticigiris.php" method="post">
 <div class="form-group">
 <label for="username">Kullanıcı Adı:</label>
 <input type="text" id="username" name="username" required>
 </div>
 <div class="form-group">
 <label for="password">Şifre:</label>
 <input type="password" id="password" name="password" required>
 </div>
 <div class="form-group">
 <button type="submit">Giriş Yap</button>
 </div>
 </form>
 </main>

 <footer>
 <p>© 2024 Firma Adi. Tüm Hakları Saklıdır.</p>
 </footer>
</body>
</html>

"saticigiris.php"

PHP:
<?php
include 'db_connect.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
 echo "POST isteği alındı.<br>";

 $username = $_POST['username'];
 $password = $_POST['password'];

 echo "Kullanıcı adı: " . htmlspecialchars($username) . "<br>";
 echo "Şifre: " . htmlspecialchars($password) . "<br>";

 $sql = "SELECT password FROM users WHERE username = ?";
 $stmt = $conn->prepare($sql);
 $stmt->bind_param('s', $username);
 $stmt->execute();
 $stmt->bind_result($hashedPassword);
 $stmt->fetch();

 echo "Veritabanından gelen şifre: " . htmlspecialchars($hashedPassword) . "<br>";

 if (password_verify($password, $hashedPassword)) {
 header("Location: yoneticipanel.html");
 exit();
 } else {
 echo "Giriş başarısız!";
 }

 $stmt->close();
 $conn->close();
} else {
 echo "Yalnızca POST yöntemi ile erişilebilir.";
}
?>

"config.php"

PHP:
<?php
$servername = "Sql ismi burada yer alıyor";
$username = "";
$password = "";
$dbname = "db ismi burada";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
 die("Bağlantı hatası: " . $conn->connect_error);
} else {
 echo "Veritabanına başarıyla bağlandı.";
}
?>

"db_connection.php"

PHP:
<?php
$servername = "SQL adim burada yer alıyor";
$username = "";
$password = "";
$dbname = "db ismi burada";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
 die("Bağlantı hatası: " . $conn->connect_error);
}
?>

Yönlendirmelerde de görebileceğiniz üzere şifre eğer doğruysa yoneticipanel.html e atması gerekiyor fakat şifre doğru olunca saticigiris.php ye atıyor ve attığı yerde sadece ekranda saticigiris.phpnin kodu yazıyor. Yukarıda sadece hata ile bağlantısı olabilecek yerleri attım diğer yerlerin çok bir bağlantısı yok burayla. Normalde konu açmıyorum böyle şeyler için ama 1 kaç gündür çözemediğim bir hata ve başka bir bakış açısı ile bakılırsa belki çözülebilir umuduyla atıyorum.
 
Geminiye atın bu kodları çok ayrıntılı bir şekilde açıklıyor bende takıldığım yerde yapay zekadan yardım alıyorum, kodları biraz inceledim fakat bir olağanüstü durum gözükmüyor yerelde çalışıyorsanız birde host üzerinde deneyin.
 
Yöneticipanel.html'in içeriğini de at.
Hocam sorun orada değil. Site oraya yönlendirmiyor sorun orda. saticigiris.php ye yönlendiriyor.

Geminiye atın bu kodları çok ayrıntılı bir şekilde açıklıyor bende takıldığım yerde yapay zekadan yardım alıyorum, kodları biraz inceledim fakat bir olağanüstü durum gözükmüyor yerelde çalışıyorsanız birde host üzerinde deneyin.
Yapay zeka çözse buraya atmazdım ki hocam.

post action sonucunda location header ve 302 kodu geliyor mu? Browser dev tools da response u inceleyebilirsin.
Hocam web tarafında cok aktif degilim ve sql ile ilk defa web baglantısı yapıyorum ondan cok anlamadım kusura bakmayın
 
Hocam herşeyi anlıyorum, yardımcı olmaya çalışıyorum sadece bu video'yu ekleyeyim belki yardımcı olur size Kolay gelsin iyi geceler.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 

Technopat Haberler

Geri
Yukarı