Problem z urlji

Imam razvito skripto, da mi folk posta linke na moji stran, na stran, kjer je source video (like izklop). Url, ki ga posta se mi zapiše pravilno v bazo, ampak ne redirecta pravilno..Problem nastane, samo pri ID urljih.

Namesto da bil bil uporabnik preusmerjen na www.domena/index.php?ID=6000, ga rukne kar na www.domena.com

?!?

14 odgovorov

Ce je to tista skripta, ki si jo poslal meni, bos vsekakor imel boljse rezultate, ce bos za redirect uporabljal redir.php

redir.php tudi vzame kot parameter "key", predvidevam, da je tam notri shranjen tisti string za user-friendly (oz. SE-friendly) URLje. S parametrom ID ne bos dosegel nic, ker ga skripta pac sploh ne uposteva.

Pa brez kode je tako težko kaj reči a ne ? :)

@Vini prav tista skripta ja... ravno v IDjih je problem... Če so SE friendly urlji pol gre, razen ena napaka je spet,da v urlju spiše "?" (kar pa ni strateškega pomena)

Mactron, tisti ? se pojavi zaradi tega, ker za redirect uporabljas submit forme.

Ce bi rad za redirect uporabljal ID, bos moral pa skripto mal spremenit, zaenkrat ti ne omogoca tega sploh.

Uporabljaj urlencode in urldecode

iDEV, kako mu bo pa to pomagalo?

Predvidevam da ko user doda {link}
da pol kliče skripto /redir.php?url={link}
In če link ni urlencodan ne bo zadeva pravilno delovala.

Ocitno si slabo prebral vprasanje. Problem ima s parametrom ID, ki je numericen. Ce urlencodas stevilko 6000 je se kar enaka, torej 6000, ocitno ni problem v tem.

Saj ni problem v IDju, problem je v določenih znakih ki so pred njim,
predvsem ? in &

Npr: /redir.php?url=http://mojblink.com/neki.y?id=3&ime=test
redir.php dobi sledeče parametre:
url = http://mojblink.com/neki.y
id=3
time=test

Pravilno: /redir.php?url=http%3A%2F%2Fmojblink.com%2Fneki.y%3Fid%3D3%26ime%3Dtest
Tako skripta pravilno dobi samo en parameter:
url = http://mojblink.com/neki.y?id=3&ime=test

in lahko potem koda najbrž sledi:
....
updateviewsfor($GET['url']);
header("Location: " . $
GET['url']);

iDEV, a ves, da imas prav :) Sicer tvoj odgovor se vedno ne stima, vendar ne zato, ker ne bi imel prav, ampak v tem primeru ni problem v tem.

Mactron, tvoj problem je v tem, da za redirect uporabljas formo z method="get", takole:

<html><head></head>
<body>

<form method=get name=redir action="http://www.nekadomena.com/index.php?ID=6000">
</form>

<script type="text/javascript">
<!--
document.redir.submit();
//-->
</script>
</body></html>

Kot verjetno ves, forma, ki jo submitas z metodo get, v query string zapise vrednosti input fieldov kot parametre. Ker imas ti formo prazno, se seveda v query string ne zapise nic, vedno, ne le pri user (SE) friendly URLjih, pa se doda le tisti znak ?, ki si ga ze omenil.

Odloci se za nek drug nacin redirecta. Ce vztrajas pri javascriptu, to lahko storis s setiranjem document.location.href, druga moznost je meta refresh, tretja pa HTTP header Location. Zagotovo je se kaksna opcija, ampak te tri mi sedaj tako iz glave padejo na pamet.