PDA

Просмотр полной версии : Не работает капча после переноса на другой хост!


updart
28.07.2010, 16:16
После переноса сайта на другой хост перестали отображаться картинки и капча, с картинками вроде разобрался (в .htaccess удалил Options -Indexes), а вот капча показует один только фон, переменную $_SESSION[$code_name.CURRENT_SITE] не видит или просто не записывает.

<?php


if ( !isset($random) ) {
$random = time();
}
if ( !isset($sid) ) {
session_start();
$sid = session_id();
}

function set_captcha($code_name = 'hc_code', $max_digits = 0) {
global $hc_max_digits;
if ( !defined('HC_CODE_ASSIGNED') ) {
if ($max_digits == 0) {
$max_digits = $hc_max_digits;
}
if ( CAPTCHA_ALLOW_CHARS ) {
$hc_code = strtoupper(pwd_generator($max_digits));
} else {
$hc_code = '';
for ($i = 0; $i < $max_digits; $i++ ) {
$hc_code = $hc_code.rand(0, 9);
}
}

$_SESSION[$code_name.CURRENT_SITE] = $hc_code;
define('HC_CODE_ASSIGNED', true);
} else {
$hc_code = $_SESSION[$code_name.CURRENT_SITE];
}
return $hc_code;
}

function check_captcha($value, $code_name = 'hc_code') {
global $hca_max_digits;
if ( (defined('IN_ADMIN_VAR') && (IN_ADMIN_VAR == true)) || !defined('IN_ADMIN_VAR') ) {
$result = ( (strlen(trim($value)) > 0) && (strlen(trim($_SESSION[$code_name.CURRENT_SITE])) > 0) && ($value == $_SESSION[$code_name.CURRENT_SITE]) );
set_captcha($code_name, $hca_max_digits);
return $result;
} else {
$result = ( (strlen(trim($value)) > 0) && (strlen(trim($_SESSION[$code_name.CURRENT_SITE])) > 0) && ($value == $_SESSION[$code_name.CURRENT_SITE]) );
set_captcha($code_name);
return $result;
}
}

?>

<?php

require_once('../site_conf.php');
require_once(COMMON_BASE_PATH.'core/user/config.php');

$hc_code = $HTTP_SESSION_VARS['admin_code0'];

$img_path = $base_path.$hca_back_image;

$img = ImageCreateFromJpeg($img_path);
$img_size = getimagesize($img_path);
$fw = imagefontwidth($hca_font);
$fh = imagefontheight($hca_font);

$x = ($img_size[0] - strlen($hc_code) * $fw )/2;
$y = ($img_size[1] - $fh) / 2;

$color = imagecolorallocate($img,
hexdec(substr($hca_code_color,0,2)),
hexdec(substr($hca_code_color,2,2)),
hexdec(substr($hca_code_color,4,2))
);
imagestring($img, $hca_font, '0', '0', $hc_code, $color);
imagejpeg($img);

?>

я в PHP не очень, так что строго не судите, гугол не помог :wacko:

casp86
02.08.2010, 15:21
а ошибку какую пишет ?

e_gamer
08.08.2010, 01:24
Проверь папку на сервере, где хранятся данные сессий.