2014-12-16 14 views
10

Ho un problema che non ho mai avuto e non riesco a trovare il motivo. Ho spostato il mio sito su un altro host e ora non "legge" le variabili $ _GET.

ho questo url: http://whatever.com/path?filtro=si&provincia=Santa+Fe&localidad=Rosario E se io chiamo questo:

$localidad = $_GET['localidad']; 
$provincia = $_GET['provincia']; 
$filtro = $_GET['filtro']; 

echo $localidad; 
echo "hola"; 
echo $provincia; 
echo $filtro; 

stampe nulla se non "hola", quindi non c'è nessun errore PHP. Ecco la mia .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

sto lavorando su un sito di WordPres, forse ha qualcosa a che fare con permalink o qualcosa del genere, Im davvero perso. Grazie mille, apprezzo il tuo aiuto.

EDIT

ho rinominato i miei .htacces quindi non ci vorrà leggerlo e la pagina ha rotto, così sono andato a permalink impostazioni in wordpress e impostarle a

- Post Name http://luminias.com/index.php/example-page/ 

ed ora funziona, ma, ora questo è URL THW:

http://whatever.com/index.php/path/?filtro=si&provincia=Santa+Fe&localidad=Rosario

E la stampa tutte le $ _GET, ma io n eed che "/index.php/" andato ..

+0

In quale file vuoi farlo eco? Qual è il '/ percorso' Dove è il punto? – vaso123

+0

Questi sono i contenuti _full del tuo .htaccess? Abilita la segnalazione degli errori di PHP/visualizza e controlla '$ _GET' con:' var_dump ($ _ GET); '. Nella parte superiore dello script 'error_reporting (E_ALL); ini_set ('display_errors', 1); 'Se GET non è popolato, riceverai notifiche sugli indici di array non definiti. –

+0

@MichaelBerkowski grazie, l'ho fatto e questo è venuto fuori: 'Avviso: indice non definito: localizzazione in E: \ kunden \ homepages \ 1 \ d456765835 \ www \ Luminias \ wp-content \ themes \ twentytwelve \ puntosdeventas.php on line 44' E questo un po 'di volte, per ogni ottenere chiamo nell'intero file. –

risposta

2

Aggiungi add_rewrite_tag funzione nel vostro function.php per tutti i parametri:

function custom_rewrite_tag() { 
     add_rewrite_tag('%localidad%', '([^&]+)'); 
} 
add_action('init', 'custom_rewrite_tag', 10, 0); 

E si può chiamare il parametro nel modello utilizzando

$wp_query->query_vars['localidad'] 

Ecco la full documentation

noti che usare $_GET su un wi URL riscritto Non funzionerà, anche se la riscrittura include le variabili di querystring. È necessario utilizzare $wp_query.

+0

Grazie per la risposta, ma questo non ha funzionato. Nel mio server precedente funzionava in modo meraviglioso, è un metodo di form GET colui che riscrive l'URL, non capisco perché non funziona ora –

+0

Prova ad usare il metodo POST solo per scopi di test e verifica risultato .. –

+0

Perché non dovrebbe funzionare un parametro $ _GET su un URL riscritto esattamente? Ho aggiornato una pagina oggi che consisteva in URL riscritti e ancora accesso ai parametri $ _GET. –