Visualizzazione risultati 1 fino 11 di 11

Discussione: if ($var1 == $var2), con $var2 passata via URL

  1. #1
    Guest

    Predefinito

    vorrei fare in modo che uno script php confronti una variabile inviata dal browser tramite l'indirizzo e una ricavata da un file.
    variabile inviata dal browser: prova.php?testoscelto=ciao
    variabile nel file:$testo = (fgets($testidisp,255));
    if ($testo == $testoscelto)
    Ho provato + volte ma questo if nn si verifica mai, ho provato anche a vedere il valore delle due variabili con
    echo "$testo";
    echo "$testoscelto";
    e sono uguali.
    Qualcuno sa aiutarmi..?
    Grazie...ciao! :D

  2. #2
    Guest

    Predefinito

    Posti il codice completo?

  3. #3
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Credo di aver capito: ler variabili inviate per indirizzo web stanno, col loro nome, nell'array superglobale $_GET, quindi modifica così il tuo codice:
    if ($testo == $_GET['testoscelto'])
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  4. #4
    Guest

    Predefinito

    ho provato a modificare $group in $_GET['group'], ma nn funziona lo stesso... :(
    Il file che apre è strutturato in questo modo
    ------
    Nome gruppo musicale
    Numero di testi disponibili (es. 5)
    Nome Canzone
    Traduzione nome canzone
    Link testo canzone
    Link traduzione canzone
    -----
    ecco il codice completo..spero di nn aver cancellato per sbaglio qualche carattere.

    <?
    $testidisp = fopen("pag_include/testi_trad.lst", "r");
    while(!feof($testidisp))
    {
    if ($group <> '')
    {
    $leggigruppo = (fgets($testidisp,255));
    $numtesti = (fgets($testidisp,255));
    echo $leggigruppo;
    echo $_GET['group'];
    if ($leggigruppo == $_GET['group'])
    {
    $nomegruppo = $leggigruppo;
    for ($scrive = 1 ; $scrive <=$numtesti ; $scrive++)
    {
    $nomecanz = (fgets($testidisp,255));
    $nomecanztrad = (fgets($testidisp,255));
    $linktesto = (fgets($testidisp,255));
    $linktrad = (fgets($testidisp,255));
    echo "<div class='elencotesti'>$nomecanz ($nomecanztrad) <a class='elencotestilink' href='$linktesto'>Testo</a> / <a class='elencotestilink' href='$linktrad'>Traduzione</a></div>";
    }
    }
    else
    {
    echo "non funziona";
    }
    }
    }
    fclose($testidisp);
    ?>

  5. #5
    Guest

    Predefinito

    variabile nel file:$testo = (fgets($testidisp,255));
    quando leggi la var dal testo, molto probabilmente ti carichi anche degli spazi o i caratteri di fineriga e ritorno carrello che con echo non vedi.....

  6. #6
    Guest

    Predefinito

    ecco così dovrebbe funzionare. Ho creato una funzione chomp che in php non esiste ma in perl si hghghg per togliere le andate a capo e i caratteri di spazio che non si vedono
    ecco il codice ora dovrebbe andare

    <?

    function chomp($String)
    {
    $TheEnd=strchr($String,"\n");
    $Result=substr($String,0,$TheEnd-2);
    return $Result;
    }

    $testidisp = fopen("testi_trad.lst", "r");
    while(!feof($testidisp))
    {
    if ($group <> '') {
    $leggigruppo = (fgets($testidisp,255));
    $numtesti = (fgets($testidisp,255));
    echo chomp($leggigruppo)."<br>";

    if (chomp($leggigruppo) == $_GET['group']) {
    $nomegruppo = $leggigruppo;
    for ($scrive = 1 ; $scrive <=$numtesti ; $scrive++)
    {
    $nomecanz = (fgets($testidisp,255));
    $nomecanztrad = (fgets($testidisp,255));
    $linktesto = (fgets($testidisp,255));
    $linktrad = (fgets($testidisp,255));
    echo "<div class='elencotesti'>$nomecanz ($nomecanztrad) <a class='elencotestilink' href='$linktesto'>Testo</a> / <a class='elencotestilink' href='$linktrad'>Traduzione</a></div>";
    }
    }
    else
    {
    echo "non funziona";
    }
    }
    }
    fclose($testidisp);
    ?>

    naturalmente personalizzalo, io ho cambiato per esempio il link del file .lst perchè l'ho testato in locale ciaux ;)

  7. #7
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Forse il chomp del Perl è più specifico per "cioncare" solo i caratteri newline '\n' non saprei..
    comunque segnalo la funzione trim() o meglio ancora in questo caso rtrim() che rimuove i caratteri particolari (whitespaces) tra cui anche \n solo a destra della stringa.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  8. #8
    Guest

    Predefinito

    esattamente, ma con quella funzione ho tolto sia i new line che i campi vuoti. L'ho testata e funziona ;););)

  9. #9
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Ah certo, che funzioni non ne avevo dubbi.. comunque laddove esista una funzione primitiva che faccia la stessa cosa, non sarebbe male usarla.

    ..E sottolineo laddove! (anche perché penso sia la prima volta in vita mia che lo scrivo :D )
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  10. #10
    Guest

    Predefinito

    eheheheh ma certo hai ragione :D :D :D

  11. #11
    Guest

    Predefinito

    grazie mille... con rtrim() funziona perfettamente... :D meno male!!
    ciao!!

Regole di scrittura

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