v2.5.2
Giriş yap

PHP arama ve yazıyı blog yazısı olarak kaydetme

burak001
968 defa görüntülendi

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

onlywhatchess
1377 gün önce

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 &nbsp; kullanarak boşluk bırabiliyoruz.
$text = 'Ben          PHP kodluyorum bugün';
$text = str_replace(' ', '&nbsp;', $text);
// text'in içinde artık  Ben&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PHP&nbsp;kodluyorum&nbsp;bugün 
// Yazar ki html ile gösterirken herbir &nbsp; boşluk olarak yorumlanır.
echo $text;
// Çıktı: Ben          PHP kodluyorum bugün