Sorgu dizesi ile file_get_contents

2 Cevap php

i am trying to send email from php i have one php file with all values & other php template file.

(Her iki dosya da aynı sunucu üzerinde bulunmaktadır)

i örneğin php şablon dosyanın içeriğini almak için file_get_contents kullanıyorum

   $url="emil_form.php";
   $a="uname";
  if(($Content = file_get_contents($url. "?uname=".$a)) === false) {
   $Content = "";
    }

   ...... EMAIL Sending Code ..........

ve burada emil_form.php (e-posta şablon dosyası) için kod

    Your Name is : <?php $_GET['uname']; ?>

so once i got data in $Content i can send it by email. but i am getting error unable to open file....

ne istediğim şablon php dosyasına özgün php dosyadan geçiş veri ve değişken depolanan şablonun çıktı ne olacak bu yüzden e-posta ile gönderebilirsiniz.

bunu nasıl yapabilirim?

Teşekkürler

2 Cevap

The real problem would be that you try to read a local file with a http query string behind it. The file system don't understand this and looks for a file called "emil_form.php?uname=uname". $_GET / $_POST / etc only works over a http connection.

Şablonunuzda "%% NAME%%" gibi bir yer tutucu koymak ve şablonu okuduktan sonra bu değiştirmeye çalışın.

<?php
$url = "emil_form.php";
$a   = "uname";
if(($Content = file_get_contents($url)) === false) {
   $Content = "";
}
$Content = str_replace('%%NAME%%', $a, $Content); 
// sending mail....

Şablon gibi görünecektir:

Your Name is: %%NAME%%

Please note that you had a filename error in $url which wss trying to load emil_form.php.

İkinci bir sorun, $ url için çağrı için kullandığınız yol gibi görünüyor. Aksini yapmak zorunda kalabilirsiniz herhangi çiftleşmiş kaçınarak, doğru dosyayı ayrıştırmak amacıyla bir full URL yapmayı deneyin. RTT yavaş olacağını, ancak herhangi bir kodu değiştirmek zorunda olmaz. Bu gibi görünecektir:

   $url = 'http://www.mysite.com/email_form.php';
   $a = "uname";
   if(($Content = file_get_contents($url. "?uname=".$a)) === false) {
       $Content = "";
   }