Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    ciclo if [principiante]

    Ciao a tutti, sto facendo un po' di esercitazioni banali con cicli e file .txt ma incorro in un errore di cui non riesco a venire a capo...


    codice:
    $datiutente = fopen("iscritti.txt", "r");
    $rigafile = fgets($datiutente, 1024);
    $campiriga = explode("|",$rigafile);
    $nome = $campiriga[0];
    $cognome = $campiriga[1];
    $email = $campiriga[2];
    $sesso = $campiriga[3];
    
    echo "$sesso";
        
    if ($campiriga[3]=="uomo") 
            $titolo = "Signore";
        else 
            $titolo = "Signora";
    
    
    echo "$titolo";

    Il formato del file di testo è banale:

    nome|cognome|email|sesso
    Alex|Rossi|abc@def.it|uomo

    ma l'output che ottendo è

    uomo Signora !!

    Ho inserito quell'echo dopo mille tentativi per controllare che la variabile contenga correttamente "uomo" e l'output finale me lo conferma, ma in pratica la condizione del ciclo viene vista non vera... ma perchè?!

  2. #2

    Re: ciclo if [principiante]

    Originariamente inviato da sitodue
    Ho inserito quell'echo dopo mille tentativi per controllare che la variabile contenga correttamente "uomo" e l'output finale me lo conferma, ma in pratica la condizione del ciclo viene vista non vera... ma perchè?!
    Perche' in un file di testo ogni riga e' terminata da un carattere di a capo, quindi l'ultimo campo non e' "uomo" ma "uomo\n". Quando leggi righe da un file di testo usa la funzione trim().

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    Re: Re: ciclo if [principiante]

    Originariamente inviato da k.b
    Perche' in un file di testo ogni riga e' terminata da un carattere di a capo, quindi l'ultimo campo non e' "uomo" ma "uomo\n". Quando leggi righe da un file di testo usa la funzione trim().
    o_O

    Grazie per la risposta... stavo impazzendo!
    Come si usa questa funzione? puoi farmi un esempio sul codice che ho postato io?

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Grazie 1000, ho risolto;

    Mi daresti una dritta anche su quest'altro errore? Ho aggiunto il campo ID all'inizio del file, che ho inizializzato in questo modo:

    0|nome|cognome|email|sesso

    Riesco a scrivere nel file ma il contatore/ID passa solo da 0 a 1 e poi resta piantato su 1.
    Credo che il problema sia nel ciclo while... non sono sicuro che in questo modo legga tutte le righe del file... credo piuttosto che mi legga la prima e basta...

    codice:
    $iscritti = fopen("iscritti.txt", "a");
    while ($rigafile = fgets($iscritti, 1024)) 
        $campiriga = explode("|",$rigafile);
    
    $id = $campiriga[0];
    $id ++;
        
    $nome = $_POST["nome"];
    $cognome = $_POST["cognome"];
    $email = $_POST["email"];
    $sesso = $_POST["sesso"];
            
    $datiiscrizione = "$id|$nome|$cognome|$email|$sesso\n";
    fwrite($iscritti, $datiiscrizione);

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.