Newsgroup: it.comp.www.php
Titolo: problema con urlencode e $_get

Salve a tutti, spero qualcuno sappia cosa sbaglio...
Ho una casella di ricerca cosi' strutturata:
  <form name="searchForm" action="index.php" method="get">
  <input type="text" name="q" size="5" maxlength="40" value="">
     <input type="hidden" name="category" value='<?php echo 
$currentCategorySearch; ?>'>
     <input type="hidden" name="type" value='<?php echo $currentTypeSearch; 
?>'>
 <input type="submit" name="" value="Cerca">
  </form>
...e per reperire i dati category e type uso a monte della pagina index.php 
il seguente codice:
$category = "%";
if (isset($_GET["category"]))
 $category = mysql_real_escape_string($_GET["category"]);
$type = "%";
if (isset($_GET["type"]))
 $type = mysql_real_escape_string($_GET["type"]);
...posto che category e type, se non indicati, valgono "%" avviene che in 
questi casi, quando uno clicka sul bottone del submit, l'url della mia 
index.php anziche' essere ad esempio:
http://www.home.it/index.php?q=prova&category=%&type=%
 mi diventa 
http://www.home.it/index.php?q=prova&category=%25&type=%25
 . Documentandomi 
ho intuito che il metodo $_GET automaticamente fa un urlencode sui dati 
passati da cui % diventa %25 (cosi' come altri simboli vengono modificati). 
Come posso fare affinche' quando uno preme il submit del search, i campi 
category e type vengano inseriti nell'url della pagina index.php non 
urlencodati?
ps: ho provato gia' a fare ad esempio:  $category = 
mysql_real_escape_string(urldecode($_GET["category"])); ma l'url index.php, 
dopo il click di submit mi resta ugualmente urlencodato.
Grazie in anticipo,
ciao 

 index.php, dopo il click di submit mi resta ugualmente urlencodato.
Il punto è che devi fare il decode dell'url, o meglio dei parametri 
"category" e "type" prima dell'invio del form stesso. Cosa che in php non 
puoi fare, ti devi appoggiare a javascript. Prova a cercare in rete, 
troverai parecchi script js che possono fare al caso tuo. Un'altra soluzione 
potrebbe essere di fare un check sul parametro "category" nello script che 
costituisce l'action del tuo form e sostituire "%25" con "%".
Paolo

 Paolo
Questa ha l'aria d'essere una soluzione spartana che, pero' essendo limitato 
il mio problema, mi piacerebbe percorrere. Sapresti farmi un esempio?
dovrebbe essere una sorta di str_replace sui campi %25 (e altri analoghi 
eventualmente), tuttavia non capisco come si possa fare affinche' quando uno 
preme submit la pagina index.php abbia i suoi parametri category e type gia' 
decodati. Cioe', non capisco dove applicare nel form (se e' li che si fa), 
la str_replace (o se vogliamo la urldecode).
Ciao, grazie pero'!
matteo

 che si fa), la str_replace (o se vogliamo la urldecode).
No, il decode dell'url via php lo puoi fare solo nella pagina che ti riceve 
i dati del form stesso. Se, invece i valori dei campi li vuoi "sistemare" 
prima dell'invio (cioè quando php è all'oscuro di tutto, poichè lavora sul 
server e non sul client e finchè non invii i dati al server, php non può 
sapere nulla di quello che essi contengono) devi usare JS (che invece gira 
sul client e non sul server).
Paolo 

Ho CAPITO! Grazie paolo!
ciao