t0ze Posted April 4, 2012 at 10:57 PM Report #447646 Posted April 4, 2012 at 10:57 PM Boa noite, O contexto é o seguinte; estou num form onde faço upload de ficheiros para um cliente especifico. Neste processo, sai um email a notificar o cliente de que foi carregado um ficheiro novo. Para enviar o email estou a usar a class phpmailer (smtp_basic) e lá pelo meio tenho isto $body = file_get_contents('layout.php'); Neste ficheiro layout está a estrutura html que irá seguir no email. Agora o que eu estou a tentar conseguir é; Passar uma variável para o layout, para que seja embutida no layout (por exemplo o nome do ficheiro carregado). Experimentei fazer assim; $body = file_get_contents('layout.php?nomeficheiro=$nomeficheiro'); Com erro: Pq não conseguiu localizar o ficheiro layout.php?nomeficheiro=$nomeficheiro. também experimentei com variavel de sessão ... sem sucesso. Alguém já passou por isto? Alguém pode dar uma dica aqui 😛
HappyHippyHippo Posted April 5, 2012 at 06:55 AM Report #447666 Posted April 5, 2012 at 06:55 AM a função get_file_contents pega no conteúdo textual do ficheiro e retorna uma string com esse conteúdo ... é absurdo o que estás a fazer ... não mistures um ficheiro de texto com um resultado do processamento através do PHP de uma ficheiro de texto eu poderia dizer para fazeres um : eval(file_get_contents("layout.php")); mas presuponho que dentro do ficheiro "layout.php" tenhas includes levando a erros de multiplas definições o que podes fazer é teres um ficheiro de texto com o layout do conteúdo do email com algum tipo de "tags" que podem ser alteradas, do género: $layout = file_get_content("layout.txt"); // le o conteúdo do ficheiro para a variável layout $layout = str_replace("{nome}", $nome, $layout); // altera todas as instâncias da string "{nome}" para o valor da variável $nome IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
simonoop Posted April 5, 2012 at 11:14 AM Report #447706 Posted April 5, 2012 at 11:14 AM Não é assim tão disparatado. Eu faria isso com um qualquer sistema de templates mas experimenta lá: <?php $url = "http://www.teste.com/x.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array('nome'=>'eufrásio')); $result = curl_exec($ch); curl_close($ch); echo $result; ?> <?php # # este é o x.php # echo "olá ". $_POST['nome']; ?> Nunca é demais lembrar para não esquecer as questões de segurança e tal! 😛
infopc Posted April 5, 2012 at 11:40 AM Report #447716 Posted April 5, 2012 at 11:40 AM Podes usar ob, assim no teu layout podes usar variaveis e fazer echos layout.php <h1>Email para: <?php echo $email?></h1> $email = 'teste@exemplo.pt'; ob_start(); include 'layout.php'; $body = ob_get_contents(); ob_end_clean() O que não tem solução, solucionado esta...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now