image chace

meysamz

Member
سلام
من یک عکس را توسط یک فایل پی اچ پی ایجاد می کنم.
اما این عکی کش می کند
با استفاده از کد ها زیر هم موفق نشدم کاری کنم که تصاویر کش نکنند.
آیا راهی است؟

PHP:
            header("Cache-Control: no-cache, must-revalidate");
            header("Pragma: no-cache");
            header("Expires: -1");
 

foranyone

Well-Known Member
اقا میثم یک عدد تصادفی به آخر نام عکس اضافه کنید :rose:

برای توضیحات بیشتر اینجا رو هم ببینید .
 

Webber

Well-Known Member
سلام

مي تونيد موقع دسترسي به تصوير،يك رشته ي تصادفي به آخر آدرس اضافه كنيد.مثلا time

موفقيت
 

meysamz

Member
ممنونم دوستان.
مشکل اینجاست که من کد تصاویر را نمی توانم ویرایش کنم.
این کد من برای سایت نمایشگر پیج رنک گوگل است
که کاربران برای مثال این کد را کپی می کنند:
کد:
<a href="http://www.mypagerank.ir/" title="Google Page Rank" target="_blank"><img src="http://www.mypagerank.ir/?a=getCode&s=Box" border="0px" alt="PageRank" /></a>
ولی زمانیکه که پیج رنک آن ها N/A باشد کش آحرین پیج رنک را نشان می دهد.

کد پی اچ پی صفحه هم:

PHP:
// Create a new PR object
require_once(PATH_LIB . 'class.kPageRank.php');
$pr = new kPageRank($cfg->getVar('path_pr_images'), $cfg->getVar('url_pr_images'));

if((!empty($_REQUEST['a'])) && ($_REQUEST['a'] == 'getCode'))
{
    $style = (!empty($_REQUEST['s'])) ? $_REQUEST['s'] : $cfg->getVar('pr_image_default');
       
    if((!empty($_SERVER['HTTP_REFERER'])))
    {
        $url = $_SERVER['HTTP_REFERER'];

        $pagerank = $pr->getPageRank($url, $pr->hosts[0]);
        $im = $pr->getImage($pagerank, $style);        
        if($im)
        {header('Cache-Control: max-age=1');
                     header("Cache-Control: no-cache, must-revalidate");
            header("Pragma: no-cache");
            header("Expires: -1");
           
            header("Content-type: image/gif");
            imagegif($im);
        }
        else
        {
   
            header('Location:' . $pr->url_images . $style . '/pr0.gif');

        }
    }
    else
    {            
            
            header('Location:' . $pr->url_images . $style . '/pr0.gif');    
    }
}
else
{
    $tpl->parse('body');
    $tpl->parse('pr_form');
    $styles = $pr->getStyles();
    foreach($styles as $key=>$style)
    {
        $images = $pr->getImages($style);
        $tpl->assign_d('pr_image', 'pr_image_src', $images[5]);
        $tpl->assign_d('pr_image', 'pr_style', $style);    
        $tpl->parse_d('pr_image');
    }

    require_once(PATH_INCLUDE . 'footer.php');
    $tpl->render_all();
  
}

من این کار را تو سی شارپ بدون هیچ مشکلی انجام دادم، اما پی اچ پی نتوانستم!
 

foranyone

Well-Known Member
انتهای src نمی تونی عدد تصادفی اضافه کنی ؟

کد:
src="http://www.mypagerank.ir/?a=getCode&s=Box&rand=121215454"
 

meysamz

Member
foranyone ممنون از توجهت، اما معلومه متو جه سئوالم نشدی. البته واقعا من که کم آوردم و نتوانستم.
کاربر این کد را تو سایتش باید کپی کنه
پس اگر من هم اضافه کنم هیچ فایده ای نداره، چون وقتی کد را کپی کنه که دیگه نمی توانم تغییریش بدم.
چیزی که مطمئن هستم اینکه اصلا نمیشه کد خروجی را تغییر داد، یک مشکل در فایل php وجود دارد که باعث کش تصویر می شود.
گفتم با سی شارپ هم نوشتم، اما چنین مشکلی نداره و کار خاصی بابت کش انجام ندادم.
 

foranyone

Well-Known Member
شاید من درست متوجه نشدم معذرت میخوام:wink:

اگه به کاربر این کد رو بدی چطور ؟ بازم مشکل پیش میاد ؟
کد:
<script language="javascript" type="text/javascript">
var num=Math.random()*10000;
document.write('<a href="http://www.mypagerank.ir/" title="Google Page Rank" target="_blank">');
document.write('<img src="http://www.mypagerank.ir/?a=getCode&amp;s=Box&amp;rand='+num+'" border="0px" alt="PageRank" />');
document.write('</a>');
</script>

