katty
katty

Reputation: 173

php not working properly in mail()

I am trying to send the information as a mail to the admin Below is the mail code and I am reading this using file_get_contents() in another file.

<!doctype html>
<?php
require_once("mysqlconnect.php");
session_start();
?>

<html>
   <head>
   <link rel="stylesheet" href="css/mail.css">
   </head>
   <body>
    <table border="2">
    <?php
        $q="select * from profile where mobile=2147483647";
        $result=mysqli_query($conn,$q);
         while($row = mysqli_fetch_assoc($result)) 
         {
             foreach($row as $key=>$value)
             {
                 if($key=="Email")
                    echo"<tr><th>$key</th><td><a href='mailto:$value;           target='_blank'>$value</td></tr>";
                else
                    echo"<tr><th>".str_replace('_',' ',$key)."</th>         <td>$value</td></tr>";
             }
         }
    ?>

    </table>
</body>
</html>
<?php
  session_destroy();
?>  

The result of this code in the mail is the PHP code itself..

$value) { if($key=="Email") echo"
$key    $value
"; else echo"
".str_replace('_',' ',$key)."   $value
"; } } ?>

Upvotes: 0

Views: 62

Answers (2)

Parantap Parashar
Parantap Parashar

Reputation: 2010

file_get_contents returns the content of a file as string. It does not executes the code inside it.

To use the HTML from a php file you can use php's buffer.

Like this:

ob_start();

include('file_path_here');

$HTML = ob_get_clean();

This will store the output of the file in the $HTML variable.

Upvotes: 2

Jeffrey
Jeffrey

Reputation: 473

file_get_contents literally reads in a file as a string. If you're reading in a PHP file using that method, it'll literally return the code, which is what you're getting.

If you want to send HTML as an e-mail, use something like a template system (sitecrafting.com/blog/top-5-php-template-engines) or build a string and pass it onto the mail() function.

PHP documentation: file_get_contents

Upvotes: 1

Related Questions