Ошибка Notice: Undefined index

L
На сайте с 19.09.2011
Offline
17
4530

Здравствуйте. Возникла проблема с работой сессии. На последний сборке денвера все работает, а на nginx+php+mysql - проблемы, выдает ошибку:

Notice: Undefined index: captcha in C:\xampp\htdocs\index.php on line 232

Значит проблема не в коде, а в настройках сервера или php, подскажите в чем может быть проблема.

KoDmAn
На сайте с 24.09.2009
Offline
42
#1
landan:

Notice: Undefined index: captcha in C:\xampp\htdocs\index.php on line 232

m.b. localhost?

L
На сайте с 19.09.2011
Offline
17
#2

KoDmAn, в смысле? пробовал ставить на хостинг, та же фигня.

ДП
На сайте с 23.11.2009
Offline
203
#3

А код строки 232 не желаете показать?

Вообще ini_set('display_errors',0); - но это лечение симптомов, а не проблемы.

L
На сайте с 19.09.2011
Offline
17
#4

if($_POST['captcha']!=$_SESSION['captcha']){$core->content.=$core->alert('Капча введена не верно!','error');$core->away();}

если бы проблема в коде, то и на сборке Денвер не работало бы, разве не так?

ДП
На сайте с 23.11.2009
Offline
203
#5

добавьте еще условий isset($_POST['captcha']) && isset($_SESSION['capthca']) && ваши условия

L
На сайте с 19.09.2011
Offline
17
#6

Дикий пионер, не помогло, да и вроде оно только ошибку прячет.

ДП
На сайте с 23.11.2009
Offline
203
#7

$_SESSION['captcha'] - тут ключ правильный? я опечатался в ответе.

Ту же самую ошибку показывает?

gormarket
На сайте с 29.12.2010
Offline
47
#8

Ищите где у Вас должна создаваться переменная сессии 'captcha' - очевидно этот код не выполняется.

То что пишу дальше, просто гадание на кофейной гуще:

скорей всего проблема в коде, не рассчитанном на работу с nginx.

к примеру капча отдается как графический файл ( например .gif), а на самом деле (может через .htaccess) выполняется php-код, который и создает переменную сессии и отдает картинку.

Но без nginx.

А когда nginx подключили, и настроили что он отдает (включая и ".gif"), то до аппача с его htaccess при запросе капчи дело не доходит, nginx запрос перехватывает.

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
L
На сайте с 19.09.2011
Offline
17
#9

Дикий пионер, да, то же самое.

landan добавил 14.11.2011 в 15:15

gormarket, каптча создается отдельным php файлом с кодом:

<?php

$session_time = 60*60*24*3; // три дня
ini_set('session.gc_maxlifetime', $session_time);
ini_set('session.cookie_lifetime', $session_time);
ini_set('session.name', 'localhost');
session_set_cookie_params($session_time, '/', '.localhost');
session_start();

$count=4; /* количество символов */
$width=100; /* ширина картинки */
$height=30; /* высота картинки */
$font_size_min=20; /* минимальная высота символа */
$font_size_max=20; /* максимальная высота символа */
$font_file="./font.ttf"; /* путь к файлу относительно w3captcha.php */
$char_angle_min=-10; /* максимальный наклон символа влево */
$char_angle_max=10; /* максимальный наклон символа вправо */
$char_angle_shadow=6; /* размер тени */
$char_align=24; /* выравнивание символа по-вертикали */
$start=5; /* позиция первого символа по-горизонтали */
$interval=16; /* интервал между началами символов */
$chars="0123456789"; /* набор символов */

$image=imagecreatetruecolor($width, $height);

$background_color=imagecolorallocate($image, 235, 239, 239); /* rbg-цвет фона */
$font_color=imagecolorallocate($image, 135, 139, 139); /* rbg-цвет тени */

imagefill($image, 0, 0, $background_color);

$str="";

$num_chars=strlen($chars);
for ($i=0; $i<$count; $i++)
{
$char=$chars[rand(0, $num_chars-1)];
$font_size=rand($font_size_min, $font_size_max);
$char_angle=rand($char_angle_min, $char_angle_max);
imagettftext($image, $font_size, $char_angle, $start, $char_align, $font_color, $font_file, $char);
imagettftext($image, $font_size, $char_angle+$char_angle_shadow*(rand(0, 1)*2-1), $start, $char_align, $background_color, $font_file, $char);
$start+=$interval;
$str.=$char;
}

$_SESSION["captcha"]=$str;

if (function_exists("imagepng"))
{
header("Content-type: image/png");
imagepng($image);
}
elseif (function_exists("imagegif"))
{
header("Content-type: image/gif");
imagegif($image);
}
elseif (function_exists("imagejpeg"))
{
header("Content-type: image/jpeg");
imagejpeg($image);
}

imagedestroy($image);


?>

landan добавил 14.11.2011 в 15:26

gormarket:
...
А когда nginx подключили, и настроили что он отдает (включая и ".gif"), то до аппача с его htaccess при запросе капчи дело не доходит, nginx запрос перехватывает.

На апаче, сборки XAMP тоже не работало.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий