GET, POST Yöntemlerini Kullanan PHP Kayıt Formu Örnekle

⚡ Akıllı Özet

PHP'de Form İşleme, HTML formlarından kullanıcı girdisini yakalar ve $_POST ve $_GET süper küresel değişkenleri aracılığıyla sunucuda işler. Bu kılavuz, bir kayıt formu oluşturur, POST ve GET yöntemlerini açıklar, karşılaştırır ve alanların, onay kutularının ve arama girdilerinin nasıl işleneceğini gösterir.

  • 📝 Formların İşlevleri: HTML formu, metin kutuları, onay kutuları ve düğmeler gibi alanlar aracılığıyla kullanıcıdan girdi toplar ve ardından bunu bir sunucu komut dosyasına gönderir.
  • 📬 POST Yöntemi: $_POST, HTTP gövdesinde değerler gönderir, keeping onları dışarı URLBu, oturum açma işlemleri ve hassas veriler için uygundur.
  • 🔗 GET Yöntemi: $_GET, değerleri ekler. URLBu sayede sonuçlar yer imlerine eklenebilir, bu da arama formları için idealdir.
  • 🇧🇷 POST ve GET karşılaştırması: POST yönteminin pratik bir uzunluk sınırı yoktur ve birçok veri türünü destekler; GET yöntemi daha kısadır, yalnızca metin dizelerini içerir ve görünürdür.
  • Giriş İşlemi: `isset()` fonksiyonu, komut dosyasının değerini okuyup kullanmadan önce bir alanın gönderilip gönderilmediğini kontrol eder.
  • ☑️ Onay kutuları: Onay kutusu yalnızca işaretlendiğinde değer gönderir, bu nedenle isset() işlevi kullanıcının kabul edip etmediğini veya seçeneği seçip seçmediğini doğrular.
  • 🤖 Yapay Zeka Yardımı: Yapay zeka araçları, doğrulanmış ve güvenli bir form oluşturabilir ve bir formun neden doğru şekilde gönderilmediğini teşhis etmeye yardımcı olabilir.

PHP Form İşleme

Biçim Nedir?

Bir web sitesine veya e-posta kutunuza giriş yaptığınızda, bir formla etkileşim kuruyorsunuz.

Formlar kullanıcıdan girdi almak ve bunu işlenmek üzere web sunucusuna göndermek için kullanılır.

Aşağıdaki şemada form işleme süreci gösterilmektedir.

PHP Formu

Form, giriş kutuları, onay kutuları, radyo düğmeleri ve daha fazlası gibi grafiksel kullanıcı arayüzü öğeleri içeren bir HTML etiketidir.

Form, aşağıdaki yöntem kullanılarak tanımlanır. … Etiketler ve GUI öğeleri, input gibi form öğeleri kullanılarak tanımlanır.

Formları ne zaman ve neden kullanıyoruz?

  • Formlar, geliştirme aşamasında oldukça kullanışlıdır.ping Kullanıcı girdilerini kabul eden esnek ve dinamik uygulamalar.
  • Formlar, veritabanındaki mevcut verileri düzenlemek için kullanılabilir.

Bir form oluştur

Form oluşturmak için HTML etiketlerini kullanacağız. Aşağıda bir form oluşturmak için ihtiyacınız olan minimum şeylerin listesi bulunmaktadır.

  • Form etiketlerini açma ve kapatma …
  • Form gönderme türü POST veya GET
  • Sunuş URL gönderilen verileri işleyecek
  • Giriş alanları; örneğin, giriş kutuları, metin alanları, düğmeler, onay kutuları ve benzerleri.

Aşağıdaki kod basit bir kayıt formu oluşturur.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST"> First name:

<input type="text" name="firstname"> <br> Last name:

<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
</body>
</html>

Yukarıdaki kodu bir web tarayıcısında görüntülediğinizde aşağıdaki form görüntülenir.

Bir form oluştur

İŞTE,

  • … açılış ve kapanış form etiketleridir
  • action=”registration_form.php” method=”POST” ifadesi hedefi belirtir. URL ve gönderim türü.
  • Ad/Soyad: giriş kutuları için etiketlerdir
  • giriş kutusu etiketleridir
  • yeni satır etiketi
  • formun gönderilip gönderilmediğini kontrol etmek için kullanılan gizli bir değerdir
  • Tıklandığında formu işlenmek üzere sunucuya gönderen düğmedir.

Form verilerinin sunucuya gönderilmesi

Formun action özniteliği gönderimi belirtir. URL Verileri işleyen yöntem. `method` özniteliği, gönderim türünü belirtir.

PHP POST yöntemi

  • Bu, HTTP POST yöntemiyle gönderilen değerleri almak için kullanılan, PHP'nin yerleşik süper küresel dizi değişkenidir.
  • Dizi değişkenine programdaki herhangi bir komut dosyasından erişilebilir; küresel bir kapsama sahiptir.
  • Bu yöntem, form gönderim değerlerini görüntülemek istemediğiniz durumlarda idealdir. URL.
  • POST yönteminin kullanımına iyi bir örnek, sunucuya giriş bilgilerini göndermektir.

Söz dizimi şu şekildedir.

<?php
$_POST['variable_name'];
?>

İŞTE,

  • “$_POST[…]” PHP dizisi
  • “'variable_name'”, form alanının adıdır.

PHP GET yöntemi

  • Bu, HTTP GET yöntemiyle gönderilen değerleri almak için kullanılan, PHP'nin yerleşik süper küresel dizi değişkenidir.
  • Dizi değişkenine programdaki herhangi bir komut dosyasından erişilebilir; küresel bir kapsama sahiptir.
  • Bu yöntem, form değerlerini şu şekilde görüntüler: URL.
  • Kullanıcıların sonuçları yer imlerine eklemesine olanak tanıdığı için arama motoru formları için idealdir.

Söz dizimi şu şekildedir.

<?php
$_GET['variable_name'];
?>

İŞTE,

  • “$_GET[…]” PHP dizisidir
  • “'değişken_adı'” şudur: URL değişken ismi.

GET ve POST Yöntemleri

POST GET
Görünmeyen değerler URL Görünür değerler URL
Değerlerin uzunluğu konusunda herhangi bir sınırlama yoktur, çünkü bunlar HTTP isteğinin gövdesi üzerinden gönderilir. Değerlerin uzunluğu konusunda bir sınırlama vardır, genellikle 255 karakterdir. Bunun nedeni, değerlerin şu şekilde görüntülenmesidir: URLKarakter sayısının üst sınırı tarayıcıya bağlı olarak değişebilir.
POST değerlerinin HTTP gövdesine yerleştirilmesi için harcanan zaman nedeniyle GET yöntemine kıyasla daha düşük performansa sahiptir. Değerlerin basitçe toplanması nedeniyle POST yöntemine kıyasla daha yüksek performansa sahiptir. URL.
Dize, sayısal, ikili ve daha birçok farklı veri türünü destekler. Yalnızca metin veri türlerini destekler çünkü değerler metin içinde görüntülenir. URL
Sonuçlar yer imlerine eklenemez. Sonuçlar, değerlerin görünürlüğü sayesinde yer imlerine eklenebilir. URL

Aşağıdaki diyagram GET ve POST arasındaki farkı göstermektedir.

GET ve POST Yöntemleri

GET ve POST Yöntemleri

Kayıt formu verilerinin işlenmesi

Kayıt formu, formun action özelliğinde belirtildiği şekilde verileri kendisine gönderir.

Form gönderildiğinde, değerler $_POST süper küresel dizisine yerleştirilir.

$_POST dizisinde form değerlerinin doldurulup doldurulmadığını kontrol etmek ve verileri işlemek için PHP isset fonksiyonunu kullanacağız.

Kayıt formuna, verileri işleyen PHP kodunu ekleyeceğiz. Değiştirilmiş kod aşağıdadır.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>
<body>

<?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted

<h2>Thank You <?php echo $_POST['firstname']; ?> </h2>

<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>

<p>Go <a href="/registration_form.php">back</a> to the form</p>

<?php else: ?>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST">

First name:
<input type="text" name="firstname">

<br> Last name:
<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>

<?php endif; ?>
</body>
</html>

İŞTE,

  • $_POST[] dizisindeki gizli form_submitted alanının doldurulup doldurulmadığını kontrol eder ve doldurulduktan sonra teşekkür mesajı ve adınızı görüntüler. Eğer $_POST[] dizisindeki form_submitted alanı doldurulmamışsa, form görüntülenir.

Daha fazla örnek

Basit arama motoru

PHP GET yöntemini form gönderim türü olarak kullanan basit bir arama motoru tasarlayacağız.

Basitlik açısından, bir kullanacağız PHP if ifadesi çıktıyı belirlemek için.

Yukarıdaki kayıt formu için aynı HTML kodunu kullanacağız ve üzerinde minimum düzeyde değişiklik yapacağız.

<html>
<head>
<title>Simple Search Engine</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<?php if (isset($_GET['form_submitted'])): ?>

<h2>Search Results For <?php echo $_GET['search_term']; ?> </h2>
<?php if ($_GET['search_term'] == "GET"): ?>

<p>The GET method displays its values in the URL</p>

<?php else: ?>
<p>Sorry, no matches found for your search term</p>

