Avatar billede quimby Nybegynder
13. september 2004 - 12:43 Der er 6 kommentarer og
2 løsninger

Søgefunktion fra asp til php

Jeg har en søgefunktion hvor jeg vælger en søgemaskine i dropdown menuen og skriver min forespørgsel i et txt felt. jeg har via en online asp to php translator fået "oversat" koden til php, men den melder stadig fejl. fejlen kan ses på http://www.marzman.dk/search.php

Nogen med det afgørende "touch" til koden

Koden til search.asp
---

<%
text = replace(request("search"), " ", "+")
if request("location") = "jubii" then
response.redirect "http://search.jubii.dk/cgi-bin/pursuit?cat=loc&query=" & text
elseif request("location") = "yahoo" then
response.redirect "http://search.yahoo.com/search?p=" & text & "&ei=UTF-8&n=20&fl=0&x=wrt"
elseif request("location") = "eniro" then
response.redirect "http://www.eniro.dk/query?q=" & text & "&what=dk&stq=0"
elseif request("location") = "alltheweb" then
response.redirect "http://www.alltheweb.com/search?cat=web&cs=utf8&q=" & text & "&rys=0&_sb_lang=pref"
elseif request("location") = "dejanews" then
response.redirect "http://groups.google.com/groups?oi=djq&as_q=" & text
elseif request("location") = "altavista" then
response.redirect "http://dk.altavista.com/web/results?itag=wrx&q=" & text & "&kgs=1&kls=0"
elseif request("location") = "excite" then
response.redirect "http://msxml.excite.com/info.xcite/search/web/" & text
elseif request("location") = "hotbot" then
response.redirect "http://www.hotbot.com/?SM=MC&DV=0&LG=any&DC=10&DE=2&clickSrc=search&_v=2&OPs=MDRTP&MT=" & text
elseif request("location") = "google" then
response.redirect "http://www.google.com/search?q=" & text
elseif request("location") = "dkgoogle" then
response.redirect "http://www.google.com/search?q=" & text & "&meta=lr%3Dlang_da"
elseif request("location") = "dmoz" then
response.redirect "http://search.dmoz.org/cgi-bin/search?search=" & text
elseif request("location") = "teoma" then
response.redirect "http://s.teoma.com/search?q=" & text & "&qcat=1&qsrc=0"
end if%>


Koden til search.php
---


<?php
$location = $_REQUEST[location];
?>
<?php
$text = $_REQUEST[search];
?>

<?php
if (request("$location") == "jubii") {
response.redirect "http://search.jubii.dk/cgi-bin/pursuit?cat=loc&query="echo "$text";
} elseif (request("$location") == "yahoo") {
response.redirect "http://search.yahoo.com/search?p=" echo "$text" "&ei=UTF-8&n=20&fl=0&x=wrt";
} elseif (request("$location") == "eniro") {
response.redirect "http://www.eniro.dk/query?q="echo "$text" "&what=dk&stq=0";
} elseif (request("$location") == "alltheweb") {
response.redirect "http://www.alltheweb.com/search?cat=web&cs=utf8&q="echo "$text" "&rys=0&_sb_lang=pref";
} elseif (request("$location") == "dejanews") {
response.redirect "http://groups.google.com/groups?oi=djq&as_q="echo "$text";
} elseif (request("$location") == "altavista") {
response.redirect "http://dk.altavista.com/web/results?itag=wrx&q="echo "$text" "&kgs=1&kls=0";
} elseif (request("$location") == "excite") {
response.redirect "http://msxml.excite.com/info.xcite/search/web/"echo "$text";
} elseif (request("$location") == "hotbot") {
response.redirect "http://www.hotbot.com/?SM=MC&DV=0&LG=any&DC=10&DE=2&clickSrc=search&_v=2&OPs=MDRTP&MT=" echo "$text";
} elseif (request("$location") == "google") {
response.redirect "http://www.google.com/search?q=" echo "$text";
} elseif (request("$location") == "dkgoogle") {
response.redirect "http://www.google.com/search?q=" echo "$text" "&meta=lr%3Dlang_da";
} elseif (request("$location") == "dmoz") {
response.redirect "http://search.dmoz.org/cgi-bin/search?search="echo "$text";
} elseif (request("$location") == "teoma") {
response.redirect "http://s.teoma.com/search?q="echo "$text" "&qcat=1&qsrc=0";
}?>


Hilsen Søren
Avatar billede Slettet bruger
13. september 2004 - 12:51 #1
ASP > PHP oversættere er noget skrammel og virker ikke.

if (request("$location") == "jubii")
skal f.eks. være
if ($location) == "jubii")

Og response.redirect hedder ('Header: location') i PHP



response.redirect "http://search.jubii.dk/cgi-bin/pursuit?cat=loc&query="echo "$text";

skal være

header('Location:' . 'http://search.jubii.dk/cgi-bin/pursuit?cat=loc&query=' . $text);

Og så er alle dine if else'r bedre egnet til case sætninger.
Avatar billede Slettet bruger
13. september 2004 - 12:52 #2
if ($location) == "jubii")

skal retteligt være
if ($location == "jubii")


