s1gh Skrevet 23. august 2010 Del Skrevet 23. august 2010 Hei, Har nå i flere timer prøvd og løst et problem jeg har med mod_rewrite og html forms, så nå håper jeg virkelig det er noen der ute som kan hjelpe meg. Form: <form name="search" action="index.php" method="get"> <input type="hidden" name="node" value="search" /> <input class="inputSearch" type="text" name="query" /> <input class="buttonSearch" type="submit" value="Search" /> </form> Dette er altså html-en bak søkeboksen. Den gir følgende URL: www.example.com/index.php?node=search&query=søksøksøk MEN jeg ønsker altså å skrive om denne URL-en til følgende; www.example.com/search/søksøksøk .htaccess: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteRule ^/search/(.*)/$ index.php?node=search&query=$1 </IfModule> For å være ærlig vet jeg ikke om jeg har skrevet riktig i .htaccess en gang. Men det store spørsmålet er som følger; sett at .htaccess-fila er korrekt - hvordan i #"#&"%#" skal form-en se ut? Altså, hva skal jeg skrive under form action? Jeg har prøvd med flere varianter, men uansett hva jeg gjør blir det feil. URL-en blir seende slik ut: www.example.com/search/?query=søksøksøk Er det noen der ute som har mer peiling enn meg, og som kan gi meg en hjelpende hånd? På forhånd, takk! Lenke til kommentar
Jonas Skrevet 23. august 2010 Del Skrevet 23. august 2010 Du får ikke en form til å poste til en URL slik du beskriver. Alternativet er å bruke javascript til å videreføre brukeren til din custom URL eller endre location med headers. Lenke til kommentar
Thomas. Skrevet 24. august 2010 Del Skrevet 24. august 2010 Jeg har prøvd med flere varianter, men uansett hva jeg gjør blir det feil. URL-en blir seende slik ut: www.example.com/search/?query=søksøksøk Fordi du bruker get i formen din. Hvorfor bruker du get? (method) Du bør heller bruke post, og sende videre til $_GET. Lite eksempel: <?php /** sender til $_GET **/ if(isset($_POST['s'])) header('Location: /search/' . $_POST['sok'] . ''); /** behandler søket når vi mottar $_GET **/ if($_GET['query']) : echo 'Du søkte etter: ' . $_GET['query'] . '.'; endif; ?> <form action="" method="post"> <input type="text" name="sok" /> <input type="submit" name="s" value="Søk!" /> </form> Lenke til kommentar
s1gh Skrevet 28. august 2010 Forfatter Del Skrevet 28. august 2010 Tusen takk for svarene! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå