{"id":128,"date":"2025-05-03T18:49:40","date_gmt":"2025-05-03T18:49:40","guid":{"rendered":"https:\/\/www.webmobkey.com\/blog\/?p=128"},"modified":"2026-03-12T19:48:47","modified_gmt":"2026-03-12T19:48:47","slug":"php-ile-guvenli-form-isleme-ve-mysqle-veri-ekleme-ornek-calisma","status":"publish","type":"post","link":"https:\/\/www.webmobdesign.com\/blog\/tr\/php-ile-guvenli-form-isleme-ve-mysqle-veri-ekleme-ornek-calisma\/","title":{"rendered":"PHP \u0130le G\u00fcvenli Form \u0130\u015fleme ve MySQL\u2019e Veri Ekleme: \u00d6rnek \u00c7al\u0131\u015fma"},"content":{"rendered":"\n<p id=\"3090\">Web uygulamalar\u0131nda, kullan\u0131c\u0131lar\u0131n veri giri\u015fi yapabilece\u011fi formlar s\u0131k\u00e7a kullan\u0131l\u0131r. Bu yaz\u0131da, PHP ve MySQL kullanarak bir form olu\u015fturmay\u0131 ve bu formdan gelen verileri g\u00fcvenli bir \u015fekilde veritaban\u0131na eklemeyi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Ayr\u0131ca, Bootstrap ile formun g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc iyile\u015ftirece\u011fiz.<\/p>\n\n\n\n<p id=\"4299\"><strong>HTML Form Olu\u015fturma<\/strong>&nbsp;\u0130lk olarak, Bootstrap kullanarak \u00f6\u011frenci ekleme formunu olu\u015fturuyoruz. Bu form, \u00f6\u011frencinin ad\u0131n\u0131, soyad\u0131n\u0131 ve telefon numaras\u0131n\u0131 girmesini ve veritaban\u0131na kaydetmesini sa\u011flar.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;!doctype html&gt;\n&lt;html lang=&quot;en&quot;&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;\n    &lt;title&gt;\u00d6\u011frenci Ekle&lt;\/title&gt;\n    &lt;link href=&quot;https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/css\/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&gt;\n&lt;\/head&gt;\n&lt;body class=&quot;bg-dark w-75 mx-auto my-4&quot;&gt;\n&lt;div class=&quot;card&quot;&gt;\n    &lt;div class=&quot;card-body&quot;&gt;\n        &lt;h1 class=&quot;text-center mt-1&quot;&gt;\u00d6\u011eRENC\u0130 EKLE&lt;\/h1&gt;\n        &lt;form method=&quot;post&quot; class=&quot;row&quot;&gt;\n            &lt;div class=&quot;col-sm-6&quot;&gt;\n                &lt;input type=&quot;text&quot; required name=&quot;name&quot; placeholder=&quot;\u00d6\u011frenci Ad\u0131&quot; class=&quot;form-control my-2&quot;&gt;\n            &lt;\/div&gt;\n            &lt;div class=&quot;col-sm-6&quot;&gt;\n                &lt;input type=&quot;text&quot; required name=&quot;lastname&quot; placeholder=&quot;\u00d6\u011frenci Soyad\u0131&quot; class=&quot;form-control my-2&quot;&gt;\n            &lt;\/div&gt;\n            &lt;div class=&quot;col-sm-12&quot;&gt;\n                &lt;input type=&quot;text&quot; required name=&quot;phone&quot; placeholder=&quot;\u00d6\u011frenci Telefonu&quot; class=&quot;form-control my-2&quot;&gt;\n            &lt;\/div&gt;\n            &lt;div class=&quot;col-sm-12&quot;&gt;\n            &lt;?php\n            if (\n                $_SERVER&#x5B;&quot;REQUEST_METHOD&quot;] == &quot;POST&quot; &amp;&amp;\n                !empty($_POST&#x5B;&quot;name&quot;]) &amp;&amp;\n                !empty($_POST&#x5B;&quot;lastname&quot;]) &amp;&amp;\n                !empty($_POST&#x5B;&quot;phone&quot;])\n            ) {\n                \/\/ Veritaban\u0131 ba\u011flant\u0131s\u0131 i\u00e7in gerekli bilgiler\n                $servername = &quot;localhost&quot;;\n                $username = &quot;root&quot;;\n                $password = &quot;&quot;; \/\/ Use a strong password\n                $dbname = &quot;exzample&quot;;\n\n                try {\n                    \/\/ Veritaban\u0131na ba\u011flanma i\u015flemleri\n                    $conn = new PDO(&quot;mysql:host=$servername;dbname=$dbname&quot;, $username, $password);\n                    $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n                    \/\/ Formdan gelen verileri al ve do\u011frula\n                    $ad = htmlspecialchars($_POST&#x5B;&quot;name&quot;]);\n                    $soyad = htmlspecialchars($_POST&#x5B;&quot;lastname&quot;]);\n                    $telefon = htmlspecialchars($_POST&#x5B;&quot;phone&quot;]);\n\n                    \/\/ Verileri ekleme sorgusu\n                    $sql =\n                        &quot;INSERT INTO `students` (`name`, `lastname`, `phone`) VALUES (:name, :lastname, :phone)&quot;;\n                    $stmt = $conn-&gt;prepare($sql);\n                    $stmt-&gt;bindParam(&quot;:name&quot;, $ad);\n                    $stmt-&gt;bindParam(&quot;:lastname&quot;, $soyad);\n                    $stmt-&gt;bindParam(&quot;:phone&quot;, $telefon);\n                    $stmt-&gt;execute();\n\n                    echo &quot;&lt;div class='alert alert-success mt-2 mb-0'&gt;Veri ba\u015far\u0131yla eklendi!&lt;\/div&gt;&quot;;\n                } catch (PDOException $e) {\n                    echo &quot;&lt;div class='alert alert-danger mt-2 mb-2'&gt;Veritaban\u0131 ba\u011flant\u0131 hatas\u0131: &quot; . $e-&gt;getMessage() . &quot;&lt;\/div&gt;&quot;;\n                }\n            }\n            ?&gt;\n            &lt;\/div&gt;\n            &lt;div class=&quot;container&quot;&gt;\n                &lt;button class=&quot;btn btn-success w-100 mt-2&quot; type=&quot;submit&quot;&gt;EKLE&lt;\/button&gt;\n            &lt;\/div&gt;\n        &lt;\/form&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;\n&lt;script src=&quot;https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/js\/bootstrap.bundle.min.js&quot;&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/pre><\/div>\n\n\n<p><strong>Veri Ekleme Kodu:<\/strong>&nbsp;A\u015fa\u011f\u0131daki PHP kodu, formdan gelen ad, soyad ve telefon numaras\u0131 gibi bilgileri al\u0131r, bu bilgileri g\u00fcvenli hale getirir ve ard\u0131ndan MySQL veritaban\u0131na ekler. Kod, kullan\u0131c\u0131dan gelen verileri do\u011frulamak ve g\u00fcvenli bir \u015fekilde i\u015flemek i\u00e7in \u00e7e\u015fitli \u00f6nlemler i\u00e7erir.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;?php\nif (\n    $_SERVER&#x5B;&quot;REQUEST_METHOD&quot;] == &quot;POST&quot; &amp;&amp;\n    !empty($_POST&#x5B;&quot;name&quot;]) &amp;&amp;\n    !empty($_POST&#x5B;&quot;lastname&quot;]) &amp;&amp;\n    !empty($_POST&#x5B;&quot;phone&quot;])\n) {\n    \/\/ Veritaban\u0131 ba\u011flant\u0131s\u0131 i\u00e7in gerekli bilgiler\n    $servername = &quot;localhost&quot;;\n    $username = &quot;root&quot;;\n    $password = &quot;&quot;; \/\/ Use a strong password\n    $dbname = &quot;exzample&quot;;\n\n    try {\n        \/\/ Veritaban\u0131na ba\u011flanma i\u015flemleri\n        $conn = new PDO(&quot;mysql:host=$servername;dbname=$dbname&quot;, $username, $password);\n        $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n        \/\/ Formdan gelen verileri al ve do\u011frula\n        $ad = htmlspecialchars($_POST&#x5B;&quot;name&quot;]);\n        $soyad = htmlspecialchars($_POST&#x5B;&quot;lastname&quot;]);\n        $telefon = htmlspecialchars($_POST&#x5B;&quot;phone&quot;]);\n\n        \/\/ Verileri ekleme sorgusu\n        $sql =\n            &quot;INSERT INTO `students` (`name`, `lastname`, `phone`) VALUES (:name, :lastname, :phone)&quot;;\n        $stmt = $conn-&gt;prepare($sql);\n        $stmt-&gt;bindParam(&quot;:name&quot;, $ad);\n        $stmt-&gt;bindParam(&quot;:lastname&quot;, $soyad);\n        $stmt-&gt;bindParam(&quot;:phone&quot;, $telefon);\n        $stmt-&gt;execute();\n\n        echo &quot;&lt;div class='alert alert-success mt-2 mb-0'&gt;Veri ba\u015far\u0131yla eklendi!&lt;\/div&gt;&quot;;\n    } catch (PDOException $e) {\n        echo &quot;&lt;div class='alert alert-danger mt-2 mb-2'&gt;Veritaban\u0131 ba\u011flant\u0131 hatas\u0131: &quot; . $e-&gt;getMessage() . &quot;&lt;\/div&gt;&quot;;\n    }\n}\n?&gt;\n<\/pre><\/div>\n\n\n<p id=\"3245\">Bu kod, a\u015fa\u011f\u0131daki g\u00fcvenlik \u00f6nlemlerini i\u00e7erir:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Form Verilerini Do\u011frulama:<\/strong>&nbsp;POST y\u00f6ntemi kullan\u0131larak form g\u00f6nderildi\u011finde, ad, soyad ve telefon numaras\u0131 alanlar\u0131n\u0131n bo\u015f olup olmad\u0131\u011f\u0131 kontrol edilir.<\/li>\n\n\n\n<li><strong>PDO Kullan\u0131m\u0131:<\/strong>&nbsp;PDO (PHP Data Objects) kullan\u0131larak veritaban\u0131na ba\u011flan\u0131r. Bu, SQL enjeksiyonu sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korunma sa\u011flar.<\/li>\n\n\n\n<li><strong>htmlspecialchars() Kullan\u0131m\u0131:<\/strong>&nbsp;Formdan gelen veriler, HTML \u00f6zel karakterleri i\u00e7in g\u00fcvenli hale getirilir. Bu, XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar.<\/li>\n\n\n\n<li><strong>Ba\u011flant\u0131 ve Sorgu Hatalar\u0131n\u0131n \u0130zlenmesi:<\/strong>&nbsp;Ba\u011flant\u0131 ve sorgu i\u015flemlerinde olu\u015fabilecek hatalar\u0131n izlenmesi ve kullan\u0131c\u0131ya uygun bir hata mesaj\u0131 g\u00f6nderilmesi sa\u011flan\u0131r.<\/li>\n<\/ol>\n\n\n\n<p id=\"512c\">Bu \u015fekilde PHP kodunun g\u00fcvenli bir \u015fekilde form verilerini i\u015fledi\u011fini ve MySQL veritaban\u0131na g\u00fcvenli bir \u015fekilde ekledi\u011fini g\u00f6rebilirsiniz. Bu \u00f6nlemler, uygulaman\u0131z\u0131n g\u00fcvenli\u011fini art\u0131rmaya yard\u0131mc\u0131 olur.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web uygulamalar\u0131nda, kullan\u0131c\u0131lar\u0131n veri giri\u015fi yapabilece\u011fi formlar s\u0131k\u00e7a kullan\u0131l\u0131r. Bu yaz\u0131da, PHP ve MySQL kullanarak bir &hellip; <a title=\"PHP \u0130le G\u00fcvenli Form \u0130\u015fleme ve MySQL\u2019e Veri Ekleme: \u00d6rnek \u00c7al\u0131\u015fma\" class=\"hm-read-more\" href=\"https:\/\/www.webmobdesign.com\/blog\/tr\/php-ile-guvenli-form-isleme-ve-mysqle-veri-ekleme-ornek-calisma\/\"><span class=\"screen-reader-text\">PHP \u0130le G\u00fcvenli Form \u0130\u015fleme ve MySQL\u2019e Veri Ekleme: \u00d6rnek \u00c7al\u0131\u015fma<\/span>Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[],"class_list":["post-128","post","type-post","status-publish","format-standard","hentry","category-web-tr"],"_links":{"self":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/comments?post=128"}],"version-history":[{"count":3,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/128\/revisions"}],"predecessor-version":[{"id":482,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/128\/revisions\/482"}],"wp:attachment":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/media?parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/categories?post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/tags?post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}