PDA

View Full Version : نمایش ایمیل به صورت تصویر



mohammad-gh
شنبه 10 آبان 1393, 19:16 عصر
در حال نوشتن یک سیستم آگهی هستم
می خواهم ایمیل آگهی دهندگان برای چلوگیری از جمع اوری توسط روبات ها به صورت عکس نمایش پیدا کند

لطفا راهنمایی کنید با چه کدی این کار رو کنم!!

Unique
شنبه 10 آبان 1393, 21:52 عصر
با کتابخونه gd ! توی اولین مثال توضیح داده (http://php.net/manual/en/function.imagettftext.php).

mohammad-gh
یک شنبه 11 آبان 1393, 06:16 صبح
سلام و تشکر
من این کد رو استفاده کردم اما می دونید مشکلش چیه ,

<?php
// Set the content-type
header('Content-Type: image/png');

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
1- با تگ مشکل داره header('Content-Type: image/png');
2- وقتی هم اون رو غیر فعال گردم نتیجه این شد
125206

bagherok
یک شنبه 11 آبان 1393, 10:50 صبح
فونت arial.ttf رو هم ضمیمه فایل کرید؟

Unique
یک شنبه 11 آبان 1393, 14:34 عصر
من هم فکر کنم مشکل از فونت باشه ! باید فونت را بگذراین کنار اسکریپت و یا آدرس مستقیم بدین. خودش نمیتونه بره از تیو سفولدر fonts کار را انجام بده !

mohammad-gh
یک شنبه 11 آبان 1393, 17:39 عصر
نه مشکل از فونت نیست
چون فونت رو گذاشتم و فرقی نکرد
اصلا کد مستقیم رو قبول نمیکنه
حالا یه سوال
فکرکنیم این کدها رو تو جایی که می خواهیم اوردیم
چطور باید از اون استفاده کنیم
یعنی کدوم رو باید فراخوانی کنیم تا تصویر بیاد

mohammad-gh
یک شنبه 11 آبان 1393, 17:58 عصر
سلام
کد رو فقط تو یه صفحه دادم درست نشون میده
http://starforosh.com/sample.php

ولی وقتی می خوام و صفحه ای مربوطه استفاده کنم این ارور رو میده

125244

Unique
یک شنبه 11 آبان 1393, 19:47 عصر
همراه با اطلاعات عکس داره اطلاعات دیگه ای هم ارسال میشه که فرمت عکس را به هم میریزه ! مثلا notice یا warning میده. log را فعال کنید و ببینید مشکل از کجاست.

mohammad-gh
دوشنبه 12 آبان 1393, 08:47 صبح
نشد , خیلی پس و پیش کردم
یه کد بهتر نبود برای اینکار
یا روشی که نشه کپی کرد ایمیل رو

marys_farahani
دوشنبه 12 آبان 1393, 10:34 صبح
نشد , خیلی پس و پیش کردم
یه کد بهتر نبود برای اینکار
یا روشی که نشه کپی کرد ایمیل رو


پی دی اف کنید.

MMSHFE
دوشنبه 12 آبان 1393, 15:29 عصر
نشد , خیلی پس و پیش کردم
یه کد بهتر نبود برای اینکار
یا روشی که نشه کپی کرد ایمیل رو

دستور header رو که محتوا رو png میکنه (خط 3) بردارین و آدرس مستقیم تصویر رو تو مرورگر وارد کنید ببینید چه خطایی نشون میده. خطا رو بگذارین تا راهنمایی کنیم.

arta.nasiri
دوشنبه 12 آبان 1393, 17:20 عصر
به 2 حالت میتونید مشکلتون رو حل کنید.

1 - قبلش بافر رو خالی کنید ob_end_clean();
2 - همون کدهای بالا رو تو یک صفحه ای قرار بدید بعدش بصورت لینک ازش استفاده کنید

<img src="http://localhost/image.php?text=success">
تو روش دوم بازم ایمیل تو مقدار queryString هست که میتونید encode کنید (base64_encode)

MMSHFE
دوشنبه 12 آبان 1393, 17:33 عصر
...تو روش دوم بازم ایمیل تو مقدار queryString هست که میتونید encode کنید (base64_encode)

میشه id آگهی رو با QueryString بفرستن و توی فایل image.php رکورد رو بخونن و آدرس ایمیل رو استخراج کنن.

arta.nasiri
دوشنبه 12 آبان 1393, 17:37 عصر
اینم یه روش دیگه


function makeImage($text){
ob_start();
// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = $text;
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);

$output = base64_encode(ob_get_contents());
ob_end_clean();
return $output;
}
echo 'test <br><br>';
echo '<img src="data:image/png;base64,'.makeImage('success').'">';

mohammad-gh
سه شنبه 13 آبان 1393, 19:43 عصر
با همون رو ش get مشکل حل شد
ممنون