• User Attivo

    $_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 😉


  • User Newbie

    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.


  • User

    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[]


  • User Attivo

    @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!

    :ciauz:


  • User

    $_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[]


  • User Attivo

    @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?


  • User Attivo

    @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.


  • User

    in quel caso cambiare $_GET[] con $_REQUEST[] nn fa differenza... poi c'è da vedere se c'è un errore da qualche altra parte


  • User Attivo

    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...


  • User

    ti consiglio di leggere questa mini-lezione
    http://www.albertobottarini.com/phpschool/?p=8


  • User Attivo

    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 🙂

    :ciauz: