Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170

    Invio e-mail includendo pagina esterna

    Non mi è venuto un titolo migliore.. in ogni caso ho il classico codice per inviare un e-mail da una pagina web
    codice:
    $subject = "Newsletter dele ". $_POST['giorno'];
    $header="From: mia email>\r\n";
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
    $header .= "X-Sender: email\r\n";  
    $header .= "Reply-to: email\r\n"; 
    $body="testo.....";
    
    mail($mail,$subject,$body,$header);
    il punto è che body ripropone modificato il codice di una pagina già esistente, è possibile invece di riscriverlo tutto "includerlo" (evitando frame se possibile).
    Ho provato varie cose tra cui scrivere proprio
    codice:
    $body=include ("http://www.sito.com/index.php?pro=2&cod=P3V3M1S0F3&cn=2");
    ma non ne è uscito niente di buono

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    potresti mettere $body nel file che includi raccogliendo nella stringa il testo che ti serve e poi richiamare il file con include nella pagina principale

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    NO NO NO ....

    esatto non puo' uscire nulla di buono !!!

    include non e' una funzione, e' un costrutto del linguaggio come echo etc etc... non ritorna nulla, ma esegue una cosa simile ad un copia-incolla del codice incluso rendendo disponbili funzioni o innestando codice da file esterni o testo.


    MA se il file incluso scrive nella response non puoi farci molto... puoi solo usare opportunamente loutput buffer di php per trasformare tutto in stringa e concatenare tale stringa alla mail.

    http://php.net/manual/en/book.outcontrol.php

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Risolto grazie del link
    Codice PHP:
    ob_start(); 
    include 
    'http://www.sito.com'
    $varcontenuto ob_get_contents(); 
    ob_end_clean() 

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Yes thats it ...


  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    mm mi sono accorta che c'è una cosa che non va...

    codice:
    ob_start(); 
    include "http://www.sito.com/webpromo/index.php?pro=".$promo."&cod=".$mypass."&cn=".$centroscelto; 
    $varcontenuto = ob_get_contents(); 
    ob_end_clean();
    l'indirizzo nel codice qui sopra passa 3 variabili: $promo $mypass $centroscelto
    con ognuna di queste variabili la pagina dovrebbe far eseguire delle query, ma nell'email non c'è niente.

    Invece se lo stesso link "completo" viene cliccato nell'email (c'è un link "se non vedi quest'email clicca qui" che ti porta alla pagina web) si apre la pagina con tutte le query eseguite correttamente.

    Ora mi chiedo dove può essere l'errore visto che solo le query collegati alle 3 variabili non vengono eseguite mentre le altre presenti nella pagina on line si.



    spero di essermi spiegata

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    errrr ni .... cmq il problema in questo caso e' la struttura che hai scelto. Usare l'poutput buffer e' una soluzione veloche che non ti famodificare la struttura del codice.

    Io (fossi in te) avrei preferito usare una funzione in questo caso in modo che quando includi il file poi chiami la funzione che ti restituisce la stringa che puoi riutilizzare per qualsiasi cosa, sia essa email o pagina webbe,

    Tagliamo la teta al toro e porta tutto dentro funzione che prende come parametri quello che prima passavi da query string.


    fai cosi :

    1- crea la funzione in un file esterno
    2- se il file che includi e' usato gia' per altri scopi
    2.1- modifica il file includendo il file funzione e avvia la funzione e quindi stampa i risultati nella pagina cosi' per quelle aree non cabmierà nulla
    3- nel file per l'email includi il file funzione senza la gestione dell'output buffer
    4- chiama la funzione e spara il risultato nell'email

    Cosi' semplifichi tutto e rendi riusabile il codice.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Ci ho messo un po' a capire i punti del "tagliamo la testa al toro"

    O meglio non so se ho capito... dici di creare una funzione che, una volta avviata, mi crea la pagina "esterna" (quella che includo ora), e poi invece di bufferizzare di richiamare la funzione nel corpo dell'email?

    Se è così, mi sembra complicata visto che la pagina esterna è piena zeppa di variabili, anche la grafica è tutta estrapolata da database

    Non c'è proprio modo di passare queste 3 variabili?

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    uhm .....

    allora progettare bene il codice serve per non avere pagine zeppe di vars etd ma set di funzioni che operano e generano quello che ti serve on demand. FUnzioni riutilizzabili che ti consentano di avere tutto sotto controllo.

    Nel tuo caso mi sa che la soluzione a funzioni sarebbe troppo incasinata da fare visto quanto mi dici ora .... quindi lasciamo perdere e torniamo alla gestione con output buffer....

    Tornando a noi :

    include "http://www.sito.com/webpromo/index.php?pro=".$promo."&cod=".$mypass."&cn=".$cen troscelto;

    Ti conviene allocare delle var tue prima dello script

    $parameters = array(
    "pro" => $promo ,
    "cod" => $mypass,
    //...etc
    ) ;


    poi nello script aggiungi 1 controllo

    if (isset($parameters))
    {

    }
    Sovrascrivi i valori che invece leggeresti da get...

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Devo fare delle correzioni, dopo le varie prove ho notato che mi prende tutte le eventuali variabili, ovvero le stampa nella "pagina esterna" e nell'email ed esegue le query con tutte le variabili passate tranne quella di $mypass

    Si lo so che è strano deve esserci qualche errore che non riesco a vedere


    Nella pagina esterna c'è
    Codice PHP:
    $promo=$_GET['pro'];
    $codice=$_GET['cod'];


    $utentipromo=mysql_query('SELECT * FROM utenti WHERE PR_ID = "'.$promo.'" AND PG_COD="'.$codice.'"')or die ("Query fallita: ".mysql_error());
    $ut mysql_fetch_array($utentipromo);
    echo 
    strtoupper($ut['PG_NOME'])."
    "
    ;
    echo 
    $promo."
    "
    ;
    echo 
    $codice

    le echo se apro la pagina si vedono tutte anche quella ricavata dalla query, ma nell'email la prima (appunto quella della query) non viene stampata

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.