webForumDet fria alternativet

Problem med enkel sökfunktion

PHP

1 svar · 369 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Har följande kod i/på index.php:

<?php 
	
	$sokstrang = htmlspecialchars($_POST["search"]);
		
	if ($_POST["soktyp"] == "medlemmar") $sok = "users.php?search=$sokstrang"; 
	else if ($_POST["soktyp"] == "bilder") $sok = "bilder.php?search=$sokstrang&amp;kategori=0"; 
	else if ($_POST["soktyp"] == "forum") $sok = "forum.php?action=search&amp;keywords=$sokstrang"; 
?>

    	<form method="post" action="<?=$sok?>">
	<input type="radio" name="soktyp" value="bilder" checked="checked" />bilder
        <input type="radio" name="soktyp" value="forum" />forum 
        <input type="radio" name="soktyp" value="medlemmar" />medlemmar
        &nbsp;&nbsp;<input type="text" name="search" maxlength="18" />
	</form>

..men det verkar inte fungera riktigt som det ska.
Flera gånger så postas formuläret direkt till index.php, istället för till resp. sida som är angivet i "soktyp".

Alltså.. om man vill söka efter bilder, så ska sökresultat visas på sidan bilder.php o.s.v.

Medlem sedan dec. 200574 inlägg
#2

Som det är nu så står action mot <?=$sök?> som är tom då den ej har fått något värde. Så prova med att ändra till nedanstående kodexempel och se om det fungerar. Nu är jag lite trött så koden kanske inte fungerar men bör nog ge dig en idé hur detta kan lösas

Testa ändra

<form method="post" action="<?=$sok?>">

till

<form method="post" action="index.php">

och ändra

<?php 
    
    $sokstrang = htmlspecialchars($_POST["search"]);
        
    if ($_POST["soktyp"] == "medlemmar") $sok = "users.php?search=$sokstrang"; 
    else if ($_POST["soktyp"] == "bilder") $sok = "bilder.php?search=$sokstrang&amp;kategori=0"; 
    else if ($_POST["soktyp"] == "forum") $sok = "forum.php?action=search&amp;keywords=$sokstrang"; 
?>

till

<?php 
    
    //Detta ifall du vill ha andra formulär på sidan
    if (isset($_POST['sök']))
{    
   $sokstrang = htmlspecialchars($_POST["search"]);
    if ($_POST["soktyp"] == "medlemmar") header("Location: users.php?search=" . $sokstrang); 
    else if ($_POST["soktyp"] == "bilder") header("Location: bilder.php?search=" . $sokstrang . "&amp;kategori=0"); 
    else if ($_POST["soktyp"] == "forum") header("Location: forum.php?action=search&amp;keywords=" . $sokstrang); 
}
?>

Hittade även ingen submit knapp, ändra ditt formulär så även detta finns med såhär:

<br /><input type="submit" name="sök" value="Sök" />
285 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
153 ms — ändringar (db)