Rispondi 
$_GET che non va...
Modalitą discussione Modalitą lineare
18-03-2007, 19:30
Messaggio: #1 (permalink)
L'avatar di kru kru
Apprendista
**
Registrato: Feb 2007
Messaggi: 83
Reputazione:

$_GET che non va...


Ciao, ragazzi.

Ecco il problema:

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 = $_REQUEST["tagurl"];
echo "<BR>Con GET >>>>> " . $tagurl2;
//$urlstring = $tagurl.'-ele'.$cid.'.html';


Come vedete, ho una variabile tagurl sul database. Questa variabile contiene delle stringhe tipo:

computer/hard-disk

Devo cercare di recuperarla con $_GET, e non posso fare altrimenti, ma non riesco proprio! Nelle ultime righe, c'? il debug, per verifica. Come vedete, verifico sia richiamando l'array tagurl normalmente (e funziona perfettamente), sia richiamandolo con $_GET. In questo caso, per?, anzich? restituirmi:

computer/hard-disk

mi restituisce solo hard-disk

Come mai? Sar? forse un problema con / ?


Vuoi posizionare il tuo sito in prima pagina sui principali motori di ricerca? In prima pagina sui motori - Web Agency e posizionamento -

Ultima modifica di kru : 18-03-2007 alle ore 19:35.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
19-03-2007, 19:43
Messaggio: #2 (permalink)
Helmakil
Forumista Giovane
***
Registrato: Dec 2006
Messaggi: 134
Reputazione:

RE: $_GET che non va...


ci sono diversi errori, comunque. Se il codice ? cos?, senza nessuna modifica, ecco i primi errori che vedo:
->$cid non ? settato (se non ti da errore ? probabilmente perch? hai register_globals abilitato, e il ?cid=valore anzich? scrivere su $_GET['cid'] scrive $cid)
-> Non delimiti le chiavi di array utilizzando ' o "
Insomma, alla fine non ho capito, comunque, cosa vuoi ottenere.
Quello che il codice (che comunque da quello che vedo non ? fatto benissimo) fa, ? questo:
1. Recupera dal database i dati di una cadegoria con id = cid (che non ? settato, boh)
2. Svolge un'altra query sulla stessa tabella dove per? l'id ? uguale all'id_padre (procedura misteriosa...)
3. Ne recupera il titolo
4. Setti cid (che per? hai usato sopra)

Alla fine... Cosa vuoi fare? spiegati bene, magari fai un esempio pratico, e ti potr? dire di pi? 18

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
19-03-2007, 20:40
Messaggio: #3 (permalink)
L'avatar di kru kru
Apprendista
**
Registrato: Feb 2007
Messaggi: 83
Reputazione:

RE: $_GET che non va...


Ciao, e grazie per la risposta.

Allora, non so se il codice ? malfunzionante, o meno. Comunque, veniamo al dunque.

Codice:
$query = "SELECT id_categoria,titolo,tag,[b]tagurl[/b] FROM categorie WHERE id = '$cid'";
$result=mysql_query($query, $db);
while ($row = mysql_fetch_array($result)) {
$cat = $row[titolo];
$tag = $row[tag];
[b]$tagurl = $row[tagurl];[/b]
$id_padre = $row[id_categoria];
}


Questa ? la query che serve a recuperare le variabili che mi interessano.
Una ? cid, e con questa non ho nessun problema.
L'altra, tagurl, ? quella che mi da problemi.

Codice:
$cid= (int) $_GET['cid'];
[b]echo "Senza GET >>>>> " . $tagurl;[/b]
$tagurl2 = $_REQUEST["tagurl"];
[b]echo "<BR>Con GET >>>>> " . $tagurl2;[/b]
//$urlstring = $tagurl.'-ele'.$cid.'.html';


Questo ? quello che devo fare, cio? recuperare il contenuto di tagurl tramite $_GET (e mi serve per forza con $_GET).
In questo codice, come puoi vedere, ho inserito 2 echo, per visualizzare il risultato ottenuto.
Nel primo caso, l'espressione echo ($tagurl); mi restituisce il corretto valore di tagurl, cio?, per esempio:

computer/hard-disk

la seconda echo, invece, quella con $_GET, mi restituisce solo:

hard-disk

Perch


Vuoi posizionare il tuo sito in prima pagina sui principali motori di ricerca? In prima pagina sui motori - Web Agency e posizionamento -

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
19-03-2007, 20:51
Messaggio: #4 (permalink)
Helmakil
Forumista Giovane
***
Registrato: Dec 2006
Messaggi: 134
Reputazione:

RE: $_GET che non va...


e quindi vuoi recuperare tagurl tramite get passandogli un parametro o come? O.o e se ? passandogli un parametro, come mai tutte quelle query da sopra? Nel primo caso, comunque, non pu? che essere corretto: $tagurl viene settata dal valore del database. Nel secondo caso non saprei dirti perch? ti compare solo hard-disk... forse ? davvero un problema con /, ma mi sembra quantomeno strano. Ti consiglio comunque di uppare da qualche parte un esempio pratico, cos?che si possa vedere, perch? non ho capito molto bene il problema. Se spiegassi cosa vuoi fare (non cosa vorresti che il programma faccia, ma cosa vuoi ottenere!) probabilmente ti potrei aiutare di pi? XD

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
19-03-2007, 21:51
Messaggio: #5 (permalink)
L'avatar di kru kru
Apprendista
**
Registrato: Feb 2007
Messaggi: 83
Reputazione:

RE: $_GET che non va...


Scusami, forse mi sono spiegato male io...
L'esempio per? te l'ho fatto.
Altro non posso farti, perch? quel tagurl recuperato con $_GET mi serve solo per passare il parametro la file HTACCESS.

provo a spiegarmi meglio. Lascia perdere tutto il codice che ti ho postato in precedenza.

Ho una tabella Categorie del database.
Ad ogni categoria ? associato un ID ( cid )
Ad ogni categoria ? associato anche un nome ( tagurl )

Semplicemente, voglio recuperare questo "nome" tagurl con $_GET anzich? con l'istruzione $tagurl = $row[tagurl];

L'esempio ? quello in cui:
Nella categoria Hard Disk ho:

cid = 35
tagurl = computer/hard-disk (queste stringhe le ho inserite da me nel database tramite il pannello admin del sito!)

Il problema ? che se richiamo semplicemente con

Codice:
$tagurl = $row[tagurl];

funziona tutto, perfettamente.
Se richiamo con

Codice:
$tagurl = $_GET['tagurl'];

mi viene restituita la stringa senza computer/ !!!


Vuoi posizionare il tuo sito in prima pagina sui principali motori di ricerca? In prima pagina sui motori - Web Agency e posizionamento -

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
19-03-2007, 22:32
Messaggio: #6 (permalink)
Helmakil
Forumista Giovane
***
Registrato: Dec 2006
Messaggi: 134
Reputazione:

RE: $_GET che non va...


Ah, perfetto, ho capito. XD
Pensavo fosse una cosa pi? problematica. Allora, probabilmente dipende dal tuo web server. pensandoci, la / pu? essere letta come inizio di una cartella, e magari la fine di un valore get. Prova a sostituirla con qualcos'altro.
Per verificare, comunque, fai printf($_GET); e se anche l? il valore ? sbagliato vuol dire che l'utilizzo della / all'interno di get ? proibito. Al limite usa delle htmlentities 18

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
19-03-2007, 23:00
Messaggio: #7 (permalink)
L'avatar di kru kru
Apprendista
**
Registrato: Feb 2007
Messaggi: 83
Reputazione:

RE: $_GET che non va...


Purtroppo, non posso sostituirla, a meno di non farlo con str_replace, ma cos? non riesco a passarla all'htaccess.

Quella di printf($_GET); non l'ho capita.
Devo scriverla al posto di echo ($tagurl); per verificare come va? Se ? cos?, non mi scrive nemmeno hard-disk. Scrive solo Array (?).

Grazie dell'aiuto :07:

Vuoi posizionare il tuo sito in prima pagina sui principali motori di ricerca? In prima pagina sui motori - Web Agency e posizionamento -

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
20-03-2007, 20:07
Messaggio: #8 (permalink)
Helmakil
Forumista Giovane
***
Registrato: Dec 2006
Messaggi: 134
Reputazione:

RE: $_GET che non va...


