Помощник
|
Кэш |
Panich
|
Сообщение
#1
|
||
|
|
||
|
|||
Den1xxx |
28.2.2013, 13:35;
Ответить: Den1xxx
Сообщение
#2
|
|
img src="code/my_codegen.php?r= 987612345"
Так генерируется Ваша капча. Пробел убрать не пробовали? Там ещё куча проблем. Когда пишете <head> <title> Первым в заголовке после head должно стоять не title и не keywords как у Вас. Должно стоять <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Чтобы браузер правильно определил кодировку сначала, а потом уже Титлы и т.д. Последние коментарии: вылазят посторонние знаки \n |
|
|
Arks |
28.2.2013, 23:04;
Ответить: Arks
Сообщение
#3
|
|
Den1xxx, по поводу
Первым в заголовке после head должно стоять не title и не keywords как у Вас. Глупости не советуйте, а то люди еще поверят чего доброго.<xs:group name="head.misc"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="script"/> <xs:element ref="style"/> <xs:element ref="meta"/> <xs:element ref="link"/> <xs:element ref="object"/> <xs:element ref="isindex"/> </xs:choice> </xs:sequence> </xs:group> <xs:element name="head"> <xs:annotation> <xs:documentation> content model is "head.misc" combined with a single title and an optional base element in any order </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:group ref="head.misc"/> <xs:choice> <xs:sequence> <xs:element ref="title"/> <xs:group ref="head.misc"/> <xs:sequence minOccurs="0"> <xs:element ref="base"/> <xs:group ref="head.misc"/> </xs:sequence> </xs:sequence> <xs:sequence> <xs:element ref="base"/> <xs:group ref="head.misc"/> <xs:element ref="title"/> <xs:group ref="head.misc"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="i18n"/> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="profile" type="URI"/> </xs:complexType> </xs:element> http://www.w3.org/TR/2002/NOTE-xhtml1-sche...l1-transitional |
|
|
Den1xxx |
1.3.2013, 7:43;
Ответить: Den1xxx
Сообщение
#4
|
|
Arks, я понимаю, что все должны соблюдать стандарты.
Но поскольку не все соблюдают, совет дается исходя из существующих реалий. Разработанный в гонке браузеров "кто быстрее отобразит страницу" Firefox 19.0 пытается до считывания мета с charset "угадать", отображает кракозябры, а потом быстро меняет кодировку на считанную. Ранее Firefox вообще отображал в "угаданной" кодировке то, что стояло до charset Не все же как Вы пользуются исключительно IE, неукоснительно соблюдающим стандарты:) |
|
|
Panich
|
Сообщение
#5
|
|
)))Точно, Мазила постоянно меняла кодировку при загрузке и это хорошо было заметно по тайтелу...
Спасибо большое за советы, но как побороть проблему с которой я обратился в самом начале? Den1xxx, я убрал пробел и ничего не произошло... У Вас тоже ошибка? Дело в том, что у одних пользователей замирает капча, а у других всё работает как нужно! |
|
|
Den1xxx |
1.3.2013, 8:42;
Ответить: Den1xxx
Сообщение
#6
|
|
|
|
|
Panich
|
Сообщение
#7
|
|
Сделал-ничего не помогло. Отписался выше...
На одном из форумов написали:"у вас на странице иногда не одна капча а несколько. пока будет отдаваться последняя - первая уже будет невалидна. тут много чего придется переписать...". Сейчас переписываю страницы, может поможет этот совет! П.С. Мне не понятен тот момент, что у одних капча работает как нужно, а у других нет! У меня ещё позавчера всё было замечательно (так в течении двух месяцев), а сейчас не работает. Не могу понять причину... |
|
|
Den1xxx |
1.3.2013, 9:22;
Ответить: Den1xxx
Сообщение
#8
|
|
Покажите код my_codegen.php
//upd помотрел как грузится страница — запрос идет дважды. Может в index.php до <?php попали какие-то символы? Если все раньше было нормально, смотрите туда где что-то дописывали. |
|
|
Panich
|
Сообщение
#9
|
|
[PHP]<?php
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("code_dir", "my_codegen/"); function generate_code() { $hours = date("H"); $mouns = date("m"); $year_day = date("z"); $minuts = substr(date("H"),0,1); $str = $hours . $mouns . $year_day . $minuts; $str = md5(md5($str)); $str = strrev($str); $str = substr($str, 2, 5); $array_mix = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); srand ((float)microtime()*1000000); shuffle ($array_mix); return implode("", $array_mix); } function img_code() { header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s", 10000) . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Content-Type:image/png"); $linenum = 2; $img_arr = array( "codegen.png", "codegen0.png" ); $font_arr = array(); $font_arr[0]["fname"] = "verdana.ttf"; $font_arr[0]["size"] = 16; $font_arr[1]["fname"] = "times.ttf"; $font_arr[1]["size"] = 16; $n = rand(0,sizeof($font_arr)-1); $img_fn = $img_arr[rand(0, sizeof($img_arr)-1)]; $im = imagecreatefrompng (code_dir . $img_fn); for ($i=0; $i<$linenum; $i++) { $color = imagecolorallocate($im, rand(0, 150), rand(0, 100), rand(0, 150)); imageline($im, rand(0, 20), rand(1, 50), rand(150, 180), rand(1, 50), $color); } $color = imagecolorallocate($im, rand(0, 200), 0, rand(0, 200)); imagettftext ($im, $font_arr[$n]["size"], rand(-4, 4), rand(10, 45), rand(20, 35), $color, code_dir.$font_arr[$n]["fname"], generate_code()); for ($i=0; $i<$linenum; $i++) { $color = imagecolorallocate($im, rand(0, 255), rand(0, 200), rand(0, 255)); imageline($im, rand(0, 20), rand(1, 50), rand(150, 180), rand(1, 50), $color); } ImagePNG ($im); ImageDestroy ($im); } img_code(); ?>[/PHP] Дописывал за этот период только теги в шапке, про которые Вы писали ранее... |
|
|
Den1xxx |
1.3.2013, 10:35;
Ответить: Den1xxx
Сообщение
#10
|
|
У меня в этом случае
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s", 10000) . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Content-Type:image/png"); стоит просто [PHP]header("Content-type: image/png"); [/PHP] и работает всегда и везде — капча не кешируется. Дело в том, что если адрес динамический (на конце типа ?r=bla-bla), браузер понимает что адрес динамический и не кеширует картинку. А вот это header("Last-Modified: " . gmdate("D, d M Y H:i:s", 10000) . " GMT"); говорит о том, что картинка не изменялась с 01 Jan 1970 Может просто уберите этот мусор? Оставьте только 1 нужную строчку. |
|
|
|
Текстовая версия | Сейчас: 25.4.2024, 7:44 |