Visualizzazione dei risultati da 1 a 3 su 3

Discussione: If e verifica file

  1. #1

    If e verifica file

    Salve,

    dovrei controllare due file con un semplice if. Se il primo esiste allora verifico che sia inferiore a tot kb e quindi passo al secondo file.

    In pratica:

    1) Se ci sono sia A che B e A è > a 10kb si deve bloccare tutto
    2) Se ci sono sia A che B e A è < 10kb viene caricato B
    3) Se c'è A ed è > 10kb e manca B il programma continua

    Codice PHP:
    $a = new SplFileInfo 'fileA.php' );
    $b = new SplFileInfo 'fileB.php' );

    if (!
    $a->isFile() ) || ( $a->getSize() < 10 )
    {

         if (
    $b->isFile() )
         {

              echo 
    "Carico B";
              exit;

          } else {

              echo 
    "Nessuno dei due file è presente";

          }

    } else {

              echo 
    "Posso proseguire";


    Io lo avevo immaginato così il ciclo ( Se A non c'è o è inferiore a 10k si controlla che ci sia B e se c'è si carica altrimenti mancano entrambi e si va in errore. Se A c'è, è superiore a 10 e c'è anche B ci sono tutti e due e si va in errore. Se invece A c'è, è superiore a 10k e manca B si prosegue.

    Purquanto non mi dia errori di nessuno tipo non ho la certezza che sia la logica giusta anche perchè la frase "Posso proseguire" non viene mai stampata.

    Potete darmi un parere ?

    Grazie

  2. #2
    Credo di aver risolto in questo modo.

    In pratica se c'è il file A eseguo una serie di controlli, altrimenti altri.

    Codice PHP:
    if ( $conf->isFile() ) // Se esiste il file di configurazione
    {
            if ( 
    $conf->getSize() < 10 // Se esiste il file di configurazione controllo se è inferiore a 10
            
    {
                    if ( 
    $inst->isFile() ) // Se il file di configurazione esiste ed è inferiore a 10 controllo se esiste il file di setup
                    
    {
                            
    header 'Location: ' INSTALLATION );
                            exit();
                    } else {
                            echo 
    "No configuration file found and no installation code available. Exiting...";
                            exit();
                    }
            
    // Altrimenti se il file di configurazione è superiore ai 10kb controllo se c'è il file di setup
            
    } elseif  ( $inst->isFile() ) {
                    echo 
    "Configuration file and installation file are present. Exiting...";
                    exit();
                    
            }
            
    } else {

            
    // Qualora non esistesse il file di configurazione verifico che esista quello di installazione
            
    if ( $inst->isFile() )
            {
                    echo 
    "Il file di installazione c'è e lo lancio";
                    exit();
            } else {
                    echo 
    "il file di installazione non c'è e vado in errore'";
                    exit();
            }


    In pratica blindo subito un controllo. O il file A c'è e quindi avviene un controllo sulla sua dimensione e di conseguenze sulla presenza o meno del file B o non c'è e controllo subito la presenza del file B e mi regolo di conseguenza.

    Che ne pensate ? Manca di eleganza ? Scritto in modo pessimo ?

    Grazie

  3. #3
    Scusate se riuppo il post ma non ne sto venendo fuori e non capisco il perchè.

    Il punto è che ho due file chiamati A e B. Se ci sono tutti e 2 deve tornare un errore, se mancano tutti e due deve tornare un errore, se c'è solo A il programma prosegue, se c'è solo B il programma va al installer; al momento posso omettere il terzo controllo sulla dimensione.

    Codice PHP:
    $conf = new SplFileInfo "fileA" );
    $inst = new SplFileInfo "fileB" );

    if ( 
    $conf->isFile() ) // Se fileA esiste si esegue il prossimo ciclo if
    {
        if (
    $inst->isFile() ) // Se esistono fileA e fileB si produce un messaggio di errore
        
    {
             echo 
    "Errore. Non possono esistere tutti e due i file assieme";
             exit();
         }
    } else if ( !
    $inst->isFile() ) {    // Se la condizione iniziale non è soddisfatta si viene a questo punto
                                               // e se manca anche fileB si produce un messaggio di errore.
         
    echo "Entrambi i file sono mancanti";
         exit();
    } else {  
    // Altrimenti se manca fileA ma c'è fileB lo si lancia
         
    header 'Location: ' PATH_DEL_PROGRAMMA_DI_SETUP );

    Il problema è che questo spezzone di codice non prende in considerazione la presenza di fileA in quanto sia nel caso che si trovi al suo posto che nel caso in cui non si trovi al suo posto mi continua l'eseguzione dello script anche se fileB è presente.

    Qualcuno sai aiutarmi a capire il problema ?

    Grazie

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.