Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di marmos
    Registrato dal
    Nov 2007
    Messaggi
    34

    problemi con in_array()

    Scusate, io starei cercando di cercare in un array e vedere se esiste una variabile come quella scritta dall'utente.
    Ecco il mio codice:
    <?php
    $_POST["Var1"]=$Var1;
    $array=file("example.txt");
    if (in_array($Var1,$array))
    {
    echo "...";
    }
    else
    {
    echo "...";
    }
    ?>
    il problema è che mi ritorna sempre false.
    Perchè???Qualcuno mi sa dire il perchè?
    Il codice mi sembra giusto....sto impazzendo
    Grazie mille per qualsiasi interessamento!
    Marmos

  2. #2

    Re: problemi con in_array()

    Originariamente inviato da marmos
    Scusate, io starei cercando di cercare in un array e vedere se esiste una variabile come quella scritta dall'utente.
    Ecco il mio codice:
    <?php
    $_POST["Var1"]=$Var1;
    $array=file("example.txt");
    if (in_array($Var1,$array))
    {
    echo "...";
    }
    else
    {
    echo "...";
    }
    ?>
    il problema è che mi ritorna sempre false.
    Perchè???Qualcuno mi sa dire il perchè?
    Il codice mi sembra giusto....sto impazzendo
    Grazie mille per qualsiasi interessamento!
    Marmos
    prova a fare un trim su $var1, che non ci sia qualche spazio bianco che disturba...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116

    Re: problemi con in_array()

    <?php
    $_POST["Var1"]=$Var1;
    ?>
    questo non dovrebe essere messo cosi?

    Codice PHP:
    $Var1=$_POST['Var1']; 
    e in_array la variabile tra virgolette

    Codice PHP:
    if (in_array("$Var1",$array)) 
    oppure no?

  4. #4
    Utente di HTML.it L'avatar di marmos
    Registrato dal
    Nov 2007
    Messaggi
    34
    Codice PHP:
    $_POST["Var1"]=$Var1
    e
    Codice PHP:
    $Var1=$_POST['Var1']; 
    sono la stessa cosa. Almeno a me ha sempre funzionato.(e funziona anche in questo caso perchè io nel print ho inserito anche $var1 e me la stampa senza problemi...)
    Ho provato a mettere le virgolette nella funzione in_array() ma il risultato è sempre uguale.
    Ho anche provato a fare un trim di $var1 senza risultati...
    é possibile che ci sia qualcosa di sbagliato in "file()"???? :master:
    Marmos

  5. #5
    Non può essere la stessa cosa.
    Se scrivi:
    Codice PHP:
    $_POST['Var1']=$Var1
    Tu alla variabile passata via post assegni il valore di $var1.
    Se $var1 non è dichiarata, il tuo script assegnerà sempre un valore nullo a $_POST, di fatto azzerando la variabile passata via post.
    Ti può funzionare solo se fai una uguaglianza (==), ma non ha lo stesso significato.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6

    Re: Re: problemi con in_array()

    Originariamente inviato da killua85
    questo non dovrebe essere messo cosi?

    Codice PHP:
    $Var1=$_POST['Var1']; 
    hai perfettamente ragione.. non ci avevo neanche fatto caso

  7. #7
    Utente di HTML.it L'avatar di marmos
    Registrato dal
    Nov 2007
    Messaggi
    34
    Grazie delle informazioni!
    Scusate la mia ignoranza! Comunque anche così non funziona!
    Ecco il mio codice modificato nel suo contesto:
    Codice PHP:
    <?php
    $PastSimple
    =$_POST["PastSimple"];
    $array=file("prova.txt");
    if (
    in_array($PastSimple,$array))
    {
    echo 
    "evvai!!!";
    }
    else
    {
    echo 
    "spiacente $PastSimple è sbagliato!!!";
    }
    ?>
    Ebbene ecco la verità:
    Sto cercando di costruire un sito con un programma che interroga sui verbi irregolari di inglese
    Il fatto è che non volendo utilizzare il database mysql x scelta personale mi sto complicando un po' la vita mi sa.....
    Se qualcuno è in grado di aiutarmi a trovare una soluzione gliene sarei grato
    Marmos

  8. #8
    Come è scritto il file prova.txt?

    Vedi, tu con file("prova.txt"); apri il file, ma non ci vai a leggere dentro... quantomeno, non estrapoli nessun array, per cui non puoi usare poi in_array() per una cosa che non è un array!
    Come sono separate le varie parole?

    Posta un esempio di prova.txt che alla fine una soluzione la troviamo!


    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it L'avatar di marmos
    Registrato dal
    Nov 2007
    Messaggi
    34
    Prova.txt è scritto mandando a capo ogni parola apposta per poter utilizzare la funzione file()
    come faccio per trasformarlo in array?
    non basta file("....txt")???
    :master:
    per esempio:
    past_simple.txt:

    became
    did
    bought
    ecc...
    ecc...

    Ho fatto il form nell'html in cui il visitatore scrive $PastSimple;
    poi dal php:
    Codice PHP:
    <?php
    $PastSimple
    =$_POST["PastSimple"];
    $array=file("verbi_past.txt");
    if (
    in_array("$PastSimple","$array"))
    {
    echo 
    "evvai!!!";
    }
    else
    {
    echo 
    "spiacente, $PastSimple e' sbagliato!!!";
    }
    ?>
    Grazie dell'aiuto!!! non so come farei senza di voi!!

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    prova cosi speriamo funzioni

    Codice PHP:
    <?php
    $var1
    =$_POST['var1'];
    if (!
    $p_file fopen("example.txt","r")) {
    echo 
    "Spiacente, non posso aprire il file miofile.txt";
    } else {
    while(!
    feof($p_file))
    {

    $linea fgets($p_file255);
    $linea=trim($linea);
    $linea=strtolower($linea);
    $linea=str_replace(" ","_",$linea);
    $row[]= "$linea";
    }
    fclose($p_file);
    }

    if(
    in_array($var1,$row))
    {
    echo 
    "trovato";

    }
    else
    {
        echo 
    "non trovato";
        
    }
     

    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.