Скрипт линейки в подписи

Статус
В этой теме нельзя размещать новые ответы.

winews

Постоялец
Регистрация
25 Мар 2009
Сообщения
50
Реакции
3
не хочет выводить правильный путь на картинку и не кэширует ее

кто знает в чем суть ?

вот три файла

index.php
PHP:
<?
$lines=glob("lines/*.gif");
$begs=glob("begs/*.gif");
?>

<?
if(isset($_GET['l'])):?>
вот url  для линейки<br>

<?$d=mktime(0,0,0,$_GET['m'],$_GET['d'],$_GET['y'])?>

http://<?=$_SERVER['HTTP_HOST']?>/lin.ru/line_<?=$_GET['l']?>_beg_<?=$_GET['b']?>_time_<?=$d?>_text_<?=base64_encode($_GET['t'])?>.jpg
         <br>
или BB код             <br>

[url=http://<?=$_SERVER['HTTP_HOST']?>][img]http://<?=$_SERVER['HTTP_HOST']?>/lin.ru/line_<?=$_GET['l']?>_beg_<?=$_GET['b']?>_time_<?=$d?>_text_<?=base64_encode($_GET['t'])?>.jpg[/img][/url]
<?else:?>
<form method=get>
Линейка <br>
<?foreach($lines as $line):?>
<input name="l" type="radio" value="<?=basename($line)?>"> <img src="<?=$line?>" border=0><br>
<?endforeach?>
Бегунок  <br>
<?foreach($begs as $beg):?>
<input name="b" type="radio" value="<?=basename($beg)?>"> <img src="<?=$beg?>" border=0><br>
<?endforeach?>
 Текст<br>
<input name="t" type="text" value="" id=tx>   <br>
Или выберите <select onchange="document.getElementById('tx').value=this.options[this.selectedIndex].value">
<?foreach(file('slova.txt') as $sl):?>
  <option value="<?=$sl?>"><?=$sl?></option>
<?endforeach?>

</select><br>


Дата начала<br>
<SELECT NAME="d">
<OPTION SELECTED VALUE=1>1
<OPTION  VALUE=2>2
<OPTION  VALUE=3>3
<OPTION  VALUE=4>4
<OPTION  VALUE=5>5
<OPTION  VALUE=6>6
<OPTION  VALUE=7>7
<OPTION  VALUE=8>8

<OPTION  VALUE=9>9
<OPTION  VALUE=10>10
<OPTION  VALUE=11>11
<OPTION  VALUE=12>12
<OPTION  VALUE=13>13
<OPTION  VALUE=14>14
<OPTION  VALUE=15>15
<OPTION  VALUE=16>16
<OPTION  VALUE=17>17
<OPTION  VALUE=18>18
<OPTION  VALUE=19>19
<OPTION  VALUE=20>20
<OPTION VALUE=21>21
<OPTION  VALUE=22>22
<OPTION  VALUE=23>23
<OPTION  VALUE=24>24
<OPTION  VALUE=25>25

<OPTION  VALUE=26>26
<OPTION  VALUE=27>27
<OPTION  VALUE=28>28
<OPTION  VALUE=29>29
<OPTION  VALUE=30>30
<OPTION  VALUE=31>31
</SELECT>
&nbsp;Месяц:<SELECT NAME="m">
<OPTION SELECTED VALUE=1>Январь
<OPTION  VALUE=2>Февраль
<OPTION  VALUE=3>Март
<OPTION  VALUE=4>Апрель
<OPTION  VALUE=5>Май
<OPTION  VALUE=6>Июнь
<OPTION  VALUE=7>Июль
<OPTION  VALUE=8>Август

<OPTION  VALUE=9>Сентябрь
<OPTION  VALUE=10>Октябрь
<OPTION  VALUE=11>Ноябрь
<OPTION  VALUE=12>Декабрь
</SELECT>
&nbsp;Год:<INPUT TYPE="text" NAME="y" size=5 value="<?=date('Y')?>"><BR>
<input type="submit" value="Дальше">
</form>
<?endif?>


img.php
PHP:
<?
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859-5
// преобразование iso8859-5 -> unicode:
for ($result='', $i=0; $i<strlen($s); $i++) {
  $charcode = ord($s[$i]);
  $result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}

header("Content-type: image/jpeg");

$line=imagecreatefromgif('lines/'.$_GET['l']);
$beg=imagecreatefromgif('begs/'.$_GET['b']);
$text=base64_decode($_GET['t']);

$line_sx=imagesx($line);
$line_sy=imagesy($line);

$beg_sx=imagesx($beg);
$beg_sy=imagesy($beg);

$out_h=($line_sy<$beg_sy)?$beg_sy:$line_sy;
$out=imagecreate($line_sx,$out_h+15);

imagecopy($out,$line,0,$out_h-$line_sy ,0,0,$line_sx,$line_sy);

$pixpm=$line_sx/12;
$std=$_GET['d'];
$ed=time();

$sid=3600*24;
$sim=3600*30*24;

$sty=mktime(0,0,0,0,0,date('Y',$std));
$offset=$ed-$std;
$days=intval($offset/86400);
$monsz=0;
while($days>30)
{
    $monsz++;
       $days=$days-30;
}

$beg_x=$monsz*$pixpm;

imagecopy($out,$beg,$beg_x,5,0,0,$beg_sx,$beg_sy);

if($beg_x<$line_sx)
imagefttext($out,10,0,10,$out_h+10,imagecolorallocate($out,0,0,0),'arial.ttf',
win2uni($text.' '.$monsz.' месяцев и '.$days.' дней'.' (c) Zumo' ));
else
imagefttext($out,10,0,10,$out_h+10,imagecolorallocate($out,0,0,0),'arial.ttf',
win2uni('нет лошадки'));

imagejpeg($out);
?>

.htaccess
PHP:
RewriteEngine on
RewriteBase /
RewriteRule ^line_([a-z_0-9\.\-]{3,40})_beg_([a-z_0-9\.\-]{3,40})_time_([0-9]{5,15})_text_(.*)\.jpg$ img.php?l=$1&b=$2&d=$3&t=$4 [R]
 
Попробуйте проставить слэши типа
'lines/'.$_GET['l']
'/lines/'.$_GET['l']
и
HTML:
RewriteRule ^line_([a-z_0-9.-]{3,40})_beg_([a-z_0-9.-]{3,40})_time_([0-9]{5,15})_text_(.*).jpg$ img.php?l=$1&b=$2&d=$3&t=$4 [R]  

RewriteRule ^line_([a-z_0-9\-]{3,40})_beg_([a-z_0-9\-]{3,40})_time_([0-9]{5,15})_text_(.*)\.jpg$ img.php?l=$1&b=$2&d=$3&t=$4 [R,L]
 
cкрипт не пашет:confused:! картинку выводит, текст тоже, но дата на постой "2 месяца и 5 дней":(
 
я пробовал данный скрипт, тоже долго промучился с ним, но правда у меня заработало все. Покопаюсь в закромах, если найду скину архив рабочий :)
 
Для просмотра ссылки Войди или Зарегистрируйся, есть похожий скрипт, но у него криво подпись выводится на изображение (или кракозябры непонятные или вообще ничего). помогите плиз выровнять его. у меня руки под php слабо заточены к сожалению :(

Добавлено через 9 минут
не хочет выводить правильный путь на картинку и не кэширует ее
кто знает в чем суть ?
вот три файла
index.php
этот скрипт не метрик-робин случАем? я с ним тоже пытался воевать, и знакомых подключал, но с лошадкой, которую унесло ветром на... совладать не смогли к сожалению :(
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху