PHP arama ve yazıyı blog yazısı olarak kaydetme
iki sorum var...
bir website oluşturyorum ve main tagleri içinde php yardımıyla site içi arama yaptırmak istiyorum
fakat listeletemiyorum arama butonu ve kodları şöyle
<form action="pages/ara.php?islem=arama" method="GET">
<input name="ara" placeholder="Kartları ve yazarları aratın..." class="arama_inp" type="text"></input>
</form>
ve bunu index içinde yapıyorum sayfalarımıda index içinde görüntülüyorum benim yapmak istediğim
arama textinden gelen veriyi swicth e gönderip indexin main kısmında listeletmek
$sayfa = @$_GET['islem'];
switch($sayfa){
case 'arama':
include("pages/ara.php");
break;
bunu yaptığımda ben linkte arama sayfasına gönderdiğim veriyi görebiliyorum ama listelemiyor
swicth te default olarak ayarladığım kısım kalıyor yardım edersen çok sevinirim eğer sıkıntılı bir durumsa
arama ile ilgili tavsiyelerinide dinlerim
2.sorum ise veritabanına blog yazılarını nasıl kaydederim yani boşluk bıraksamda sadece bir boşluk bırakarak kaydediyor mysql
Sorunun şu;
formun action kısmında sen kendin değer göndermeye çalışmıssın buna gerek yok method kısmına get tanımladıysan içerisindeki her bir elemanı linkte name ve value değeri ile birlikte göndericektir zaten.
Örn.
<form action="deneme.php" method="get">
<input type="text" name="ara" value="prototurk">
</form>
<!-- Oluşacak Olan Link
deneme.php?ara=prototurk
Birden fazla input var ise
-->
<form action="deneme.php" method="get">
<input type="text" name="ara" value="prototurk">
<input type="text" name="ara1" value="tayfun">
</form>
<!-- Oluşacak Olan Link
deneme.php?ara=prototurk&?ara1=tayfun
-->
kendi formunda ara.php?islem=arama diye gönderdiğini sanarken sen aslında ara.php?ara=[input value] değeri gönderiyorsun.
<form action="pages/ara.php?islem=arama" method="GET">
Sonrasında burada $_GET['islem'] diyerek çekmeye çalışıyorsun oysaki $_GET['ara'] diyerek çekmen lazım
$sayfa = @$_GET['islem']; // Yerine $_GET['ara'] yazman lazım
Kısaca olması gereken kodların
<form action="pages/ara.php" method="GET">
<input name="ara" placeholder="Kartları ve yazarları aratın..." class="arama_inp" type="text">
</form>
<!-- input kapanış etiketi olmaz -->
<?php
$sayfa = @$_GET['ara'];
switch($sayfa){
case 'arama':
include("pages/ara.php");
break;
}
?>
2 . Soruna gelicek olursak str_replace fonksiyonuyla yapabilirsin. Veritabanına kayderken buna benzer bir işlemden geçir.
// html 1 den fazla boşluk bırakmayı kabul etmiyor onun yerine kullanarak boşluk bırabiliyoruz.
$text = 'Ben PHP kodluyorum bugün';
$text = str_replace(' ', ' ', $text);
// text'in içinde artık Ben PHP kodluyorum bugün
// Yazar ki html ile gösterirken herbir boşluk olarak yorumlanır.
echo $text;
// Çıktı: Ben PHP kodluyorum bugün