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

    malfunzionamento della funzione fopen

    ciao a tutti e grazie mille in anticipo per ogni messaggio di aiuto che riceverò...

    posto il codice "incriminato":
    Codice PHP:
    <?php
    //reference to the log file
    $mylog_file;
    //path to the log directory
    $path_logDirectory $_SERVER['DOCUMENT_ROOT'] . '/' $siteName .  '/specifiche/log';
    //if the log directory exists
    if(file_exists($path_logDirectory) == TRUE)
    {
        
    //path to the log file
        
    $path_logFile $path_logDirectory '/' myExtractFileLogName($siteName);
        
        
    //if the log file already exists
        
    if(file_exists($path_logFile) == TRUE)
            
    //opening the log file in append mode
            
    $mylog_file fopen($path_logFile,'a');
        
    //if the log file not already exists
        
    else
            
    //creating and opening the log file in write mode
            
    $mylog_file fopen($path_logFile,'w');
            
        
    //for each log message content into $_SESSION superglobal array
        
    foreach ($_SESSION as $key => $value)
            
    //writing into log file the content of the $_SESSION superglobal array
            
    fwrite($mylog_file$value);
    }
    //extract log file name
    function myExtractFileLogName($siteName)
    {
        
    //checking the index whence cut the string
        
    $cutIndex strrpos($siteName,'.');

        
    //creating the log file name    
        
    return substr($siteName0$cutIndex) . '_' substr($siteName$cutIndex+1) . '_' date('Y-m-d') . '.log';
    }
    ?>
    ora vi spiego il problema:
    devo scrivere il contenuto dell'array superglobale $_SESSION in un file di log.
    ho conmpiuto una serie di verifiche per controllare che tutte le variabili avessero il valore corretto. tutto quadra. l'array $_SESSION è visibile (il codice che vi ho postato è incluso in un altro file con una sessione aperta) e ha il contenuto previsto, le variabili con i path puntano alle directories e ai file corretti.

    il problema è che, quando viene il momento di fopen (che sia per creare il file o per aprirlo in append), la funzione fa cilecca!
    non viene ne creato, ne aperto il file e, di coseguenza, non viene restituito l'handle da usare in fwrite...

    cosa può essere?!?

    buona vita.
    Alessandro

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Sei sicuro che il path del file sia giusto e che hai i permessi di scrittura?
    Se hai php >=5.2 prova a mettere una stampa di error_get_last() dopo la fopen

    Codice PHP:
    //if the log file already exists 
        
    if(file_exists($path_logFile) == TRUE
            
    //opening the log file in append mode 
            
    $mylog_file fopen($path_logFile,'a'); 
        
    //if the log file not already exists 
        
    else 
            
    //creating and opening the log file in write mode 
            
    $mylog_file fopen($path_logFile,'w'); 
        
    print_r(error_get_last()); 

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.