Я играю с идеей добавления отслеживания электронной почты к веб-сервису, который я создал для небольшого бизнеса клиента. Я планировал сделать решение встроенного изображения (со ссылкой на образ на моем сервере) – если у кого-то еще не будет лучшего метода, но когда я использую тег изображения, ссылающийся на страницу PHP на моем сервере, он загружает значок «сломанное изображение» , Как я могу сделать это действительным изображением?
Вот код для почтовой страницы PHP:
<?php $body = "<html>Hello there!". "<img src='http://mysite.com/track.php?name=bob' />". "</html>"; $subject = "Tracking on ".date('Ymd H:i:s'); $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: webmaster@mysite.com' . "\r\n"; mail('my_email@gmail.com',$subject,$body,$headers); ?>
И вот код отслеживания:
<?php include('database_connection.php'); $query = "INSERT INTO tracking SET name='".$_GET['name']."', date=NOW()"; mysql_query($query); // Tried this, but it doesn't work: echo "<img src='http://mysite.com/photos/image.jpg'>"; ?>
в<?php include('database_connection.php'); $query = "INSERT INTO tracking SET name='".$_GET['name']."', date=NOW()"; mysql_query($query); // Tried this, but it doesn't work: echo "<img src='http://mysite.com/photos/image.jpg'>"; ?>
Если вы собираетесь использовать такой скрипт PHP, ему нужно вернуть данные изображения, а не только тег изображения HTML. Самый простой способ сделать это будет примерно так:
<?php header("Content-Type: image/jpeg"); readfile("image.jpeg"); do_all_your_tracking_stuff();
Обратите внимание, что это сначала возвращает данные изображения, так что почтовый клиент может сразу отобразить его, а не ждать завершения ваших SQL-запросов.
Простой поиск google работал бы …
header('Content-Type: image/jpeg'); readfile('path');
Вам просто нужно использовать свою интуицию: на что вы ссылаетесь в теге изображения? Вы ссылаетесь на источник изображения. Фактический файл изображения. Что вы делаете в коде? Повторение кода HTML с другим источником изображения. Но клиентский браузер ожидает изображение, а не больше кода HTML.