Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Salvare un file in una cartella definita

    Ciao a tutti.
    Sto utilizzando questo codice, trovato qua nel forum, per salvare un dump del mio database.
    codice:
    <?php
    include("config.php");  
    
    //codice per il backup  
    $_PVTVARS['sql_backup'] = "";  
    $query_sql = "SHOW TABLE STATUS;";  
    $query=mysql_query($query_sql);  
    $_PVTVARS['sql_backup'] .= "#################################\n";  
    $_PVTVARS['sql_backup'] .= "# Backup di gestione_studio #\n";  
    $_PVTVARS['sql_backup'] .= "#################################\n";  
    $_PVTVARS['sql_backup'] .= "#\n";  
    $_PVTVARS['sql_backup'] .= "# Backup del " . date ("d_m_Y") . "\n";  
    $_PVTVARS['sql_backup'] .= "#\n";  
    $_PVTVARS['sql_backup'] .= "\n";  
    $_PVTVARS['sql_backup'] .= "\n";  
    while ($result=mysql_fetch_row($query)) {  
    $result2=mysql_fetch_array(mysql_query("SHOW CREATE TABLE {$result[0]};"));  
    $_TABLE['name']=$result[0];  
    $_TABLE['query']=ereg_replace("[\n]*","",$result2[1]);  
    $_PVTVARS['sql_backup'] .= "#\n";  
    $_PVTVARS['sql_backup'] .= "# Drop table, if exists, {$_TABLE['name']} and recreate it\n";  
    $_PVTVARS['sql_backup'] .= "#\n";  
    $_PVTVARS['sql_backup'] .= "DROP TABLE IF EXISTS {$_TABLE['name']};\n";  
    $_PVTVARS['sql_backup'] .= "{$_TABLE['query']};\n\n";  
    $_PVTVARS['sql_backup'] .= "#\n";  
    $_PVTVARS['sql_backup'] .= "# Insert statament for {$_TABLE['name']}\n";  
    $_PVTVARS['sql_backup'] .= "#\n";  
    $query_sql2="SELECT * FROM {$_TABLE['name']};";  
    $query2=mysql_query($query_sql2);  
    while ($result2=mysql_fetch_row($query2)) {  
    $_PVTVARS['sql_backup'] .= "INSERT INTO {$_TABLE['name']} VALUES (";  
    $_INSERT = array();  
    while (list($key,$value)=each($result2)) {  
    $value=str_replace("#","",$value);  
    $value=str_replace("--","--",$value);  
    $value=str_replace("'","\'",$value);  
    $_INSERT[] = "'{$value}'";  
    }  
    $_PVTVARS['sql_backup'] .= implode(",",$_INSERT);  
    $_PVTVARS['sql_backup'] .= ");n";  
    }  
    }  
    
    $data_attuale = date("Ymd");
    $name = "salvataggio".$data_attuale.".sql";  
    
    if(ereg("MSIE ([0-9].[0-9]{1,2})", $_SERVER["HTTP_USER_AGENT"])) {  
    
    header("Content-Type: application/octetstream");  
    header("Content-Disposition: inline; filename="$name");  
    header("Expires: 0");  
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  
    header("Pragma: public");  
    
    } else {  
    
    header("Content-Type: application/octet-stream");  
    header("Content-Disposition: attachment; filename=$name");
    header("Expires: 0");  
    header("Pragma: no-cache");  
    
    } 
    
    echo "",$_PVTVARS['sql_backup']; 
    ?>
    Se non mi sbaglio, il Content-Disposition non accetta percorsi in cui salvare automaticamente il file, perciò chiedevo, qualcuno è a conoscenza di metodi per salvare automaticamente il file .sql che genero in una precisa cartella?

    Grazie!

  2. #2
    Perché usi gli header?
    Io eliminerei questa parte:

    Codice PHP:
    if(ereg("MSIE ([0-9].[0-9]{1,2})"$_SERVER["HTTP_USER_AGENT"])) {  

    header("Content-Type: application/octetstream");  
    header("Content-Disposition: inline; filename="$name");  
    header("
    Expires0");  
    header("
    Cache-Controlmust-revalidatepost-check=0pre-check=0");  
    header("
    Pragma: public");  

    } else {  

    header("
    Content-Typeapplication/octet-stream");  
    header("
    Content-Dispositionattachmentfilename=$name");
    header("
    Expires0");  
    header("
    Pragmano-cache");  



    echo "",
    $_PVTVARS['sql_backup']; 
    e la sostituirei con questa:
    Codice PHP:
    $folder 'miacartella/';
    file_put_contents($folder.$name$_PVTVARS['sql_backup']); 
    Naturalmente in questo caso la cartella deve essere già stata creata in precedenza e deve avere i permessi di scrittura...
    Michele
    King Of The Kill

  3. #3
    Ti ringrazio, è proprio la soluzione che cercavo!


  4. #4
    Di niente!
    Michele
    King Of The Kill

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 © 2024 vBulletin Solutions, Inc. All rights reserved.