[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите, пожалуйста, разобраться с нерабочим скри
Serg2009

<?php
//**************************************************************************
// * name: Check
// * returns:
// ***********************************************************************

session_start();
if (!empty($exit)) session_destroy();

$admin = trim($_POST['admin']);

if ($admin!=12) {

echo "Не правильно!";

error($er);

} else {

echo "Правильно!";

exit(0);

}

function error($d) {

global $attempt;

if (empty($attempt))

$attempt=1;

else $attempt++;

session_register("attempt");

check();

}
//*******************************************************
//Три попытки авторизироваться
//Вывод каптчи
//
//*********************************************************

function check() {

global $attempt;

$attempt= intval($attempt);

if ($attempt==3)

// Выводится каптча

exit(0);

}

?>




Спустя 5 минут, 58 секунд (16.03.2010 - 12:58) Игорь_Vasinsky написал(а):
блин... а какая ошибка выдаётся?

или какой результат ждёшь ?

это значительно ускорит процесс

Спустя 3 минуты, 14 секунд (16.03.2010 - 13:01) Serg2009 написал(а):
Цитата (Игорь_Vasinsky @ 16.03.2010 - 09:58)
блин... а какая ошибка выдаётся?

или какой результат ждёшь ?

это значительно ускорит процесс

счетчик не отсчитывает количество не удачных авторизаций, после трех неудачных попыток авторизации должна вылазить каптча..

Спустя 5 минут, 11 секунд (16.03.2010 - 13:06) Игорь_Vasinsky написал(а):
$exit, $d и др. ну стока переменных, а кто это вы не говорите,

потом

if ($attempt==3) - нужно if ($attempt=3)

Спустя 15 минут, 21 секунда (16.03.2010 - 13:22) Serg2009 написал(а):
Цитата (Игорь_Vasinsky @ 16.03.2010 - 10:06)
$exit, $d и др. ну стока переменных, а кто это вы не говорите,

потом

if ($attempt==3) - нужно if ($attempt=3)

Изначальный код функций:


function error($er)
{

//начало нового кода
if (empty($attempt)) $attempt=1;
else $attempt++;
session_register("attempt");
//конец нового кода

//выводим сообщение об ошибке пользователю

exit(0)
}

function check()
{
//начало нового кода
Global $attempt;
$attempt= intval($attempt);
if ($attempt==3)
exit();
//конец нового кода
}


если пишу [b] if ($attempt=3)
просто выполняется код без счетчика ,т.е. все выполнилось $attempt = 1 и все

Спустя 2 часа, 28 секунд (16.03.2010 - 15:22) Игорь_Vasinsky написал(а):
если $attempt - число - integer а 3 это integer - то такое условие как == применять наверно неверно.

так как == логическая операция идентичности
а = знак равенства

вот мож ещё
else $attempt++;


заменить на

else $attempt+1;


попробуй

Спустя 8 минут, 39 секунд (16.03.2010 - 15:31) Serg2009 написал(а):
Цитата (Игорь_Vasinsky @ 16.03.2010 - 12:22)
если $attempt - число - integer а 3 это integer - то такое условие как == применять наверно неверно.

так как == логическая операция идентичности
а = знак равенства

вот мож ещё
else $attempt++;


заменить на

else $attempt+1;


попробуй

не помогает! ничего не пойму, логически все должно работать, а почему не работает.., может настройки php или какие то тонкости с объявлением переменных?

Спустя 2 минуты, 8 секунд (16.03.2010 - 15:33) Kuliev написал(а):
Serg2009
Где скрипт взяли?

судя по этому


session_register("attempt");


Скрипт старый как говно мамонта!

Выложите весь скрипт и не забудьте сделать подсветку кода!

Спустя 9 минут, 10 секунд (16.03.2010 - 15:42) Serg2009 написал(а):
Цитата (Kuliev @ 16.03.2010 - 12:33)
Serg2009
Где скрипт взяли?

судя по этому


session_register("attempt");


Скрипт старый как говно мамонта!

Выложите весь скрипт и не забудьте сделать подсветку кода!

Весь скрипт состоит из 2х функций:

<?php
// Инициируем сессию
session_start();
$admin = trim($_POST['admin']);

if ($admin!=12) {
echo "Не правильно!";

error();

} else {
echo "Получилось!";
exit(0);
}




function error() {

global $attempt;
if (empty($attempt))
$attempt = 1;
else
$attempt++;
session_register("attempt");
echo $attempt;

//Вызвать проверку на количество ошибок
check ();

}

function check()
{

global $attempt;

if ($attempt==3) {

//Здесь вызов кода капчти
echo "К А П Т Ч А";
unset($_SESSION["attempt"]);
exit(0);
}
}



?>

Спустя 8 минут, 5 секунд (16.03.2010 - 15:50) Kuliev написал(а):
Serg2009

1). Заменить
session_register("attempt");
на
 $_SESSION['attempt'];


2). Заменить
 unset($_SESSION["attempt"]);

на
 unset($_SESSION['attempt']);


А потом попробуй скрипт запусти

Спустя 3 минуты, 55 секунд (16.03.2010 - 15:54) Serg2009 написал(а):
Цитата (Kuliev @ 16.03.2010 - 12:50)
Serg2009

1). Заменить
session_register("attempt");
на
 $_SESSION['attempt'];


2). Заменить
 unset($_SESSION["attempt"]);

на
 unset($_SESSION['attempt']);


А потом попробуй скрипт запусти

Заменил, не считает счетчик!

Спустя 16 минут, 28 секунд (16.03.2010 - 16:11) Игорь_Vasinsky написал(а):
смотри по этому алгоритму

функция 1

1.старт сессия
2.проверяем есть ли сессия attempt


3.Если нет - объявляем переменную attempt = 1 и преобразуем в постоянный тив через intval($attempt)
4. записываем сессию - придаём значение 1

3 Если есть сессия - читаем сессию и увеличиваем на 1, записываем сессию


функция 2

1. читаем сессию attempt если равна 3 - то показываем каптчу

Спустя 12 минут, 40 секунд (16.03.2010 - 16:23) Игорь_Vasinsky написал(а):
Ну результат то пакаж ????

Спустя 6 минут, 51 секунда (16.03.2010 - 16:30) Serg2009 написал(а):
Цитата (Игорь_Vasinsky @ 16.03.2010 - 13:23)
Ну результат то пакаж ????

вот что сделал:
результат $attempt увеличилась на 1 и того 2 дальше не считает!

session_start();  
$admin = trim($_POST['admin']);

if (isset ($_SESSION['attempt'])) {

$_SESSION['attempt'];

} else {

$attempt = 1;

intval($attempt);

$_SESSION['attempt'];

}

if ($admin!=12) {

echo "Не правильно!";

error();

} else {

echo "Получилось!";
exit(0);

}

function error() {

global $attempt;
if (empty($attempt))
$attempt = 1;
else
$attempt++;
$_SESSION['attempt'];
echo $attempt;

//Вызвать проверку на количество ошибок
check ();

}

function check()
{

global $attempt;

if ($attempt==3) {

//Здесь вызов кода капчти
echo "К А П Т Ч А";
unset($_SESSION['attempt']);
exit(0);
}
}






?>

Спустя 24 минуты, 16 секунд (16.03.2010 - 16:54) Игорь_Vasinsky написал(а):
function error() - прописал а не запустил

и по логике порядок функций наоборот

Спустя 10 минут, 39 секунд (16.03.2010 - 17:05) Serg2009 написал(а):
Цитата (Игорь_Vasinsky @ 16.03.2010 - 13:54)
function error() - прописал а не запустил

и по логике порядок функций наоборот

как запустить функцию, не совсем понял вас? если вам не трудно могли бы вы набросать код.. в php я всего пол года, туговато пока разбираюсь!

Спустя 5 минут, 54 секунды (16.03.2010 - 17:11) Игорь_Vasinsky написал(а):
видимо так

function error();

Спустя 25 минут, 11 секунд (16.03.2010 - 17:36) twin написал(а):
Зачем $attempt сделали глобальной?

Спустя 19 минут, 37 секунд (16.03.2010 - 17:56) Игорь_Vasinsky написал(а):
я не вникал, главно чтоб алгоритм был верен

Спустя 2 минуты, 1 секунда (16.03.2010 - 17:58) twin написал(а):
Плохо, что не вникал. Вникать надо. А алгоритм не верен. Потому как избыточен.

Спустя 5 минут, 32 секунды (16.03.2010 - 18:03) Игорь_Vasinsky написал(а):
ну мой алгоритм описан в текстовом виде на 1й странице

Спустя 1 час, 14 минут, 29 секунд (16.03.2010 - 19:18) Serg2009 написал(а):
Помогите, будте так добры, если в курсе где дыра в коде!!!

Спустя 1 час, 45 минут, 11 секунд (16.03.2010 - 21:03) Serg2009 написал(а):
twin
Помогите, будте так добры, если в курсе разобраться где дыра в коде!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.