(min fejl!)
Avatar billede sostack Nybegynder
14. september 2004 - 13:45 #3
Prøv med:
<?php
$location = $_REQUEST["location"];
$text = $_REQUEST["search"];
SWITCH($location)
{
    CASE "jubii":
        header("Location: http://search.jubii.dk/cgi-bin/pursuit?cat=loc&query=$text);
    BREAK;
    CASE "yahoo"
        header("Location: http://search.yahoo.com/search?p=$text&ei=UTF-8&n=20&fl=0&x=wrt");
    BREAK;
    CASE "eniro"
        header("Location: http://www.eniro.dk/query?q=$text&what=dk&stq=0");
    BREAK;
    CASE "alltheweb"
        header("Location: http://www.alltheweb.com/search?cat=web&cs=utf8&q=$text&rys=0&_sb_lang=pref");
    BREAK;
    CASE "dejanews"
        header("Location: http://groups.google.com/groups?oi=djq&as_q=$text);
    BREAK;
    CASE "altavista"
        header("Location: http://dk.altavista.com/web/results?itag=wrx&q=$text&kgs=1&kls=0");
    BREAK;
    CASE "excite"
        header("Location: http://msxml.excite.com/info.xcite/search/web/$text);
    BREAK;
    CASE "hotbot"
        header("Location: http://www.hotbot.com/?SM=MC&DV=0&LG=any&DC=10&DE=2&clickSrc=search&_v=2&OPs=MDRTP&MT=$text");
    BREAK;
    CASE "google"
        header("Location: http://www.google.com/search?q=$text");
    BREAK;
    CASE "dkgoogle"
        header("Location: http://www.google.com/search?q=$text&meta=lr%3Dlang_da");
    BREAK;
    CASE "dmoz"
        header("Location: http://search.dmoz.org/cgi-bin/search?search=$text);
    BREAK;
    CASE "teoma"
        header("Location: http://s.teoma.com/search?q=$text&qcat=1&qsrc=0");
    BREAK;
}
?>

//sostack
Avatar billede quimby Nybegynder
14. september 2004 - 17:18 #4
Må desværre meddele at der er en fejl, og kan ikke selv se det :(

http://www.marzman.dk/search.php

har også oprettet den på en anden server

http://malling.users.whitehat.dk/index.php

søg nederst på siden og tag jer ikke af det døde billede
Avatar billede Slettet bruger
14. september 2004 - 23:03 #5
Der mangler et : efter de fleste case sætninger.

CASE "teoma"
        header("Location: http://s.teoma.com/search?q=$text&qcat=1&qsrc=0");

skal f.eks. være

CASE "teoma":
        header("Location: http://s.teoma.com/search?q=$text&qcat=1&qsrc=0");
Avatar billede sostack Nybegynder
15. september 2004 - 07:48 #6
Sorry, "Search and replace" skal der være helt styr på :-(

//sostack
Avatar billede quimby Nybegynder
15. september 2004 - 09:50 #7
jeg kan også se at der må være en fejl på linie ni, for yahoo står med en anden farve formatering end alle de andre "location" variabler... og nogle af url'erne er også blevet til kommentarer
Avatar billede sostack Nybegynder
15. september 2004 - 10:05 #8
Denne virker, alle maskiner testet:
<?php
$location = $_REQUEST["location"];
$text = $_REQUEST["search"];
SWITCH($location)
{
    CASE "jubii":
        header("Location: http://search.jubii.dk/cgi-bin/pursuit?cat=loc&query=" . $text);
    BREAK;
    CASE "yahoo":
        header("Location: http://search.yahoo.com/search?p=" . $text . "&ei=UTF-8&n=20&fl=0&x=wrt");
    BREAK;
    CASE "eniro":
        header("Location: http://www.eniro.dk/query?q=" . $text . "&what=dk&stq=0");
    BREAK;
    CASE "alltheweb":
        header("Location: http://www.alltheweb.com/search?cat=web&cs=utf8&q=" . $text . "&rys=0&_sb_lang=pref");
    BREAK;
    CASE "dejanews":
        header("Location: http://groups.google.com/groups?oi=djq&as_q=" . $text);
    BREAK;
    CASE "altavista":
        header("Location: http://dk.altavista.com/web/results?itag=wrx&q=" . $text . "&kgs=1&kls=0");
    BREAK;
    CASE "excite":
        header("Location: http://msxml.excite.com/info.xcite/search/web/" . $text);
    BREAK;
    CASE "hotbot":
        header("Location: http://www.hotbot.com/?SM=MC&DV=0&LG=any&DC=10&DE=2&clickSrc=search&_v=2&OPs=MDRTP&MT=" . $text . "");
    BREAK;
    CASE "google":
        header("Location: http://www.google.com/search?q=" . $text);
    BREAK;
    CASE "dkgoogle":
        header("Location: http://www.google.com/search?q=" . $text . "&meta=lr%3Dlang_da");
    BREAK;
    CASE "dmoz":
        header("Location: http://search.dmoz.org/cgi-bin/search?search=" . $text);
    BREAK;
    CASE "teoma":
        header("Location: http://s.teoma.com/search?q=" . $text . "&qcat=1&qsrc=0");
    BREAK;
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester