{"id":10183,"date":"2026-10-30T10:39:07","date_gmt":"2026-10-30T07:39:07","guid":{"rendered":"https:\/\/www.yunuskaytan.com\/?p=10183"},"modified":"2026-10-30T10:39:07","modified_gmt":"2026-10-30T07:39:07","slug":"php-ile-basit-giris-sistemi-yapimi","status":"publish","type":"post","link":"https:\/\/www.yunuskaytan.com\/en\/yk\/php-ile-basit-giris-sistemi-yapimi\/","title":{"rendered":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Web uygulamalar\u0131 geli\u015ftirirken en s\u0131k ihtiya\u00e7 duyulan bile\u015fenlerin ba\u015f\u0131nda kimlik do\u011frulama mekanizmalar\u0131 gelir. Bir kullan\u0131c\u0131n\u0131n kimli\u011fini do\u011frulamak, oturumunu ba\u015flatmak ve yetkisiz eri\u015fimleri engellemek, uygulaman\u0131n genel g\u00fcvenli\u011fi a\u00e7\u0131s\u0131ndan kritik bir ad\u0131md\u0131r. Bu rehberde, modern PHP standartlar\u0131na uygun, g\u00fcvenli ve anla\u015f\u0131l\u0131r bir php giri\u015f sistemi mimarisini s\u0131f\u0131rdan kuraca\u011f\u0131z.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Giri\u015f Sisteminin \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bir kullan\u0131c\u0131 giri\u015f sistemi temelde istemci ile sunucu aras\u0131ndaki veri al\u0131\u015fveri\u015fine ve bu verilerin veritaban\u0131ndaki kay\u0131tlarla kar\u015f\u0131la\u015ft\u0131r\u0131lmas\u0131na dayan\u0131r. S\u00fcre\u00e7 \u015fu temel ad\u0131mlardan olu\u015fur:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kullan\u0131c\u0131 taray\u0131c\u0131 \u00fczerinden kullan\u0131c\u0131 ad\u0131 ve parolas\u0131n\u0131 bir HTML formu arac\u0131l\u0131\u011f\u0131yla g\u00f6nderir.<\/li>\n\n<li>Sunucu taraf\u0131ndaki PHP beti\u011fi gelen verileri filtreler ve do\u011frular.<\/li>\n\n<li>Veritaban\u0131nda belirtilen kullan\u0131c\u0131 ad\u0131na sahip bir kay\u0131t olup olmad\u0131\u011f\u0131 kontrol edilir.<\/li>\n\n<li>Kullan\u0131c\u0131n\u0131n girdi\u011fi parola, veritaban\u0131nda saklanan karma (hash) de\u011feri ile kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r.<\/li>\n\n<li>Bilgiler do\u011fruysa PHP oturumu (session) ba\u015flat\u0131l\u0131r ve kullan\u0131c\u0131 yetkilendirilmi\u015f alana y\u00f6nlendirilir. Bilgiler hatal\u0131ysa kullan\u0131c\u0131ya hata mesaj\u0131 g\u00f6sterilir.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bu s\u00fcrecin her a\u015famas\u0131nda g\u00fcvenlik \u00f6nlemleri devrede olmal\u0131d\u0131r. Parolalar\u0131n a\u00e7\u0131k metin olarak saklanmamas\u0131 ve SQL enjeksiyonu a\u00e7\u0131klar\u0131n\u0131n engellenmesi en \u00f6ncelikli konulard\u0131r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Veritaban\u0131 Yap\u0131s\u0131n\u0131n Haz\u0131rlanmas\u0131<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Giri\u015f sistemini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131c\u0131 bilgilerini tutaca\u011f\u0131m\u0131z bir MySQL tablosuna ihtiyac\u0131m\u0131z vard\u0131r. Bu tabloda kullan\u0131c\u0131n\u0131n benzersiz kimli\u011fi, kullan\u0131c\u0131 ad\u0131, g\u00fcvenli \u015fekilde karma hale getirilmi\u015f parolas\u0131 ve kay\u0131t tarihi gibi alanlar yer al\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE users (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    username VARCHAR(50) NOT NULL UNIQUE,\n    password VARCHAR(255) NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu yap\u0131da parola alan\u0131 <code>VARCHAR(255)<\/code> olarak tan\u0131mlanm\u0131\u015ft\u0131r. PHP&#8217;nin sundu\u011fu modern hash fonksiyonlar\u0131 uzun \u00e7\u0131kt\u0131lar \u00fcretti\u011fi i\u00e7in bu alan\u0131n yeterince geni\u015f olmas\u0131 zorunludur. K\u0131sa bir alan se\u00e7ilirse hash de\u011feri kesilebilir ve kullan\u0131c\u0131 bir daha giri\u015f yapamaz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Test ama\u00e7l\u0131 olarak bu tabloya komut sat\u0131r\u0131ndan veya veritaban\u0131 y\u00f6netim arac\u0131n\u0131zdan parola karmas\u0131yla birlikte bir kullan\u0131c\u0131 ekleyebilirsiniz. PHP&#8217;nin <code>password_hash()<\/code> fonksiyonuyla \u00fcretilmi\u015f bir \u00f6rne\u011fi do\u011frudan eklemek en do\u011frusudur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">G\u00fcvenli Veritaban\u0131 Ba\u011flant\u0131s\u0131 (PDO)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Veritaban\u0131 ileti\u015fimi i\u00e7in eskiyen fonksiyonlar yerine PHP Veri Nesneleri (PDO) kullan\u0131lmal\u0131d\u0131r. PDO, haz\u0131rl\u0131kl\u0131 ifadeler (prepared statements) deste\u011fi sunarak SQL enjeksiyonu sald\u0131r\u0131lar\u0131n\u0131 ba\u015ftan engeller.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proje dizininizde <code>db.php<\/code> ad\u0131nda bir dosya olu\u015fturun ve i\u00e7ine \u015fu ba\u011flant\u0131 kodlar\u0131n\u0131 ekleyin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$host = 'localhost';\n$dbname = 'test_db';\n$username = 'root';\n$password = '';\n\ntry {\n    $pdo = new PDO(\"mysql:host=$host;dbname=$dbname;charset=utf8mb4\", $username, $password, [\n        PDO::ATTR_ERRMODE =&gt; PDO::ERRMODE_EXCEPTION,\n        PDO::ATTR_DEFAULT_FETCH_MODE =&gt; PDO::FETCH_ASSOC,\n        PDO::ATTR_EMULATE_PREPARES =&gt; false,\n    ]);\n} catch (PDOException $e) {\n    die(\"Veritaban\u0131 ba\u011flant\u0131 hatas\u0131: \" . $e-&gt;getMessage());\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu dosyada <code>PDO::ATTR_ERRMODE<\/code> ayar\u0131n\u0131 <code>ERRMODE_EXCEPTION<\/code> yaparak olas\u0131 SQL hatalar\u0131n\u0131n yakalanabilmesini sa\u011flad\u0131k. <code>ATTR_EMULATE_PREPARES<\/code> de\u011ferini <code>false<\/code> yapmak ise sorgular\u0131n do\u011frudan MySQL sunucusu taraf\u0131ndan yerel olarak derlenmesini sa\u011flayarak g\u00fcvenli\u011fi art\u0131r\u0131r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Giri\u015f Formu ve Kimlik Do\u011frulama Mant\u0131\u011f\u0131<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kullan\u0131c\u0131lar\u0131n bilgilerini girece\u011fi aray\u00fcz ile bu bilgileri i\u015fleyecek PHP kodunu tek bir dosyada veya ayr\u0131lm\u0131\u015f yap\u0131larda tutabiliriz. \u0130\u015fleyi\u015fi net g\u00f6rebilmek ad\u0131na <code>login.php<\/code> ad\u0131nda bir dosya olu\u015ftural\u0131m.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nsession_start();\nrequire_once 'db.php';\n\nif (isset($_SESSION['user_id'])) {\n    header(\"Location: dashboard.php\");\n    exit;\n}\n\n$error = '';\n\nif ($_SERVER['REQUEST_METHOD'] === 'POST') {\n    $user = trim($_POST['username'] ?? '');\n    $pass = trim($_POST['password'] ?? '');\n\n    if (empty($user) || empty($pass)) {\n        $error = 'L\u00fctfen t\u00fcm alanlar\u0131 doldurun.';\n    } else {\n        $stmt = $pdo-&gt;prepare(\"SELECT id, username, password FROM users WHERE username = :username LIMIT 1\");\n        $stmt-&gt;execute(['username' =&gt; $user]);\n        $userData = $stmt-&gt;fetch();\n\n        if ($userData &amp;&amp; password_verify($pass, $userData['password'])) {\n            session_regenerate_id(true);\n            $_SESSION['user_id'] = $userData['id'];\n            $_SESSION['username'] = $userData['username'];\n            header(\"Location: dashboard.php\");\n            exit;\n        } else {\n            $error = 'Ge\u00e7ersiz kullan\u0131c\u0131 ad\u0131 veya parola.';\n        }\n    }\n}\n?&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"tr\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;Giri\u015f Yap&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h2&gt;Kullan\u0131c\u0131 Giri\u015fi&lt;\/h2&gt;\n    &lt;?php if (!empty($error)): ?&gt;\n        &lt;p style=\"color: red;\"&gt;&lt;?php echo htmlspecialchars($error); ?&gt;&lt;\/p&gt;\n    &lt;?php endif; ?&gt;\n    &lt;form action=\"login.php\" method=\"POST\"&gt;\n        &lt;div&gt;\n            &lt;label for=\"username\"&gt;Kullan\u0131c\u0131 Ad\u0131:&lt;\/label&gt;&lt;br&gt;\n            &lt;input type=\"text\" id=\"username\" name=\"username\" required&gt;\n        &lt;\/div&gt;\n        &lt;br&gt;\n        &lt;div&gt;\n            &lt;label for=\"password\"&gt;Parola:&lt;\/label&gt;&lt;br&gt;\n            &lt;input type=\"password\" id=\"password\" name=\"password\" required&gt;\n        &lt;\/div&gt;\n        &lt;br&gt;\n        &lt;button type=\"submit\"&gt;Giri\u015f Yap&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yukar\u0131daki kod blo\u011funda dikkat edilmesi gereken \u00f6nemli noktalar bulunmaktad\u0131r:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>session_start()<\/code> fonksiyonu, oturum mekanizmas\u0131n\u0131 ba\u015flatmak i\u00e7in dosyan\u0131n en ba\u015f\u0131nda \u00e7a\u011fr\u0131lm\u0131\u015ft\u0131r.<\/li>\n\n<li>Formdan gelen veriler do\u011frudan sorguya eklenmemi\u015f, <code>:username<\/code> parametresi ile haz\u0131rlanm\u0131\u015f ifadeye ba\u011flanm\u0131\u015ft\u0131r. Bu yakla\u015f\u0131m SQL injection sald\u0131r\u0131lar\u0131n\u0131 tamamen engeller.<\/li>\n\n<li>Parola kontrol\u00fc i\u00e7in <code>password_verify()<\/code> fonksiyonu kullan\u0131lm\u0131\u015ft\u0131r. Bu fonksiyon girilen a\u00e7\u0131k parolay\u0131, veritaban\u0131ndaki karma ile matematiksel olarak do\u011frular.<\/li>\n\n<li>Do\u011frulama ba\u015far\u0131l\u0131 oldu\u011funda <code>session_regenerate_id(true)<\/code> \u00e7a\u011fr\u0131larak oturum sabitleme (session fixation) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 oturum kimli\u011fi yenilenmi\u015ftir.<\/li>\n\n<li>Kullan\u0131c\u0131ya g\u00f6sterilen hata mesaj\u0131 genel tutulmu\u015ftur. Kullan\u0131c\u0131 ad\u0131 m\u0131 yoksa parola m\u0131 hatal\u0131 belirtilmemi\u015ftir; bu durum kullan\u0131c\u0131 ad\u0131 toplama (enumeration) sald\u0131r\u0131lar\u0131n\u0131 zorla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Korumal\u0131 Sayfa: Dashboard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Giri\u015f yapan kullan\u0131c\u0131n\u0131n g\u00f6rebilece\u011fi, giri\u015f yapmam\u0131\u015f ki\u015filere kapal\u0131 olan sayfay\u0131 <code>dashboard.php<\/code> ad\u0131yla olu\u015ftural\u0131m.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nsession_start();\n\nif (!isset($_SESSION['user_id'])) {\n    header(\"Location: login.php\");\n    exit;\n}\n?&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"tr\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;Y\u00f6netim Paneli&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h2&gt;Ho\u015f Geldin, &lt;?php echo htmlspecialchars($_SESSION['username']); ?&gt;!&lt;\/h2&gt;\n    &lt;p&gt;Bu alan yaln\u0131zca oturum a\u00e7m\u0131\u015f kullan\u0131c\u0131lara a\u00e7\u0131kt\u0131r.&lt;\/p&gt;\n    &lt;p&gt;&lt;a href=\"logout.php\"&gt;\u00c7\u0131k\u0131\u015f Yap&lt;\/a&gt;&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu sayfada <code>$_SESSION['user_id']<\/code> anahtar\u0131n\u0131n varl\u0131\u011f\u0131 kontrol edilir. E\u011fer oturum anahtar\u0131 tan\u0131ml\u0131 de\u011filse istemci <code>header()<\/code> fonksiyonu ile an\u0131nda <code>login.php<\/code> sayfas\u0131na y\u00f6nlendirilir ve ard\u0131ndan gelen <code>exit<\/code> \u00e7a\u011fr\u0131s\u0131 sayesinde sayfan\u0131n geri kalan kodlar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 engellenir. Kullan\u0131c\u0131 ad\u0131n\u0131 ekrana basarken <code>htmlspecialchars()<\/code> kullanarak XSS (siteler aras\u0131 betik \u00e7al\u0131\u015ft\u0131rma) a\u00e7\u0131klar\u0131n\u0131n \u00f6n\u00fcne ge\u00e7ilmi\u015f olur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">G\u00fcvenli \u00c7\u0131k\u0131\u015f \u0130\u015flemi (Logout)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kullan\u0131c\u0131n\u0131n i\u015fi bitti\u011finde oturumunun sonland\u0131r\u0131lmas\u0131 g\u00fcvenlik a\u00e7\u0131s\u0131ndan gereklidir. <code>logout.php<\/code> dosyas\u0131 oturumu tamamen temizlemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nsession_start();\n\n$_SESSION = [];\n\nif (ini_get(\"session.use_cookies\")) {\n    $params = session_get_cookie_params();\n    setcookie(\n        session_name(),\n        '',\n        time() - 42000,\n        $params[\"path\"],\n        $params[\"domain\"],\n        $params[\"secure\"],\n        $params[\"httponly\"]\n    );\n}\n\nsession_destroy();\n\nheader(\"Location: login.php\");\nexit;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu dosyada yaln\u0131zca <code>session_destroy()<\/code> \u00e7a\u011f\u0131rmak yeterli olmayabilir. \u0130stemci taraf\u0131nda kalan oturum \u00e7erezini ge\u00e7ersiz k\u0131lmak i\u00e7in taray\u0131c\u0131 \u00e7erezi s\u0131f\u0131rlan\u0131r ve <code>$_SESSION<\/code> dizisi bo\u015f bir diziye e\u015fitlenir. B\u00f6ylece oturum verisi hem sunucudan hem de istemciden tamamen silinir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sistemin G\u00fcvenli\u011fini Art\u0131rma Y\u00f6ntemleri<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Haz\u0131rlad\u0131\u011f\u0131m\u0131z php giri\u015f sistemi temel g\u00fcvenlik gereksinimlerini kar\u015f\u0131lasa da canl\u0131 ortamlarda ek katmanlar eklenmelidir:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Formlara CSRF (Cross-Site Request Forgery) jetonlar\u0131 ekleyerek oturumun \u00fc\u00e7\u00fcnc\u00fc taraf sitelerden istismar edilmesi \u00f6nlenmelidir.<\/li>\n\n<li>Hatal\u0131 giri\u015f denemelerine h\u0131z s\u0131n\u0131rlamas\u0131 (rate limiting) uygulanarak kaba kuvvet (brute-force) sald\u0131r\u0131lar\u0131 engellenmelidir.<\/li>\n\n<li>Oturum \u00e7erezleri yap\u0131land\u0131r\u0131l\u0131rken <code>HttpOnly<\/code> ve <code>SameSite<\/code> \u00f6zellikleri aktif edilmeli, uygulaman\u0131n HTTPS \u00fczerinden \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olunmal\u0131d\u0131r.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00d6zet ve Sonraki Ad\u0131mlar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bu yaz\u0131da, PHP ve PDO kullanarak SQL enjeksiyonlar\u0131na kar\u015f\u0131 korumal\u0131, parolalar\u0131 modern algoritmalarla do\u011frulayan ve oturum g\u00fcvenli\u011fini sa\u011flayan temel bir giri\u015f mekanizmas\u0131 in\u015fa ettik. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bir sonraki ad\u0131m olarak sisteme yeni kullan\u0131c\u0131lar\u0131n dahil olmas\u0131n\u0131 sa\u011flayacak bir kay\u0131t olma (register) sayfas\u0131 ekleyebilir, parola s\u0131f\u0131rlama mekanizmas\u0131 ve iki a\u015famal\u0131 do\u011frulama (2FA) katmanlar\u0131 kurarak yap\u0131y\u0131 daha ileri seviyeye ta\u015f\u0131yabilirsiniz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web uygulamalar\u0131n\u0131n temel yap\u0131 ta\u015flar\u0131ndan biri olan kullan\u0131c\u0131 giri\u015f sistemini PHP, MySQL ve g\u00fcvenli oturum y\u00f6netimi ile ad\u0131m ad\u0131m in\u015fa ediyoruz.<\/p>","protected":false},"author":1,"featured_media":10184,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[301],"tags":[336,339,213,257,302],"class_list":["post-10183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-guvenlik","tag-pdo","tag-php","tag-veritabani","tag-web-gelistirme"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131 - Yunus KAYTAN<\/title>\n<meta name=\"description\" content=\"PHP ve PDO kullanarak g\u00fcvenli, modern ve \u00e7al\u0131\u015fan bir kullan\u0131c\u0131 giri\u015f sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 s\u0131f\u0131rdan ad\u0131m ad\u0131m \u00f6\u011frenin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yunuskaytan.com\/en\/yk\/php-ile-basit-giris-sistemi-yapimi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131 - Yunus KAYTAN\" \/>\n<meta property=\"og:description\" content=\"PHP ve PDO kullanarak g\u00fcvenli, modern ve \u00e7al\u0131\u015fan bir kullan\u0131c\u0131 giri\u015f sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 s\u0131f\u0131rdan ad\u0131m ad\u0131m \u00f6\u011frenin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yunuskaytan.com\/en\/yk\/php-ile-basit-giris-sistemi-yapimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Yunus KAYTAN\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-30T07:39:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"yunuskaytan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"yunuskaytan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/\"},\"author\":{\"name\":\"yunuskaytan\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/person\\\/be66986fb499da83a5685de34f68d15a\"},\"headline\":\"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131\",\"datePublished\":\"2026-10-30T07:39:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/\"},\"wordCount\":1002,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg\",\"keywords\":[\"guvenlik\",\"pdo\",\"php\",\"veritaban\u0131\",\"web gelistirme\"],\"articleSection\":[\"PHP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/\",\"name\":\"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131 - Yunus KAYTAN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg\",\"datePublished\":\"2026-10-30T07:39:07+00:00\",\"description\":\"PHP ve PDO kullanarak g\u00fcvenli, modern ve \u00e7al\u0131\u015fan bir kullan\u0131c\u0131 giri\u015f sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 s\u0131f\u0131rdan ad\u0131m ad\u0131m \u00f6\u011frenin.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg\",\"contentUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg\",\"width\":1200,\"height\":630,\"caption\":\"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-ile-basit-giris-sistemi-yapimi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\\\/\\\/www.yunuskaytan.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#website\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/\",\"name\":\"Yunus KAYTAN\",\"description\":\"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.yunuskaytan.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#organization\",\"name\":\"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/cropped-BILISIM-VE-SIBER-GUVENLIK.png\",\"contentUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/cropped-BILISIM-VE-SIBER-GUVENLIK.png\",\"width\":400,\"height\":109,\"caption\":\"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/person\\\/be66986fb499da83a5685de34f68d15a\",\"name\":\"yunuskaytan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g\",\"caption\":\"yunuskaytan\"},\"sameAs\":[\"http:\\\/\\\/www.yunuskaytan.com\"],\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/en\\\/yk\\\/author\\\/yunuskaytan\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131 - Yunus KAYTAN","description":"PHP ve PDO kullanarak g\u00fcvenli, modern ve \u00e7al\u0131\u015fan bir kullan\u0131c\u0131 giri\u015f sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 s\u0131f\u0131rdan ad\u0131m ad\u0131m \u00f6\u011frenin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yunuskaytan.com\/en\/yk\/php-ile-basit-giris-sistemi-yapimi\/","og_locale":"en_US","og_type":"article","og_title":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131 - Yunus KAYTAN","og_description":"PHP ve PDO kullanarak g\u00fcvenli, modern ve \u00e7al\u0131\u015fan bir kullan\u0131c\u0131 giri\u015f sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 s\u0131f\u0131rdan ad\u0131m ad\u0131m \u00f6\u011frenin.","og_url":"https:\/\/www.yunuskaytan.com\/en\/yk\/php-ile-basit-giris-sistemi-yapimi\/","og_site_name":"Yunus KAYTAN","article_published_time":"2026-10-30T07:39:07+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg","type":"image\/jpeg"}],"author":"yunuskaytan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"yunuskaytan","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#article","isPartOf":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/"},"author":{"name":"yunuskaytan","@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/person\/be66986fb499da83a5685de34f68d15a"},"headline":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131","datePublished":"2026-10-30T07:39:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/"},"wordCount":1002,"commentCount":0,"publisher":{"@id":"https:\/\/www.yunuskaytan.com\/#organization"},"image":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg","keywords":["guvenlik","pdo","php","veritaban\u0131","web gelistirme"],"articleSection":["PHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/","url":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/","name":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131 - Yunus KAYTAN","isPartOf":{"@id":"https:\/\/www.yunuskaytan.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#primaryimage"},"image":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg","datePublished":"2026-10-30T07:39:07+00:00","description":"PHP ve PDO kullanarak g\u00fcvenli, modern ve \u00e7al\u0131\u015fan bir kullan\u0131c\u0131 giri\u015f sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 s\u0131f\u0131rdan ad\u0131m ad\u0131m \u00f6\u011frenin.","breadcrumb":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#primaryimage","url":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg","contentUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-ile-basit-giris-sistemi-yapimi-kapak.jpg","width":1200,"height":630,"caption":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131"},{"@type":"BreadcrumbList","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-ile-basit-giris-sistemi-yapimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/www.yunuskaytan.com\/"},{"@type":"ListItem","position":2,"name":"PHP ile Basit Giri\u015f Sistemi Yap\u0131m\u0131"}]},{"@type":"WebSite","@id":"https:\/\/www.yunuskaytan.com\/#website","url":"https:\/\/www.yunuskaytan.com\/","name":"Yunus KAYTAN","description":"Information Technology, Cybersecurity, Cybercrimes and Social Engineering","publisher":{"@id":"https:\/\/www.yunuskaytan.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yunuskaytan.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.yunuskaytan.com\/#organization","name":"Information Technology, Cybersecurity, Cybercrimes and Social Engineering","url":"https:\/\/www.yunuskaytan.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/2021\/07\/cropped-BILISIM-VE-SIBER-GUVENLIK.png","contentUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/2021\/07\/cropped-BILISIM-VE-SIBER-GUVENLIK.png","width":400,"height":109,"caption":"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik"},"image":{"@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/person\/be66986fb499da83a5685de34f68d15a","name":"yunuskaytan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g","caption":"yunuskaytan"},"sameAs":["http:\/\/www.yunuskaytan.com"],"url":"https:\/\/www.yunuskaytan.com\/en\/yk\/author\/yunuskaytan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts\/10183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/comments?post=10183"}],"version-history":[{"count":1,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts\/10183\/revisions"}],"predecessor-version":[{"id":10188,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts\/10183\/revisions\/10188"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/media\/10184"}],"wp:attachment":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/media?parent=10183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/categories?post=10183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/tags?post=10183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}