Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Rand чисел и букв...
 
 автор: nikolayers   (26.02.2010 в 18:21)   письмо автору
 
 

Помогите сделать рендом букв и цифр и спец-знаков чтоб была каша вроде fds90(в)67dtgas, то-есть каша из букв и цифр и прочего длиной 12 символов

  Ответить  
 
 автор: sim5   (26.02.2010 в 18:45)   письмо автору
 
   для: nikolayers   (26.02.2010 в 18:21)
 

Перемешайте массив необходимых символов, и возьмите из него первые 12 элементов.

  Ответить  
 
 автор: DEM   (26.02.2010 в 18:58)   письмо автору
 
   для: nikolayers   (26.02.2010 в 18:21)
 

Посмотрите на этом сайте в разделе готовых скриптов. Тут етсь код вывода рандомного пароля

  Ответить  
 
 автор: Trianon   (26.02.2010 в 19:43)   письмо автору
 
   для: DEM   (26.02.2010 в 18:58)
 

Зачем?

  Ответить  
 
 автор: sl1p   (27.02.2010 в 02:34)   письмо автору
 
   для: nikolayers   (26.02.2010 в 18:21)
 

function keyGen($c = 30) // длина каши по умолчанию если параметр при вызове упущен
{
    $symbols = "0123456789abcdefghijklmnopqrstuvwxy zABCDEFGHIJKLMNOPQRSTUVWXUYZ_-.+="; // любые знаки
    $randMax = strlen($symbols) - 1;
    $key = "";
    for($i = 0; $i < $c; $i++)
        $key .= $symbols[rand(0, $randMax)];
    return $key;
}

$kasha = keyGen(12); // длина каши = 12 символам
echo $kasha;

  Ответить  
 
 автор: sim5   (27.02.2010 в 05:28)   письмо автору
 
   для: sl1p   (27.02.2010 в 02:34)
 

А зачем цикл? В РНР уже готовое есть, которое позволяет одной строкой получить результат. )

  Ответить  
 
 автор: chexov   (27.02.2010 в 06:58)   письмо автору
 
   для: sim5   (27.02.2010 в 05:28)
 

<?
$kasha 
substr(str_shuffle("abcdefghijklmnopqrstuvwxyz012345678 9"), 0mt_rand(1212)); 
?>


при желании можно добавить Большие буквы и символы

  Ответить  
 
 автор: sim5   (27.02.2010 в 08:39)   письмо автору
 
   для: chexov   (27.02.2010 в 06:58)
 

Спасибо, но не мне это надо :)

  Ответить  
 
 автор: nikolayers   (27.02.2010 в 11:15)   письмо автору
 
   для: sim5   (27.02.2010 в 08:39)
 

ВО

  Ответить  
 
 автор: Loki   (27.02.2010 в 11:06)   письмо автору
 
   для: chexov   (27.02.2010 в 06:58)
 

К этому варианту как минимум две претензии:
1. Символы в итоговой строке никогда не повторяются, что резко сокращает количество возможных вариантов.
2. Длинна итоговой строки ограничена количеством допустимых символов. (в вашем случае - всего 36)

  Ответить  
 
 автор: chexov   (28.02.2010 в 03:44)   письмо автору
 
   для: Loki   (27.02.2010 в 11:06)
 

>при желании можно добавить Большие буквы и символы

проверьте количесвто вариантов, загоните запись результа в цикл на запись в БД, к примеру 1000 записей, и потом проверьте наличие совпадений:))))))))

  Ответить  
 
 автор: г о с т ь   (28.02.2010 в 06:07)   письмо автору
 
   для: chexov   (28.02.2010 в 03:44)
 

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

начали использовать, пусть и меньше вариантов.

<?
function strrand ($len=32) {
return 
substr(md5(uniqid(rand(), true)).($len>32 strrand($len-32) : null), 0$len);
}
?>


а может мне просто показалось...

  Ответить  
 
 автор: chexov   (28.02.2010 в 06:44)   письмо автору
 
   для: г о с т ь   (28.02.2010 в 06:07)
 

моя функция даже при 6 значном результате с использованием только латиницы и цифр даже на 1000 результатов не давал дублей

  Ответить  
 
 автор: Trianon   (28.02.2010 в 08:19)   письмо автору
 
   для: chexov   (28.02.2010 в 06:44)
 

Ваша функция способна выдать результат длиной менее $len символов (а иногда - вообще пустой) .
Что от нее не требуется условиями задачи совершенно.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования