- Home
- Categorie
- Coding e Sistemistica
- PHP
- $_GET che non va...
-
$_GET che non va...
Ciao, ragazzi.
Sto tentando di prelevare delle variabili con $_GET, per inserirle su una stringa, ma a quanto pare, non ne vuol proprio sapere.
Ecco il codice:
$query = "SELECT id_categoria,titolo,tag,tagurl FROM categorie WHERE id = '$cid'";
$result=mysql_query($query, $db);
while ($row = mysql_fetch_array($result)) {
$cat = $row[titolo];
$tag = $row[tag];
$tagurl = $row[tagurl];
$id_padre = $row[id_categoria];
}
$query = "SELECT titolo FROM categorie WHERE id = '$id_padre'";
$result=mysql_query($query, $db);
while ($row = mysql_fetch_array($result)) {
$cat_padre = $row[titolo];
//$nomecats = trim($cat_padre);
}
$cid= (int) $_GET['cid'];
**echo "Senza GET >>>>> " . $tagurl;
$tagurl2 = $_GET["tagurl"];
echo "<BR>Con GET >>>>> " . $tagurl2;
$urlstring = $tagurl.'-ele'.$cid.'.html'; **Come vedete, ho una variabile testo " tagurl " sulla tabella categorie. Per farvi un sesempio, questa variabile contiene in un dato caso, la stringa:
computer/masterizzatori-dvd
Ora, quando vado ad utilizzare questo codice, la riga echo "Senza GET >>>>> " . $tagurl; restituisce il valore corretto, cioè computer/masterizzatori-dvd, mentre la riga **echo "<BR>Con GET >>>>> " . $tagurl2; **restituisce solo masterizzatori-dvd.
Riuscite a capire quale sia il problema?
E' una cosa importante farlo con $_GET, perchè mi serve per passare quel parametro all' htaccess!Grazie
-
Dovrebbe dipendere dalla configurazione del php prova a modificare nel file php.ini di solito è in /etc
il valore di register_globals poi riavviando il server funziona.
-
no l'errore sta qui:
$query = "SELECT id_categoria,titolo,tag,tagurl FROM categorie WHERE id = '$cid'";
la soluzione è:
$query = "SELECT id_categoria,titolo,tag,tagurl FROM categorie WHERE id = '" + $cid + "';"
oppure prova a usare $_REQUEST[] invece di $_GET[]
-
@Wantley said:
no l'errore sta qui:
$query = "SELECT id_categoria,titolo,tag,tagurl FROM categorie WHERE id = '$cid'";
la soluzione è:
$query = "SELECT id_categoria,titolo,tag,tagurl FROM categorie WHERE id = '" + $cid + "';"
oppure prova a usare $_REQUEST[] invece di $_GET[]
Ciao, e grazie.
Adesso provo. Però il $_REQUEST poi mi permette di "passare" quella variabile al file Htaccess? Io so che devo farlo per forza con $_GET.[Aggiornato]
Ho provato modificando la query. Adesso $_GET restituisce sempre lo stesso, ma ora anche questa istruzione: **echo "Senza GET >>>>> " . $tagurl; **restituisce la stringa errata!
-
$_REQUEST[] comprende sia $_GET[] che $_POST[]... una specie di megabidone della spazzatura XD
x passare a hataccess in che modo lo fai cn $_GET[]?
se pari il file cn fopen() e usi l'handle del file nn hai problemi nemmeno con la $_REQUEST[],
se invece c'è un altro modo (di cui dubito) nn so se nfunziona con $_REQUEST[]
-
@gigetto said:
Dovrebbe dipendere dalla configurazione del php prova a modificare nel file php.ini di solito è in /etc
il valore di register_globals poi riavviando il server funziona.questa non l'ho proprio capita... potresti essere un pò più chiaro, per favore?
-
@Wantley said:
$_REQUEST[] comprende sia $_GET[] che $_POST[]... una specie di megabidone della spazzatura XD
x passare a hataccess in che modo lo fai cn $_GET[]?
se pari il file cn fopen() e usi l'handle del file nn hai problemi nemmeno con la $_REQUEST[],
se invece c'è un altro modo (di cui dubito) nn so se nfunziona con $_REQUEST[]Anche questa mi è poco chiara... non sono molto esperto
Comunque, sul file PHP ho il redirect 301, che, nel codice che ho postato:
...
$cid= (int) $_GET['cid'];
**echo "Senza GET >>>>> " . $tagurl;
$tagurl2 = $_GET["tagurl"];
echo "<BR>Con GET >>>>> " . $tagurl2;
$urlstring = $tagurl2.'-ele'.$cid.'.html';**reindirizza la pagina verso $urlstring.
Poi, sull'htaccess, ho inserito semplicemente una riga del tipo:Rewriterule nuovapagina.html vecchiapagina.php?cid=$2&tagurl=$1 [L,QSA]
Dovrebbe essere tutto corretto, credo.
-
in quel caso cambiare $_GET[] con $_REQUEST[] nn fa differenza... poi c'è da vedere se c'è un errore da qualche altra parte
-
mm... non va nemmeno con $_REQUEST.
Restituisce sempre la stringa senza la prima parte.
Ma non sarà lo slash il problema?Ti ricordo che la stringa contenuta su tagurl nel database è del tipo:
computer/hard-disk
E guardacaso non restituisce la parte prima dello slash ma solo quella dopo...
-
ti consiglio di leggere questa mini-lezione
http://www.albertobottarini.com/phpschool/?p=8
-
Ciao, Tarini.
Ho letto, comunque ho risolto inserendo una ulteriore IF (che mi hai indicato tu prima ;)9 al mio script. Ora non passo esattamente un parametro all'htaccess con il $_GET, ma adesso se il "parametro" è errato, mi viene restituito un 404.
Ho risolto comunque.
Grazie