
01.10.2015, 18:18
|
Аспирант
|
|
Регистрация: 24.02.2011
Сообщений: 66
|
|
Создание капчи
Здравствуйте. Есть такой вот код:
<?php
$mas_data_kapcha=array(
//array("вопрос","ответ"),
array("3*9=?","27"),
array("90-5=?","85"),
array("100-5=?","95"),
array("1+6=?","7"),
array("52+3=?","55"),
array("11-1=?","10"),
array('Введите 5 символов +',"+++++"),
array('Введите 4 символа *',"****"),
array("пять плюс пять =?","10"),
array("10 плюс 10 = ?","20"),
array("Сколько будет 3 умножить на 5?","15"),
array("Сложите 5 да 10. Сколько получится?","15"),
array("5 плюс 30 = ?","35")
//"114"=>array("",""),
);
Помогите, пожалуйста сделать нормальную капчу. Необходимо, чтобы символы формировались следующим образом:
$chars = 'abdefhknrstyz23456789';
Далее, задать длину символов, которые будут отображаться:
$length = rand(4, 7);
$mas_data_kapcha прописан во всех файлах движка, поэтому его изменять нельзя. Помогите, кто чем сможет.
|
|

01.10.2015, 18:47
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
И каким образом $mas_data_kapcha связан с $chars?
|
|

01.10.2015, 18:48
|
Аспирант
|
|
Регистрация: 24.02.2011
Сообщений: 66
|
|
он не связан, просто привел как пример.
|
|

01.10.2015, 18:50
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Пример чего? К чему тогда массив описанный? Что вам надо, получить из строки случайный набор символов от 4 до 7?
|
|

01.10.2015, 18:56
|
Аспирант
|
|
Регистрация: 24.02.2011
Сообщений: 66
|
|
Если быть точным, то нужно, чтобы ниже приведенный код формировался произвольно. Сейчас капча показывает только определенный набор вопросов, нужно, чтобы показывались исключительно данные символы: "abdefhknrstyz23456789" в определенном порядке по 5 символов.
<?php
$mas_data_kapcha=array(
//array("вопрос","ответ"),
array("3*9=?","27"),
array("90-5=?","85"),
array("100-5=?","95"),
array("1+6=?","7"),
array("52+3=?","55"),
array("11-1=?","10"),
array('Введите 5 символов +',"+++++"),
array('Введите 4 символа *',"****"),
array("пять плюс пять =?","10"),
array("10 плюс 10 = ?","20"),
array("Сколько будет 3 умножить на 5?","15"),
array("Сложите 5 да 10. Сколько получится?","15"),
array("5 плюс 30 = ?","35")
//"114"=>array("",""),
);
|
|

01.10.2015, 19:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от steepfox
|
Если быть точным, то нужно, чтобы ниже приведенный код формировался произвольно. Сейчас капча показывает только определенный набор вопросов, нужно, чтобы показывались исключительно данные символы: "abdefhknrstyz23456789" в определенном порядке по 5 символов.
|
И как это понять?
Во-первых, причем тут Javascript? Во-вторых о каких символах идет речь и причем тут этот массив тогда?
Если нужно взять из этого массива случайный его элемент, так это получить случайный индекс этого массива, по которому и получить искомое - $mas_data_kapcha[rand[0, count($mas_data_kapcha)-1]].
|
|

01.10.2015, 19:15
|
Аспирант
|
|
Регистрация: 24.02.2011
Сообщений: 66
|
|
Здесь в основном php. Нужно, чтобы вместо этого:
array("3*9=?","27"),
array("90-5=?","85"),
array("100-5=?","95"),
array("1+6=?","7"),
array("52+3=?","55"),
array("11-1=?","10"),
array('Введите 5 символов +',"+++++"),
array('Введите 4 символа *',"****"),
array("пять плюс пять =?","10"),
array("10 плюс 10 = ?","20"),
array("Сколько будет 3 умножить на 5?","15"),
array("Сложите 5 да 10. Сколько получится?","15"),
array("5 плюс 30 = ?","35")
выскакивали другие вопросы, на подобии этого:
"abdefhknrstyz23456789"
|
|

01.10.2015, 19:34
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
А если вместо этого, то зачем приводите массив и задаете туманные вопросы? Вам же задан был вопрос - "надо из строки сформировать случайную последовательность?", и вместо ответа опять прострации с массивом ...
$mas_data_kapcha = substr(str_shuffle('abdefhknrstyz23456789'), 0, rand(4, 7))
|
|

01.10.2015, 19:40
|
Аспирант
|
|
Регистрация: 24.02.2011
Сообщений: 66
|
|
С программированием у меня всегда было туго, извините, что объясняю туманно)
А как эту строчку установить?
$rand = substr(str_shuffle('abdefhknrstyz23456789'), 0, rand(4, 7))
|
|

01.10.2015, 19:48
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Как понять установить? Замените массив на это выражение, вот и все.
|
|
|
|