Autor Zpráva
Groo
Profil
Řeším tento problém už dlouho.

Neznáte někdo script, který by změnil mezeru na "="?

Mám ovladač serveru. Příkaz se odesílá se pomocí <form action="http://../index.php?"><input type="text" ...>...</form>

link vypadá potom tako: http://.../index.php?cd%20avatary... Abych s tím mohl pracovat jako s proměnou, musí tam být místo %20 "=". Neznáte script který by to uměl převést?
souki
Profil
v php? nebo js? nebo by to možná šlo přes mod_rewrite

v php by to bylo str_replace("%20","=",$url) // pořadím si nejsem jist
koudi
Profil
Mám ovladač serveru
Jak jsem to pochopil, tak zadáš do formu unixovej příkaz a ten se ti na serveru provede (třeba před exec, nebo tak)? A navíc přes GET?
Tak to bych radši moc nedělal.
Groo
Profil
PHP... to $url nefunguje.
djlj
Profil
to $url nefunguje.
Ano, samozřejmě si tam dosadíš vlastní proměnnou…
Hooonza
Profil *
No, jestli to dobře chápu, je to třeba udělat javaskriptem: před odesláním na server.
Z řetězce bych nejdřív vyházel %20, např. pomocí split:

a = promenna;
b = a.split('%20');

Počet znaků v řetězci b zjistím pomocí length:

c = b.length;

No a nakonec všechny části rozdělené proměnné spojím dohromady pomocí "=":

e="";
for (d=0; d<c-1; d++) {e = e + b[d]+'='; };
e += b[d];
Hooonza
Profil *
Funkční příklad:

<html>

<script>
function gogo() {
a = document.form.ff.value;
b = a.split('%20');
c = b.length;

e="";
for (d=0; d<c-1; d++) {e = e + b[d]+'='; };
e += b[d];

alert ("Proměnná: "+a); alert("Pole zbavené %20: "+b); alert ("Počet prvků pole: "+c); alert("Výsledek, prvky spojené pomocí '=': "+e);
}
</script>

<body>
<form action="#" onsubmit="gogo();" name=form>
<input type=text name=ff value="a%20b%20c%20d%20e">
<input type=submit>
</form>
</body></html>
Hooonza
Profil *
Proměnnou "a" je v mém příkladu třeba upravit, předvyplnil jsem do políčka řetězec s několika %20. Proměnná "e" je výstup, %20 je nahrazeno za "=".
Hooonza
Profil *
I když popravdě, moje prohlížeče doma z <input type="text" ...> místo mezery neodesílají %20, ale "+".
Toto téma je uzamčeno. Odpověď nelze zaslat.

0