Visualizzazione risultati 1 fino 10 di 10

Discussione: Passaggio di parametri tra pagine ($_GET)

  1. #1
    Guest

    Predefinito Passaggio di parametri tra pagine ($_GET)

    Premetto che sono un principiante e che sto studiando il PHP tramite il libro di Stobart chiamato PHP e MySql - Guida Completa.
    Adesso: questa guida tanto completa non è

    Stavo quindi cercando di attuare un passaggio di parametri tramite link. Il classico: http://sito.altervista.org/pag2.php?ID=numeroID.
    Stando a quanto dice il libro, dovrei usare la funzione $_GET ma purtroppo la spiegazione su questa funzione è veramente striminzita (tipo 5 righe) e non apporta nessun tipo di esempio.

    Chiedo quindi a Voi, facendo venia in caso la domanda sia stata posta in precedenza e io non me ne sia accorto.
    Partiamo dal presupposto, quindi, che io abbia creato una tabella nel db chiamata LUOGO con i seguenti valori:

    IDLuogo | NomeLuogo | DescrizioneLuogo
    1 Venezia Descrizione Venezia
    2 Roma Descrizione Roma
    ecc ecc ecc

    Non starò a spiegare tutta la base del codice, basti comunque dire che in caso un utente lanciasse - in una pagina che continiene una chat chiamata indexchat.php e che funziona - un comanda, comparirebbe: UTENTE X ti invita a leggere la descrizione di TOT LUOGO.
    Fino a qui nulla di strano. Funziona benissimo.
    Il problema è collegarlo alla pagina dopo (pag2.php) con un link dove cliccando su "TOT LUOGO" si dovrebbe aprire l'altra pagina con la Descrizione del Luogo.
    Il link quindi dovrebbe riconoscere PRIMA l'ID del luogo e, una volta aperta la pagina seguente (pag2.php?ID=IDLuogo) descrivere il luogo.

    Sapreste spiegarmi la logica del comando? (:
    (Ho cercato di essere il più chiaro possibile ;))

    EDIT:

    Mi sono accorto che l'ultimo pezzo è scritto da c a n i.
    Riassumo: una volta lanciato il comando UTENTE X ti invita a leggere la descrizione di TOT LUOGO (Venezia/Roma ecc), come posso assocciare/creare il link (A TOT LUOGO) con il corretto IDLuogo e rimandarlo alla pagina con la descrizione=
    Ultima modifica di weamarnati : 05-08-2011 alle ore 14.08.24

  2. #2
    Guest

    Predefinito

    Ciao, se hai ad esempio pag2.php?ID=1 potrai scrivere il numero 1 nella pagina utilizzando appunto $_GET:
    Codice PHP:
    <?php
    echo $_GET['ID'];
    ?>
    Questo è utile per avere una sola pagina che svolga infinite funzioni.
    Come Altervista (esempio: index.php?msg=10).
    Ciao e buono studio!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Ciao, se hai ad esempio pag2.php?ID=1 potrai scrivere il numero 1 nella pagina utilizzando appunto $_GET:
    Codice PHP:
    <?php
    echo $_GET['ID'];
    ?>
    Questo è utile per avere una sola pagina che svolga infinite funzioni.
    Come Altervista (esempio: index.php?msg=10).
    Ciao e buono studio!
    Intanto grazie della risposta
    La logica che però non comprendo - e che è alla base di tutto - è come posso associare al link l'ID corrispondente al luogo ;)
    Cioè, devo prima inserire un

    Codice PHP:
    SELECT * FROM Luoghi WHERE IDLuogo = $IDLuogo
    oppure basta creare:

    Codice HTML:
    <a href="pag2.php?ID=$IDLuogo">
    e poi nella pagina 2 creare il $_GET?

    (Come potete vedere ho proprio delle lacune con questo comando perché nel libro non è scritto n u l l a e nei vari siti web si parla solo di un passaggio nella stessa pagiina )

  4. #4
    Guest

    Predefinito

    Ciao, non ho capito cosa vuoi ottenere.
    Hai un esempio?
    Da quel che ho capito vuoi far comparire cliccabili dei link che portano ad una pagina che parla dettagliatamente di quel "luogo"?
    Puoi fare tutto nella stessa pagina, se vuoi.
    Comunque a te serve capire come ricavare $_GET['ID'] oppure vuoi creare un ciclo con while?
    Spiegati meglio.
    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Ciao, non ho capito cosa vuoi ottenere.
    Hai un esempio?
    Da quel che ho capito vuoi far comparire cliccabili dei link che portano ad una pagina che parla dettagliatamente di quel "luogo"?
    Puoi fare tutto nella stessa pagina, se vuoi.
    Comunque a te serve capire come ricavare $_GET['ID'] oppure vuoi creare un ciclo con while?
    Spiegati meglio.
    Ciao!
    Esattamente.
    In sostanza ho implementato all'interno di una pagina, una chat.
    Se ad esempio io scrivessi: %VENEZIA% (come roma, brescia, milano -> tutti luoghi che sono presenti nel db nella tabella LUOGHI), nella chat compare:

    UTENTE A TI HA CONSIGLIATO VENEZIA.

    Venezia, nel db, ha un valore di ID 1
    Roma ha un valore di ID 2
    ecc ecc ecc

    Come associo VENEZIA all'ID 1, ROMA all'ID 2 ecc all'altra pagina?

    Ti mando uno stamp affinchè sia più chiaro ;)
    http://i55.tinypic.com/wui1hi.png

    EDIT:

    Anche passarmi una guida sulle query parametriche, solo per capire i vari passaggi
    Ultima modifica di alemoppo : 06-08-2011 alle ore 19.11.13 Motivo: Non scrivere messaggi consecutivi: usa il tasto "Edita!"

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,872

    Predefinito

    Non riesco a capire cosa non ti è chiaro:
    Codice PHP:
    <?php
    //vario codice dove inizializzi $IDLuogo
    ?>
    [...]<a href="pag2.php?ID=<?= $IDLuogo; ?>">leggi qui la descrizione</a>
    nella pagina pag2.php, puoi fare la query:

    Codice PHP:
    SELECT * FROM Luoghi WHERE IDLuogo = $_GET['ID']

    (ovviamente, prima dovresti verificare se esiste $_GET['ID'] con la isset(), poi prima di fare la query, per evitare le sql_injection, dovresti usare la mysql_real_escape_string()).

    Ciao!
    Ultima modifica di alemoppo : 06-08-2011 alle ore 19.22.36

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non riesco a capire cosa non ti è chiaro:
    (ovviamente, prima dovresti verificare se esiste $_GET['ID'] con la isset()).
    Sono un idiota!
    Avevo tralasciato questo
    Grazie mille a tutti e 2

  8. #8
    Guest

    Predefinito

    Credevo di aver risolto, e invece mi ritrovo ancora con un problemino. Non mi valorizza l'ID. Vado a spiegare passo passo:

    - Inizializzo la variabile "IDLuogo":

    Codice PHP:
    /* Preparo la Query SQL */
    $sql = "SELECT * FROM Luoghi";
    $sql .= " WHERE ( IDLuogo = $IDLuogo )";

    /* InviO la Query SQL al DB attivo */
    $result = mysql_query($sql, $con);
    if (!
    $result) {
    echo(
    "<p>Errore nell’esecuzione della query: " . mysql_error() . "</p>");
    exit();
    }
    - Dopo di ché attuo la query parametrica:

    Codice PHP:
    $n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR=´white´>".$rs[´Mittente´]."</FONT> <FONT COLOR=´red´>".$rs[´Locazione´]."</FONT> ".$rs[´Testo´]."</FONT> (<a href=´pag2.php?ID=".$IDLuogo."´>leggi qui la descrizione del luogo</a>)</td></tr></table>";
    E mi ritrovo con questo risultato nel momento in cui vado a cliccare sul lino pag2.php

    http://i52.tinypic.com/ebcwlf.png.

    Aiuto

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,872

    Predefinito

    ..Adesso è un orario un po strano, e potrei dire cavolate.
    Comunque, è strano che $IDLuogo sia vuoto; cioè, se è vuoto, non dovrebbe trovare nessuna riga nel database. Non hai mostrato dove viene inizializzato, ma presumo che lo hai fatto nello script.

    Prova a sostituire così:

    Codice PHP:
    $n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR=´white´>".$rs['Mittente']."</FONT> <FONT COLOR=´red´>".$rs['Locazione']."</FONT> ".$rs['Testo']."</FONT> (<a href=´pag2.php?ID=".$IDLuogo."´>leggi qui la descrizione del luogo</a>)</td></tr></table>";
    ..Comunque ripeto che è strano che quella variabile sia vuota. Prova a stamparla (da sola: con echo $IDLuogo;) per vedere in realtà cosa vale...

    p.s: quei tag obsoleti (<font>, align, color, face...) mi fanno venire il voltastomaco

    Ciao!
    Ultima modifica di alemoppo : 14-08-2011 alle ore 03.02.52

  10. #10
    Guest

    Predefinito

    Meglio fare un mini cast a quel GET onde evitare problemi di sicurezza nel codice:

    Codice PHP:
    $Variabile = (int) $_GET['ID'];
    Ultima modifica di alemoppo : 14-08-2011 alle ore 12.36.23 Motivo: + tag [php]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •