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

    [php] ottenere source della mia stessa pagina

    Salve ragazzi vorrei capire se è possibile tramite php riuscire a prelevare il sorgente HTML (il php non mi interessa) della stessa pagina "in esecuzione"..mi spiego, vorrei fare una specie di esperimento ed il mio obiettivo è di mandare delle mail in formato html che siano identiche a questa fantomatica pagina del sito..questa pagina viene creata dinamicamente tramite php quindi vorrei sapere se è possibile riuscire a catturare il codice html che verrebbe fuori una volta che la pagina venisse effettivamente caricata sul browser pero PRIMA che questo avvenisse, cosi che al caricamento della pagina questa abbia gia fatto partire tutte le mail con la sua "copia"..spero di essermi spiegato, so bene che ci sono altri modi per ottenere un risultato simile ma come dicevo sopra, è solo un esperimento quindi mi interessa questo modo di procedere (: ciao!

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    con file_get_contenets puoi ottenere il codice html prodotto dalla pagina invocando la pagina stessa dalla variabile $_SERVER. c'è un però. così facendo la riga file_get_contents viene rieseguita ad ogni invocazione facendoti entrare in un ciclo infino. per evitarlo hai bisogno di un discriminante. un flag da settare prima di invocare il file_get_contenets. alla seconda invocazione con il flag settato la file_get_contents non deve essere eseguita. il flag può essere un valore in un file o in db. ad esempio una data prima della quale non esegui il file_get_contents e che aggiorni prima del file_get_contents con una data futura, il flag di mail già inviata. quello che ti pare insomma purchè ti assicuri che il file_get_contents non sia chiamato ciclicamente all'infinito

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  3. #3
    Ciao Grino e grazie per la risposta, è interessante questa soluzione e l'idea che ho è di utilizzare una variabile passata tramite GET come flag, quindi io quando entro in "test.php" o in "test.php?flag=0" eseguo:
    codice:
    ...
    
    if(!isset($_GET['flag']){
       $flag = 0;
    }else{
       $flag = $_GET['flag'];
    }
    
    if($flag==0){
       $url = $_SERVER['PHP_SELF'] . "?flag=1";
       $sorgente = file_get_contents($url);
    }
    
    ...
    concettualmente mi sembra corretto ma può funzionare? e soprattutto:
    questa cosa --> $url = $_SERVER['PHP_SELF'] . "?flag=1";
    in teoria quello che dovrebbe restituire è "test.php?flag=1" no?

  4. #4
    comunque un altro problema che mi viene in mente è che, essendo "file_get_contents()" una funzione fatta a posta per leggere quello che c'è scritto in un file qualsiasi, siamo sicuri che prenderà il sorgente html e non il php? Cioè non è che mi copia la pagina php para para visto che ce l'ha li a portata di mano? Come faccio ad essere sicuro che non appena inizierà a copiare la pagina php sia già stata eseguita e riportata in html dal server?

    Dovrei fare dei test lo so ma ora purtroppo non ne ho modo perdonami

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Guarda il comando ob_start.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Quote Originariamente inviata da VincenzoB92 Visualizza il messaggio
    comunque un altro problema che mi viene in mente è che, essendo "file_get_contents()" una funzione fatta a posta per leggere quello che c'è scritto in un file qualsiasi, siamo sicuri che prenderà il sorgente html e non il php? Cioè non è che mi copia la pagina php para para visto che ce l'ha li a portata di mano? Come faccio ad essere sicuro che non appena inizierà a copiare la pagina php sia già stata eseguita e riportata in html dal server?

    Dovrei fare dei test lo so ma ora purtroppo non ne ho modo perdonami
    esistono i protocolli apposta:

    chiedere

    /file.php?flag=1

    o

    http://tuodominio/file.php?flag=1

    è tutt'altra cosa. La prima richiesta verrà eseguita (a meno che non dica bogliate ma non penso) leggendo da filesystem il file (o almeno provandoci), la seconda è una chiamata http ad una uri ben precisa, quindi "entra e riesce" dal tuo server (cmq, viene vista come una chiamata da un client) e quidni non accede al codice sorgente di file.php ma alla sua risposta http. è un pò come te quando provi il sito in locale facendo http://localhost/file.php non vedi il sorgente php ma vedi l'output html
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    esistono i protocolli apposta:

    chiedere

    /file.php?flag=1

    o

    http://tuodominio/file.php?flag=1

    è tutt'altra cosa. La prima richiesta verrà eseguita (a meno che non dica bogliate ma non penso) leggendo da filesystem il file (o almeno provandoci), la seconda è una chiamata http ad una uri ben precisa, quindi "entra e riesce" dal tuo server (cmq, viene vista come una chiamata da un client) e quidni non accede al codice sorgente di file.php ma alla sua risposta http. è un pò come te quando provi il sito in locale facendo http://localhost/file.php non vedi il sorgente php ma vedi l'output html
    Ciao Santino effettivamente anche io avevo in mente questo tipo di soluzione, che effettivamente è quello che fa al caso mio..comunque quando io eseguo $_SERVER['PHP_SELF'] ottengo un indirizzo del tipo "http://....../pagina.php" no?

  8. #8
    Quote Originariamente inviata da VincenzoB92 Visualizza il messaggio
    Ciao Santino effettivamente anche io avevo in mente questo tipo di soluzione, che effettivamente è quello che fa al caso mio..comunque quando io eseguo $_SERVER['PHP_SELF'] ottengo un indirizzo del tipo "http://....../pagina.php" no?
    http://www.php.net/manual/en/reserve...les.server.php no
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Comunque, io appoggio badaze
    Usa l'output buffer

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.