PHP ile Site İçi Arama Motoru Oluşturma Rehberi

PHP ile Site İçi Arama Motoru Oluşturma Rehberi

Günümüzde web siteleri, kullanıcıların ihtiyaç duyduğu bilgilere hızlı ve kolay bir şekilde ulaşabilmesi için etkili arama motorlarına ihtiyaç duyar. Site içi arama motorları, kullanıcıların içerik arasında kaybolmadan aradıkları bilgilere ulaşmalarını sağlar. Bu makalede, PHP kullanarak basit bir site içi arama motoru oluşturmanın adımlarını detaylı bir şekilde inceleyeceğiz.

1. Gereksinimler

Site içi arama motoru oluşturmak için bazı temel gereksinimlere ihtiyacınız olacak:

– **Web Sunucusu**: PHP dosyalarını çalıştırabilen bir web sunucusuna ihtiyacınız var. Apache veya Nginx gibi sunucular yaygın olarak kullanılır.

– **PHP**: En az PHP 7.0 sürümü önerilir.

– **Veritabanı**: MySQL veya SQLite gibi bir veritabanı kullanarak içeriklerinizi depolamanız gerekecek.

– **Temel HTML/CSS Bilgisi**: Kullanıcı arayüzünü tasarlamak için temel HTML ve CSS bilgisi yeterli olacaktır.

2. Veritabanı Tasarımı

Arama motorunuzun çalışabilmesi için içeriklerinizi depolamak üzere bir veritabanı oluşturmalısınız. Aşağıda, basit bir veritabanı yapısını gösteren SQL komutları bulunmaktadır:

sql

CREATE DATABASE site_ici_arama;

USE site_ici_arama;

CREATE TABLE makaleler (

id INT AUTO_INCREMENT PRIMARY KEY,

baslik VARCHAR(255) NOT NULL,

icerik TEXT NOT NULL,

tarih TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

Bu yapıda `makaleler` tablosu, her makalenin başlığını, içeriğini ve tarihini depolamak için kullanılacaktır.

3. İçerik Ekleme

Veritabanınıza içerik eklemek için bir PHP dosyası oluşturabilirsiniz. Aşağıda, basit bir içerik ekleme formu ve veritabanına ekleme işlemi için örnek bir kod bulunmaktadır:

php

connect_error) {

die(“Bağlantı hatası: ” . $conn->connect_error);

}

if ($_SERVER[“REQUEST_METHOD”] == “POST”) {

$baslik = $_POST[‘baslik’];

$icerik = $_POST[‘icerik’];

$sql = “INSERT INTO makaleler (baslik, icerik) VALUES (‘$baslik’, ‘$icerik’)”;

if ($conn->query($sql) === TRUE) {

echo “Yeni kayıt başarıyla eklendi.”;

} else {

echo “Hata: ” . $sql . “
” . $conn->error;

}

}

$conn->close();

?>

Başlık:

İçerik:

Bu form, kullanıcıların başlık ve içerik girmesine olanak tanır ve veritabanına kaydeder.

4. Arama Fonksiyonu Oluşturma

Arama fonksiyonu, kullanıcıların belirli anahtar kelimelerle içerik aramasına olanak tanır. Aşağıda, basit bir arama formu ve arama işlemi için örnek bir kod bulunmaktadır:

php

connect_error) {

die(“Bağlantı hatası: ” . $conn->connect_error);

}

$aramaSonuclari = [];

if (isset($_GET[‘arama’])) {

$aramaKelimesi = $_GET[‘arama’];

$sql = “SELECT * FROM makaleler WHERE baslik LIKE ‘%$aramaKelimesi%’ OR icerik LIKE ‘%$aramaKelimesi%'”;

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while ($row = $result->fetch_assoc()) {

$aramaSonuclari[] = $row;

}

} else {

echo “Sonuç bulunamadı.”;

}

}

$conn->close();

?>

Arama:

Arama Sonuçları

Bu kod, kullanıcıların arama yapmasına ve sonuçları listelemesine olanak tanır. Arama sonuçları, başlık ve içeriğin ilk 100 karakteri ile gösterilir.

5. Güvenlik Önlemleri

PHP ile site içi arama motoru oluştururken güvenlik önemlidir. Aşağıdaki önlemleri alarak uygulamanızı daha güvenli hale getirebilirsiniz:

– **SQL Enjeksiyonuna Karşı Koruma**: Kullanıcıdan gelen verileri doğrudan SQL sorgularında kullanmak yerine, hazırlıklı ifadeler (prepared statements) kullanarak SQL enjeksiyonuna karşı koruma sağlayabilirsiniz.

– **XSS (Cross-Site Scripting) Koruması**: Kullanıcıdan alınan verileri ekrana yazdırmadan önce `htmlspecialchars()` fonksiyonu ile özel karakterleri dönüştürerek XSS saldırılarına karşı koruma sağlayabilirsiniz.

– **Veritabanı Erişim Kontrolü**: Veritabanı kullanıcı adınızı ve şifrenizi gizli tutun ve yalnızca gerekli izinleri verin.

6. Sonuç

PHP ile basit bir site içi arama motoru oluşturmak, web sitenizin kullanıcı deneyimini önemli ölçüde iyileştirebilir. Bu makalede, veritabanı tasarımından içerik eklemeye, arama fonksiyonu oluşturmaktan güvenlik önlemlerine kadar temel adımları inceledik. Kendi ihtiyaçlarınıza göre bu yapıyı geliştirerek daha kapsamlı ve fonksiyonel bir arama motoru oluşturabilirsiniz.

Unutmayın ki, kullanıcıların arama deneyimini geliştirmek için sürekli olarak içeriklerinizi güncel tutmalı ve arama algoritmalarınızı optimize etmelisiniz. Başarılar dileriz!

Başa dön tuşu