Gå til innhold

php newbi - hente en annen side med "if"


Anbefalte innlegg

Jeg lager et "liksom søkemotor" for et webprosjekt vi har på VGS.

 

Tanken da er at jeg har en form med et tekstfelt på en av sidene. Der kan brukeren skrive inn det de vil vite mer om. F.eks "aromaterapi".

Så de skriver det inn i feltet, og trykker på submit. Hvis "if" stemmer, blir de tatt til "info_portal/aromater.html"

 

Men hvordan er det at jeg gjør akkurat det?

 

Også et annet spørsmål:

La oss si at jeg vil at flere søkeord skal linke til samme fil, hvordan kan jeg da putte flere søkeord inn i

if ($sresult == aromaterapi);

 

Sånn ser hele koden ut nå:

	<div id="content">
 <div class="text">
 	<form action="scripts/search.php" method="post">
   <p>Søk etter det du vil vite mer om:</p>
   	<input type="text" name="search" size="40" />
 	</form>
 	<p>Eks.: aromaterapi, homeoterapi, masasje.</p>
 </div>
</div>

 

search.php:

<html>
<head></head>

<body>
<?php
$sresult = $_POST["search"];

if ($sresult == aromaterapi); {
echo "Dette er en artikkel om Aromaterapi";
}
?>
</body>
</html>

Så i search.php vil jeg erstatte "echo" med at den linker til en fil som jeg beskrev ovenfor. Og at jeg kan skrive inn flere søkeord inn i samme "if".

Lenke til kommentar
Videoannonse
Annonse

du kan jo bruke switch.

 

switch($_POST['search']) {

case("aromaterapi"):

include('aromaterapi.php');

break;

 

case("annet"):

include('annet.php');

break;

 

}

 

 

 

eller du kan jo bruke if.

 

if ($resutlat == "noe") {

include();

 

elseif ($resultat == "aromaterapi")

inc...

 

elseif //osv osv

else

Lenke til kommentar

Takker ^^

 

Har begynt å skrive med elseif nå.

Trodde bare at det kanskje var en kortere eller "smartere" måte å skrive dette på xD

 

I mitt "php newbi" hodet hørtes dette ganske logist ut:

if ($sresult == "aromaterapi","aroma","aromaterp"); {
include ('../info_portal/aromtera.html');
}

Men dette funker jo ikke seff. xD

 

Får vel fortsette med elseif ^_^

 

EDIT:

<?php
$sresult = $_POST["search"];

if ($sresult == aromaterapi); {
include ("../info_portal/aromtera.html");
}
elseif ($sresult == aroma); {
 include ("../info_portal/aromatera.html");
 }
else {
include ("../info_portal/error.html");
}
?>

Gir følgende feilmelding:

Parse error: parse error, unexpected T_ELSEIF in C:\xampplite\htdocs\maxserver\scripts\search.php on line 11

 

Am I missing something? :hmm::p

Endret av MaxP2P
Lenke til kommentar

<?php
$res = htmlspecialchars ( $_POST['search'] );
$aromaarr = array ( 'aromaterapi', 'aroma', 'aromaterp');

if ( in_array ( $res, $aromaarr ) )
{
include ( 'aromatera.html' );
}
elseif ( in_array ( $res, $annetarr )
{
include ( 'annet.html' );
}
// ......
?>

 

Kan også bruk regex for å sjekke om søkesetningen inneholder 'aroma'.

Lenke til kommentar

Det der ser ut til å være akkurat det jeg har lett etter ^^

 

*prøver ut*

 

Tusen takk :)

 

EDIT:

Fant nå ut at include () ikke var helt riktig for det jeg prøver å gjøre likevel.

Det den gjør er å "importere" innholdet av den spesifiserte .html filen. Og dette fungerer jo sånn halvveis. Problemet er at dette skaper trøbbel i mappesystemet, og litt annet tull.

 

Så det jeg egentlig treger er noe som kan rett og slett omdirigere klienten til en annen side.

 

Eks:

Her er forsiden til infoporalen:

http://localhost/maxserver/info_portal.html

Her ligger <form> som igjen peker til php scriptet.

 

Så når brukeren har skrevet inn "aroma", vil jeg at han skal bli videresend til:

http://localhost/maxserver/info_portal/aromtera.html

og ikke til:

http://localhost/maxserver/scripts/search.php

slik det blir gjort nå.

 

Sånn ser mappe strukturen ut nå:

mapstructureyu8.png

 

Noen ideer? ^^

 

EDIT 2:

Etter å ha lest litt mer om header () fant jeg løsningen ^^

Endret av MaxP2P
Lenke til kommentar

Når du gjør det slik vil jeg jo ikke finne siden om jeg f.eks søker på "aromaterap"...?

 

Om du vil matche bare filnavn kan du jo hente ut alle HTML-filer fra en spesifisert mappe og sjekke om søkestrengen finnes i hvert filnavn?

 

Eller, du kan lage et array med beskrivelse av alle sidene og matche på det, da kan man f.eks søke på "aromaterapaut" og få opp siden, selv om det ikke er del av filnavnet. ;)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...