البته یه راه حل که حجم کدی رو که توسط کاربر کپی میشه بیاره پائین اینه که یه صفحه ی php به نام مثلا code.php با این

کدها بسازی :
PHP:
<?php
echo("<script language=\"javascript\" type=\"text/javascript\">");
$num=rand(1000,100000);
echo("document.write('<a href=\"http://www.mypagerank.ir/\" title=\"Google Page Rank\" target=\"_blank\">');");
echo("document.write('<img src=\"http://www.mypagerank.ir/?a=getCode&amp;s=Box&amp;rand=$num\" border=\"0px\" alt=\"PageRank\" />');");
echo("document.write('</a>');");
echo("</script>");
?>

و بعد کاربر این کد رو کپی کنه :

کد:
<script language="javascript" type="text/javascript" src="code.php"></script>

امیدوارم اینبار دیگه مشکل حل شه !:rose:
 

meysamz

Member
ممنونم، این راه حل مشکل قبلی را حل می کنه و یک مشکل دیگر بوجود میاره
این که تگ لینک نباید داخل document.write باشه یا داخل یک فایل JS باشد.
چون آن موقع سایت ما از بک لینک محروم میشه،( روبوت های گوگل جاوا اسکریپت را دنبال نمی کنند)
راه حلی برای این موضوع داری؟
یعنی یک عکس رندوم تولید بشه. اما با این تفاوت که تگ لینک در جا وا اسکریپت نباشه ولی ما یک جاوا اسکریپت در بالای کد بگذاریم که آن حتما باید باشه. وگرنه اصلا عکس را لود نکنه، میشه؟
 

foranyone

Well-Known Member
چون آن موقع سایت ما از بک لینک محروم میشه،( روبوت های گوگل جاوا اسکریپت را دنبال نمی کنند)
راه حلی که به ذعنم میرسه اینه :
کد:
<script language="javascript" type="text/javascript">
var num=Math.random()*10000;
</script>
<a href="http://www.mypagerank.ir/" title="Google Page Rank" target="_blank">
<script language="javascript" type="text/javascript">
document.write('<img src="http://www.mypagerank.ir/?a=getCode&amp;s=Box&amp;rand='+num+'" border="0px" alt="PageRank" />');
</script>
</a>
 

meysamz

Member
ممنون از راه حلت، اما فکر نمی کنم، مثلا گوگل لینکی که داخلش چیزی قابل خواندن نباشه بهش ارزش بده!
یعنی لینک به یک فایل جاوا اسکریپت اصلا جالب نیست.
در کل کمک بزرگی کردی ممنون. اما باز اگه راه حلی به ذهنت خورد بهم خبر بده.
مشکل الان سئو این روش است.
 

foranyone

Well-Known Member
ممنون از راه حلت، اما فکر نمی کنم، مثلا گوگل لینکی که داخلش چیزی قابل خواندن نباشه بهش ارزش بده!
یعنی لینک به یک فایل جاوا اسکریپت اصلا جالب نیست.
در کل کمک بزرگی کردی ممنون. اما باز اگه راه حلی به ذهنت خورد بهم خبر بده.
مشکل الان سئو این روش است.

خواهش میکنم :rose:

درسته به نظر منم جالب نیست ولی بهتر از اینه که تگ a هم داخل جاوا اسکریپت باشه !!

فکر کنم اگه یه کاراکتر خودمون داخل لینک اضافه کنیم مثل یک نقطه بازم وضعیت بهر شه !
 

meysamz

Member
دوست عزیز خیلی لطف کردی
فقط چون جاوا اسکریپتت خوبه، یک سئوال:
یک کد می خواهم که با قرار گذاشتنش توصفحه بتوانیم چک کنیم یک Id تو صفحه وجود دارد یا نه
و اگر وجود نداشت، مثلا یک Alert بدهد. البته می خواهم با لود صفحه اجرا شده و نیازی به تعریف اینونت نباشه
ممنون
 

foranyone

Well-Known Member
میثم جان اینم راه حل:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="javascript" type="text/javascript">
function check(id){
if (document.getElementById(id) == null) {
alert(id+' : No Exists');
}
else
alert(id+': Exists');
}
</script>
</head>
<body>
<div id="hamid"></div>
<script language="javascript" type="text/javascript">
check('hamid');
check('meysam');
</script>
</body>
</html>
 
آخرین ویرایش:

foranyone

Well-Known Member
ممنون حمید جان، تو آخرشی. می بینم که پارتی بازی هم کردی :d


خواهش میکنم:rose:
:lol: نه به خدا تفاقی بوده:green: هم میثم exists هم حمید exists :lol:

کدهای امروز رو هم به رزومه ای که براتون فرستادم اضافه کنین:cool::green:

موفق باشین میثم جان:rose:
 

جدیدترین ارسال ها

بالا