in qualsiasi punto del codice, scrivi printf($_GET)... ti dovrebbe dare tutti i dati contenuti in get.
Comunque ho capito cosa vuoi fare: vuoi fare il mod_rewrite indicando come "cartella" (che in realt? sarebbe la categoria principale, no?) computer, e come sotto file (o cartella, non so) hard-disk.
Se ? cos? allora ? pi? semplice
a) settare direttamente computer come statico (ossia, il mod rewrite contempler? computer come parte dell'url riscritto e non come variabile) e usare hard-disk come "chiave"
b) passare i valori di get nel seguente modo: maincat=computer&cat=hard-disk e poi successivamente "riassemblarli" con uno /, per non fare tanti casini 18
prova e fammi sapere

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
20-03-2007, 20:36
Messaggio: #9 (permalink)
L'avatar di kru kru
Apprendista
**
Registrato: Feb 2007
Messaggi: 83
Reputazione:

RE: $_GET che non va...


Ciao, e grazie per il tuo aiuto.

Quota:
in qualsiasi punto del codice, scrivi printf($_GET)


Purtroppo, avevo capito bene. Come ho scritto in precedenza, mi restituisce solo la scritta Array :51:

Quota:
Comunque ho capito cosa vuoi fare: vuoi fare il mod_rewrite indicando come "cartella" (che in realt? sarebbe la categoria principale, no?) computer, e come sotto file (o cartella, non so) hard-disk.


:07: exact wink

Quota:
a) settare direttamente computer come statico (ossia, il mod rewrite contempler? computer come parte dell'url riscritto e non come variabile) e usare hard-disk come "chiave"
b) passare i valori di get nel seguente modo: maincat=computer&cat=hard-disk e poi successivamente "riassemblarli" con uno /, per non fare tanti casini 18


Purtroppo, non posso settare "Computer" come statico (ci avevo gi? pensato wink ), perch? essendo, come hai scritto sopra, la categoria principale, deve diventare "Mondo-Apple" per i componenti MAC, per esempio. E' altrettanto vero, per?, che la cat principale la posso reperire anche su un'altra variabile dedicata.

Comunque, ho risolto in altro modo.
Lo scopo del passare via GET le variabili era quello di avere un URL "fisso".
In pratica, se prima modificavo uno dei parametri dal browser, la pagina restava comunque quella :03:
per esempio, se anzhich? computer/hard-disk-ele35.html scrivevo
coer/-dk-ele35.html, la pagina mi veniva aperta uguale.

Ho risolto inserendo un IF sul codice, che restituisce un 404 in questo caso wink

Grazie per l'aiuto. Sei stato molto gentile, oltre ad essere molto preparato. :07:

ciao!


Vuoi posizionare il tuo sito in prima pagina sui principali motori di ricerca? In prima pagina sui motori - Web Agency e posizionamento -

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
20-03-2007, 20:51
Messaggio: #10 (permalink)
Helmakil
Forumista Giovane
***
Registrato: Dec 2006
Messaggi: 134
Reputazione:

RE: $_GET che non va...


Stranissima la cosa del $_GET... S?, ho capito qual'? il problema... Sicuramente si pu? risolvere anche in altro modo, ma se sei riuscito con un if tanto meglio 18 ? stato un piacere darti una mano wink

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
13-07-2007, 11:40
Messaggio: #11 (permalink)
Namaless
Forumista Attivo
****
Registrato: Nov 2007
Messaggi: 320
Reputazione:

RE: $_GET che non va...


Ma secondo me siete 2 pazzi xD

Allora la cosa e' molto semplice, usi una funzione che modifica il titolo e te lo converte in seo_compatible e prendi i tadi da id.

Per provare quello che dico:

http://www.indreamers.org/page/688/mad-m...py-vs--spy

e' uguale a http://www.indreamers.org/page/688

ed e' ugualmente funzionante con http://www.indreamers.org/page/688/namaless-e-un-genio

Tutto dipende da come hai configurato il file htaccess :13:

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
Rispondi 

Discussioni simili
Discussione: Autore Risposte: Letto: Ultimo messaggio
  Mostrare file contenuti in una cartella definita con $_GET Damiano 7 299 20-05-2008 22:41
Ultimo messaggio: Damiano

$_GET che non va...
Guarda versione stampabile
Invia la discussione a un amico
Sottoscrivi la discussione
Aggiungi discussione alle favorite

Regole di Scrittura
Tu non puoi inserire nuovi messaggi.
Tu non puoi rispondere ai messaggi.
Tu non puoi inviare messaggi.
Tu non puoi modificare i tuoi messaggi.
Il codice HTML č Disattivato.
Il codice MyCode č Attivato.
Gli Smilies sono Attivato.
Il codice [IMG] Attivato.
Vai al Forum:

Data e Ora attuale: 29-08-2008, 07:39

Contattaci - Punto Web