Procondio adlı üyeden alıntı

$veri = $db->query("SELECT * FROM uyeWHERE telefon = '$telefon' and sifre = '$sifre' ",PDO::FETCH_ASSOC);

Şu kısımda direkt olarak bir SQL injection zaafiyeti var. String'i concat ediyorsun ve SQL kodu dahil her şey gönderildiği gibi bu stringin içine dahil olacak. Bunun yerine prepared statement kullanman daha iyi olur. Örneğin şu şekilde yazabilirsin: 

$sorgu = $db->prepare("SELECT * FROM uyeWHERE telefon = ? and sifre = ? ",PDO::FETCH_ASSOC);
$veri = $sorgu->execute([$telefon, $sifre]);

 Dediğinizi yazdım sayfa çalışmadı  http 500 hatası verdi.Şu olmadı hata verdi

 

<?php

$telefon = $_POST['telefon'];

$sifre = $_POST['sifre'];


$db = new PDO("mysql:host=tttt;dbname=tttttt","ttttt","tttttttt");
  
$sorgu = $db->prepare("SELECT * FROM uyeler WHERE telefon = ? and sifre = ? ",PDO::FETCH_ASSOC);

$veri = $sorgu->execute([$telefon, $sifre]);


$gen = $veri -> rowcount();

if ($gen > 0) {

	      session_start();

	    $_SESSION['tak']= true;
	    $_SESSION['telefon']= $telefon;
	    $_SESSION['sifre']= $sifre;

	    	setcookie("te",$telefon,time()+3600,'/');
                 
            header("Location: uyesayfa.php?id=$telefon");
	  
}
else {

	echo "<center>Kullanıcı adı veya şifre yanlış</center>";
}

?>