Problemi con il metodo GET

Ciao ragazzi

il problema è questo.

quando passo un dato tramite GET praticamente cosi ...storiacomuni.php?comune=x

se il comune è composto da una sola parola tipo milano avrò come variabile get "milano"ma se il comune è composto da 2 o + parole tipo massa carrara la varibile get conterrà "massa" e non massa carrara.

con conseguenze sulla query sul db come posso ovviare a questo problema?

P.S. ho già provato str_replace  per sostituire gli spazi con altro ma non mi funziona sul server che uso e non so ancora xchè.

grazie O0

inviato 11 anni fa
daniele77
X 0 X

Il tuo problema è causato dal fatto che non tutti i caratteri possono essere inseriti in un URL e lo spazio è uno di questi. Tali caratteri devo quindi prima essere convertiti, ad esempio lo spazio deve essere trasformato nel codice "%20". Fortunatamente PHP ha una funzione per effettuare questa codifica: urlencode

Es.:

<?php
$nome_comune = "Acquaviva delle fonti"; // provincia di Bari ;-)

echo '<a href="storiacomuni.php?comune=', urlencode($nome_comune), '">';
?>

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

domani mattina in ufficio la provo speriamo funzioni.

buonma domenica gianni e  grazie O0

risposto 11 anni fa
daniele77
X 0 X

Di nulla. Buona domenica anche a te.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Gianni la riga interessata è questa

 echo "<td align='LEFT' bgcolor='#FFF4E5'><p align='left'><font face='verdana' size='1'><b> <a href= storia-comune.php?comune=$comune&provincia=$arr[2] > $comune </a> </p> </b></font></td>";

 ho provato, ma forse non so usare bene  la funzione come dovrebbe essere?

risposto 11 anni fa
daniele77
X 0 X

basta fare così:

$comune_url  = urlencode($comune);
echo '<td align="LEFT" bgcolor="#FFF4E5">
            <p align="left"><font face="verdana" size="1"><b>
               <a href="storia-comune.php?comune=' , $comune_url , '&provincia=' , $arr[2] , '">', $comune , '</a>
            </b></font></p>
         </td>';

Ho aggiustato un po' gli apici e l'HTML che non erano corretti

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

perfetto O0

risposto 11 anni fa
daniele77
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda