> For the complete documentation index, see [llms.txt](https://docs.layraweb.com.tr/merhaba/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.layraweb.com.tr/merhaba/php-tarafi/konular/form-islemleri/form-verilerini-alma.md).

# Form Verilerini Alma

{% tabs %}
{% tab title="$\_POST (Alt Konu 1)" %}
PHP'de form verilerini almak için, HTML form elementlerindeki input, select veya textarea gibi alanların `name` özelliği kullanılarak gönderilen veriler `$_POST` veya `$_GET` dizileri aracılığıyla PHP koduna aktarılır.

Örneğin, aşağıdaki HTML formu kullanarak bir kullanıcının adını ve e-posta adresini alabiliriz:

```html
<form method="post" action="submit-form.php">
  <label for="name">Name:</label>
  <input type="text" id="name" name="name">

  <label for="email">Email:</label>
  <input type="email" id="email" name="email">

  <input type="submit" value="Submit">
</form>
```

Bu form, kullanıcının adını ve e-posta adresini girerek "submit-form.php" adlı bir PHP dosyasına gönderir.

`submit-form.php` dosyasında, formdan gelen verileri almak için `$_POST` dizisini kullanabiliriz. Örneğin:

```php
$name = $_POST['name'];
$email = $_POST['email'];

echo "Welcome, " . $name . ". Your email address is " . $email;
```

Bu örnekte, `$_POST` dizisi, formdan gelen verileri alır ve bunları `$name` ve `$email` değişkenlerine aktarır. Sonra, `echo` ifadesiyle bu değişkenleri kullanarak bir mesaj gösterilir.

Form verilerini `$_POST` yerine `$_GET` dizisi aracılığıyla da alabilirsiniz. Bunun için HTML formunun `method` özelliğini `get` olarak ayarlamanız ve PHP kodunda `$_GET` dizisini kullanmanız gerekir.

Form verilerini alırken, `isset()` işlevi kullanarak, gelen verilerin boş olup olmadığını kontrol etmek önemlidir. Örneğin, aşağıdaki kod, formdan gelen `name` verisinin boş olup olmadığını kontrol eder:

```php
if (isset($_POST['name']) && !empty($_POST['name'])) {
  // `name` verisi formdan gelen ve boş değil
}
else {
  // `name` verisi formdan gelmedi veya boş
}
```

Form verilerini alırken, `$_POST` veya `$_GET` dizilerinin doğru şekilde kullanıldığından emin olmak da önemlidir. Bu dizilerin içindeki veriler, kötü amaçlı kullanıcılardan gelebilecek saldırılara karşı korunmalıdır. Bu nedenle, form verilerini doğru biçimde doğrulamanız, filtrelemeniz ve işlemeniz gerekebilir.

Form verilerini alma işlemi sırasında, formdan gelen verilerin doğruluğunu kontrol etmek önemlidir. Bu nedenle, form verilerini işlemeden önce `filter_input()` ve `filter_var()` gibi işlevleri kullanarak gelen verileri doğrulayabilirsiniz.

Örneğin, aşağıdaki kod, formdan gelen e-posta adresinin geçerli bir e-posta adresi olduğunu kontrol eder:

```php
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  // `email` verisi geçerli bir e-posta adresi
}
else {
  // `email` verisi geçersiz bir e-posta adresi
}
```

Form verilerini alma işlemini gerçekleştirdikten sonra, bu verileri veritabanına kaydetmek veya başka bir işlem yapmak isteyebilirsiniz. Bu durumda, PDO veya mysqli gibi bir veritabanı bağlantısı oluşturmanız ve form verilerini güvenli bir şekilde işlemeniz gerekebilir.

Örneğin, aşağıdaki kod, formdan gelen verileri bir MySQL veritabanına kaydeder:

```php
// Veritabanı bağlantısını oluştur
$servername = "localhost";
$username = "kullanici_adi";
$password = "sifre";
$dbname = "veritabani_adi";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Form verilerini al
$name = $_POST['name'];
$email = $_POST['email'];

// Veritabanına kaydet
$sql = "INSERT INTO kullanicilar (isim, email) VALUES ('$name', '$email')";
if ($conn->query($sql) === TRUE) {
  echo "Kayıt başarılı";
} else {
  echo "Hata: " . $sql . "<br>" . $conn->error;
}

$conn->close();
```

Bu örnekte, `mysqli` sınıfını kullanarak MySQL veritabanı bağlantısı oluşturulur. Sonra, formdan gelen veriler `$_POST` dizisi aracılığıyla alınır ve `INSERT INTO` SQL ifadesiyle veritabanına kaydedilir.

Form verilerini alma işlemi, PHP'de web geliştirme için temel bir adımdır. Form verilerini doğru bir şekilde almak ve işlemek, web uygulamanızın kullanılabilirliği ve güvenliği için önemlidir.
{% endtab %}

{% tab title="$\_GET (Alt Konu 2)" %}
$\_GET yöntemi de form verileri almada kullanılan bir yöntemdir. $\_GET yöntemi, bir HTML formundan veri göndermek için kullanılan HTTP GET isteği ile form verilerini URL üzerinden gönderir. Bu nedenle, veriler URL'de görünebilir.

Aşağıda, $\_GET yöntemi ile form verilerini alma örneği verilmiştir:

Örnek HTML formu:

```html
<form action="get_form.php" method="get">
  Name: <input type="text" name="name"><br>
  Email: <input type="text" name="email"><br>
  <input type="submit" value="Submit">
</form>
```

Yukarıdaki formda, form verileri `get_form.php` sayfasına gönderilir ve $\_GET yöntemi kullanılarak alınır.

Örnek PHP kodu (`get_form.php`):

```php
if (isset($_GET['name']) && isset($_GET['email'])) {
  $name = $_GET['name'];
  $email = $_GET['email'];
  echo "Name: " . $name . "<br>";
  echo "Email: " . $email;
}
```

Yukarıdaki kodda, `isset()` işlevi kullanılarak $\_GET dizisindeki `name` ve `email` anahtarlarının varlığı kontrol edilir. Eğer bu anahtarlar varsa, formdan gelen veriler alınır ve ekrana yazdırılır.

Ancak, $\_GET yöntemi ile form verilerini alırken, form verileri URL'de görünebilir, bu da güvenlik açıklarına neden olabilir. Bu nedenle, hassas verilerin alınması gerektiğinde $\_POST yöntemi tercih edilir.
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.layraweb.com.tr/merhaba/php-tarafi/konular/form-islemleri/form-verilerini-alma.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