<?php endif; ?>

<p>Go <a href="/search_engine.php">back</a> to the form</p>

<?php else: ?>

<h2>Simple Search Engine - Type in GET </h2>

<form action="search_engine.php" method="GET">

Search Term:
<input type="text" name="search_term">
<br>

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
<?php endif; ?>
</body>
</html>

Yukarıdaki sayfayı bir web tarayıcısında görüntüleyin.

Aşağıdaki form gösterilecektir.

Basit Arama Motoru

GET kelimesini büyük harflerle yazın, ardından gönder düğmesine tıklayın.

Aşağıdakiler gösterilecektir.

Basit Arama Motoru

Aşağıdaki şemada URL Yukarıdaki sonuçlar için.

Basit Arama Motoru

Not URL `search_term` ve `form_submitted` değerlerini görüntüledi. GET dışında herhangi bir şey yazmayı deneyin, ardından gönder düğmesine tıklayın ve aldığınız sonuçlara bakın.

Onay kutuları ve radyo düğmeleriyle çalışma

Kullanıcı bir onay kutusu veya radyo düğmesi seçmezse, hiçbir değer gönderilmez. Kullanıcı bir onay kutusu veya radyo düğmesi seçerse, bir (1) veya doğru değeri gönderilir.

Kayıt formu kodunu değiştireceğiz ve kullanıcının hizmet şartlarını kabul etmesine olanak tanıyan bir onay düğmesi ekleyeceğiz.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php if (isset($_POST['form_submitted'])): ?>
<?php if (!isset($_POST['agree'])): ?>
<p>You have not accepted our terms of service</p>
<?php else: ?>
<h2>Thank You <?php echo $_POST['firstname']; ?></h2>
<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>
<p> Go <a href="/registration_form2.php">back</a> to the form</p>
<?php endif; ?>
<?php else: ?>
<h2>Registration Form</h2>
<form action="registration_form2.php" method="POST">
First name:
<input type="text" name="firstname">
<br> Last name:
<input type="text" name="lastname">
<br> Agree to Terms of Service:
<input type="checkbox" name="agree">
<br>
<input type="hidden" name="form_submitted" value="1" />
<input type="submit" value="Submit">
</form>
<?php endif; ?>
</body>
</html>

Yukarıdaki formu bir tarayıcıda görüntüleyin.

Onay kutuları, Radyo düğmeleriyle çalışma

Ad ve soyadlarını girin.

Hizmet Şartlarını Kabul Et onay kutusunun seçili olmadığına dikkat edin.

Gönder düğmesine tıklayın.

Aşağıdaki sonuçları elde edeceksiniz.

Onay kutuları, Radyo düğmeleriyle çalışma

Forma geri dön bağlantısına tıklayın, ardından onay kutusunu seçin.

Onay kutuları, Radyo düğmeleriyle çalışma

Gönder düğmesine tıklayın.

Aşağıdaki sonuçları elde edeceksiniz.

Onay kutuları, Radyo düğmeleriyle çalışma

SSS

$_GET, değerleri şuradan okur: URL Sorgu dizesi, $_POST istek gövdesinden değerleri okur ve $_REQUEST GET, POST ve çerez verilerini birleştirir. Bir değerin nereden geldiğini tam olarak bilmek için belirli diziyi tercih edin.

Ham girdilere asla güvenmeyin. Her alan için filter_var() veya kurallar kullanarak doğrulama yapın ve XSS saldırılarını önlemek için çıktıyı htmlspecialchars() ile kaçış karakterleriyle değiştirin. SQL enjeksiyonunu önlemek için veritabanına yazma işlemleri için hazırlanmış ifadeler kullanın.

Sık karşılaşılan nedenler arasında POST yerine GET yönteminin kullanılması, giriş alanlarında ad özniteliklerinin eksik olması ve yanlış işlem yer almaktadır. URLYa da dosya yüklemeleri için eksik bir multipart enctype (çok parçalı şifreleme türü) olabilir. Bunların her birini formunuzla karşılaştırın.

Evet. Yapay zeka, HTML formunu, sunucu tarafı doğrulamasını, CSRF korumasını ve kodlanmış çıktıyı oluşturabilir. RevDağıtıma geçmeden önce her alanın kurallarını inceleyin ve güvenlik kontrollerinin uygulamanızla eşleştiğinden emin olun.

Evet. Formu ve işleyiciyi paylaşın, yapay zeka yöntem uyuşmazlığını, eksik ad özniteliğini, yanlış işlem yolunu veya gönderimi engelleyen bir doğrulama dalını tespit edip düzeltme önerisinde bulunabilir.

Bu yazıyı şu şekilde özetleyin: