Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1

    leggere file da un secondo server con giusta formattazione

    Ciao a tutti!

    Sul sito http://www.pluto.it dovrei creare un bottone "visualizza file"
    il file si trova all'indirizzo http://www.pippo.it

    Con l'ultima versione di PHP5, la funzione fopen dovrebbe essere in grado di leggere file che si trovano su un altro server.

    la funzione "visualizza file" dovrebbe assumere un forma di questo tipo:

    Codice PHP:
    $a fopen("http://pippo.it/file.txt","r"false$context); //contenxt contiene i permessi di lettura del file
    while (!feof($a)) {
        
    print_r(fgets($a4096));
        
    print_r("
    "
    );

    fclose($a); 
    Cosa dovrei fare per visualizzare correttamente la tabulazione?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    domanda:

    fare un semplice file_get_contents($file) ?

    comunque per la formattazione basta che metti il contenuto del file dentro i tag <pre> </pre>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    facile, semplice, preciso!

    Codice PHP:
    $context stream_context_create(array(
        
    'http' => array(
          
    'method'  => 'POST',
          
    'header'  => "Authorization: Basic " base64_encode("xxx".':'."xxx")
        )
      ));
      
    $ret file_get_contents("http://www.pippo.it/file.txt"false$context);
     
      
    print_r("<pre>".$ret."</pre>"); 
    Grazie!

    Altra domanda:
    con questa tecnica riesco a visualizzare qualsiasi file, tranne i file con estensione php (penso perchè vengono interpretati non appena chiamati).
    Cosa dovrei fare per poter leggere il sorgente dei file php?

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    è assolutamente impossibile ciò... se fosse possibile allora tutti i siti del mondo dove gira php sarebbere violabili

    devi fare un inclusione cross server?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    per leggere il sorgente ... cambia estensione alla pagina da php a phps o a qualche altra estensione

    ovviamente non saranno più interpretati e/o interpretabili e verranno sempre inviati al browser cosi come sono

    PS:
    ma invece di tutta quella roba li, più semplicemente
    file_get_contents("http://userass@www.pippo.it/file.txt");


  6. #6
    è assolutamente impossibile ciò... se fosse possibile allora tutti i siti del mondo dove gira php sarebbere violabili devi fare un inclusione cross server?
    Ecco... più o meno si...
    Ti spiego la mia situazione...
    Utilizzo Outlet ORM PHP (lo conoscete?) ed ogni volta che modifico qualche tabella su qualche server, devo anche modificare a manina i modelli (php) e le mappature (xml). Le operazioni da fare sono sempre le stesse identiche!
    Così ho pensato di realizzare un sistema che modifica in maniera automatica questi file.
    Mi rendo conto che è un operazione molto pericolosa, ma forse con una gestione fatta bene sui permessi posso creare un sistema sicuro... cosa ne pensate?

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    guarda, la soluzione migliore potrebbe essere quella dio creare una sorta di client/controller , in cui il client determina file,tipo di operazione, contenuti e password in POST, e il controller opera sul file interessato

    un esempio fatto con get potrebbe essere:

    client su pippo.it:
    Codice PHP:
    send_controller('http://www.pluto.it/controller.php','ciccio','test.php','read');

    function 
    send_controller($to,$pass,$file,$op,$cont=false){
        
    $query"file=".urlencode($file).
                
    "&pass=".urlencode($pass).
                
    "&op=".urlencode($op).
                
    "&cont=".urlencode($cont);
        
        
        return 
    file_get_contents("$to?$query");
        } 
    mentre il controller che è pluto.it/controller.php
    Codice PHP:
    if(!empty($_GET)){
        foreach(
    $_GET as $g_key=>$g_val){
            
    $_GET[$g_key] = urldecode($g_val);
            }
        }



    if(isset(
    $_GET['pass']) && $_GET['pass'] == 'ciccio'){
        
    client_command($_GET);
        }

    die();

    function 
    client_command($data){
        switch(
    $data['op']){
            case 
    'read':
                echo 
    file_get_contents($data['file']);
            break;
            case 
    'write':
               echo 
    file_put_contents($data['file'],$data['cont']);
            break;
            }
        } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    Si giusto! E' proprio quello che volevo fare! Grazie!
    faccio qualche prova, se funziona a dovere metto un bel risolto!

  9. #9
    per leggere il sorgente ... cambia estensione alla pagina da php a phps o a qualche altra estensione
    Avendo a disposizione una shell digiterei il comando
    mv myFile.php myFile.phpBACK
    quindi leggerei il file
    infine
    mv myFile.phpBACK myFile.php

    Mi domando se è possibile fare questo utilizzando PHP, purtroppo la funzione
    rename(myFile.php , myFile.phpBACK);
    non credo faccia al caso mio.
    E' possibile fare cio'? Come?

    (quello che sto tentando di realizzare non è indispensabile, ma mi farebbe molto comodo! Pensate sia una cavolata? spero di no...)

  10. #10
    Non è una cavolata, ma lo stai implementando nel modo sbagliato

    Se i siti stanno sullo stesso server usa dei link simbolici altrimenti l'unica soluzione è creare un sistema di aggiornamento automatico che, in caso di file aggiornati, provveda a scaricare i nuovi file

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.