anton000

anton000
Рейтинг
32
Регистрация
10.05.2013
Милованов Ю.С:
Загадка: ТС пишет скрипт казино(рулетка). Сколько ему понадобиться тысяч функций для его комбинаторики:D

Вот, вы правильно подчеркнули! Даже, со скриптом рулетки, 100% есть какие-то методы объединения?

---------- Добавлено 04.07.2013 в 15:07 ----------

Вот есть сайт: http://www.randstuff.ru/password/ на нём мне очень нравится генератор. Скачал с сайта все файлы JS и CSS запустил у себя, нечего не работает. Значит обработчик php сервер, а не JS.

И ещё у меня к вам вопрос: на этом же сайте, так красиво передвигается ползунок шкалы выбора колисечтва символов, и пароль выдаётся без перезагрузки, и текст красиво появляется. Скажите какие языки и библиотеки языков для этого понадобились? Чтобы реализовать такое?

mark2011:
А разве это не логично? Из курса комбинаторики это прямо следует :) вы же хотите все возможные комбинации? Ну и прописывайте их в программе, в чём вопрос-то? Если хотите урезать количество массивов - урезайте кол-во комбинаций :)

Я конечно, не знаток с точки оптимизации. Но если я правильно понимаю, чем больше скрипта, тем дольше его обработка? Если в одном файле, будет 20 массивов и 20 функций, я не думаю что это будет Good !

Я думал, что можно их как-то соединять (массивы), конечно есть функция соединения, но я не могу понять как соединить их несколько? При этом не зная, сколько их будет соединяться?

PS - если бы я знал что пользователь выберет именно 2 пункта, то да, это легко сделать (соединить) нужные массивы.

siv1987:
Все работает нормально.
А что вы собственно делаете этим ($i = 0; $i = $number; $i++)?

понял нужно сделать == извините ступил. А вот как на счёт того что выдаётся 20 значный пароль вместо 10 значного. Почему так?

setka_gs:
если выберет все, то создадите e в которой
case 'e':$letters = 'abcdefghijklmopkqrstuvwxyz0123456789~!@#$%^&*()_+=-';break;
детский сад.
---------- Добавлено 03.07.2013 в 21:53 ----------

рандом стоит на строку, если не создать
case 'e':$letters = 'abcdefghijklmopkqrstuvwxyz0123456789~!@#$%^&*()_+=-';break;
то пользователь не получит чего хочет...

Если честно, это вы детский сад. В вашем случае, нужно будет создавать 20 массивов. Так как будет 4 галочки для выбора. Вот и считайте, 4 * 4 = 16 и ещё какие-либо функции. Вы написали тоже самое, то и с чего я начал эту тему. С массива, и я попросил как можно обойтись без каждого выбора. То есть есть 4 массива, и она в зависимости от галочки, собираются вместе.

Вы уловили суть вопроса?

Marat_Kh:
Почему?
function pass($t='c',$count_r =6)

{
switch($t){
case 'c':$letters = 'abcdefghijklmopkqrstuvwxyz';break;
case 'd':$letters = '0123456789';break;
case 's':$letters = '~!@#$%^&*()_+=-';break;
default:return null;
}
for ($p = 0; $p <= $count_r; $p++)
{
$pass .= $letters{rand(0, strlen($letters) - 1)};
}
return $pass;
}

Ага, а если пользователь выбрал и буквы и цифры. То ему сначала код, выдаст буквы, а потом пароль с цифрами. Или наоборот. Как в вашем скрипте будет выводиться пароль если пользователь выберет c d s ?

setka_gs:
какие массивы, зачем они должны объединятся?? Что за бред...

function pass()
{
$letters = '0123456789abcdefghijklmopkqrstuvwxyz';
$count_r = 8;
for ($p = 0; $p <= $count_r; $p++)
{
$pass .= $letters{rand(0, strlen($letters) - 1)};
}
return $pass;
}

вот простейшая паблик функция, набор $letters меняйте if в зависимости от выбора юзера.

Вы тему вообще читали? То что вы написали, я об этом уже давно сказал! С вашей функцией, придётся создавать их 20

siv1987:
А что мешает в зависимости от условия добавить "необходимую" длину? Или вы не слышали про if?

В том то и дело, что я не знаю, как произвести запись в 1 массив из других массивов, в зависимости от if.

---------- Добавлено 03.07.2013 в 18:44 ----------

zhitov:
array_merge вам в помощь.

Им можно было бы воспользоваться, если бы я точно знал, сколько будет массивов объединяться!

Если вы знаете, как огранизовать с этой функцией мною задуманное, попрошу привести простенький пример? Благодарю за ответ!

siv1987:
1. if(! isset($_POST['name'])) $_POST['name'] = 'default value';
<input type="text" name="name" value="<?= $_POST['name'] ?>">

2. <input type="text" name="name" value="<?= (isset($_POST['name'])) ? $_POST['name'] : 'default value' ?>">


для выделения чекбоксов есть checked

Спасибо, большое всё помогло!

---------- Добавлено 03.07.2013 в 18:31 ----------

Не буду создавать новую тему, спрошу здесь:

1.


if(isset($_POST['num3']) and isset($_POST['num2'])) {
echo numv1($_POST['number']);
}

Проверил переданные переменыеи вызвал фукнцию:


function numv1($number) {

$arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g',

'h','i','j','k','l',

'm','n','o','p','r','s',

't','u','v','x','y','z',

'A','B','C','D','E','F',

'G','H','I','J','K','L',

'M','N','O','P','R','S',

'T','U','V','X','Y','Z',

'1','2','3','4','5','6',

'7','8','9','0');

$pass = "";
for($i = 0; $i <= $number; $i++) {
$index = mt_rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
}

Проблема в том что, если допутим пользователь вводит 10 то ему выдаётся 20 цифирный пароль, если 100 ему выдаётся 200 символьный пароль. Как эту проблему устранить?

2.Скрипт виснет, когда я делаю:


for($i = 0; $i = $number; $i++) {
$index = mt_rand(0, count($arr) - 1);
$pass .= $arr[$index];
}

когда ставлю знак = равенства (всё хорошо работает когда, <=)

То скрипт виснет и просто крутит колёсико!

3.При генерации чисел, почему то не выдаётся нужное число, допутим пользователь написал 5 ему выдалось 1 числвой пароль, попросил 100 выдалось 1.Как это устаранить?

Подскажите пожалуйста, как эти ошибки устаранить? Благодарю за ответы!

foxi:
разрешите пользователю самому задавать пароль какой угодно. кода нужно будет 0 ;)

Я сейчас это делаю, не для пользователей, а для себя. В будущем, попросят меня сделать с кнопочками, а я бац не знаю! Я сейчас только учусь!

---------- Добавлено 03.07.2013 в 17:50 ----------

Там представлены, как делать генераторы, только определённой длины. А вот с выбором (галочками) нет такого. Поэтому я начал делать сам. И столкнулся с такой проблемой. Что если будет 4 пункта. То нужно будет написать более 20 функций.

siv1987:
<input type="text" name="name" value="<?=$_POST['name']?>">

Спасибо большое! Помогло! Но тогда возникают ещё 2 вопроса:

1.Как сделать что-либо по умолчнию? То есть чтобы уже стояло число 10, а пользователь ввёл 20 и потом уже стояло 20 вместо 10.

2.Как это применить к не текстовым полям? Сделал вот так:


<input type="checkbox" name="num2" value="<?=$_POST['num2']?>">

Не работает?

Всего: 243