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

Форум PHP

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

 

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

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

тема: Как создать генератор шестизначного числа?
 
 автор: IgorT   (29.06.2007 в 22:46)   письмо автору
 
 

Как создать генератор шестизначного числа, та чтобы ето число выглядело как рисунок?
Тоесть нужно сделать меленькое поле, например для подтверждения .

   
 
 автор: Jura   (29.06.2007 в 23:40)   письмо автору
 
   для: IgorT   (29.06.2007 в 22:46)
 

Значит так, раскладываем на этапы.
1. Генерация случайного числа или набора символов
Пример:

<?
$alf
="абвгдежзик"// словарь для генерации
$cntalf=strlen($alf);

$gencode="";
for(
$i=0;$i<6$i++){
       
$gencode.=$alf[rand(0,$cntalf)];
}
echo 
$gencode// код
?>


2. затем этот код надо при помощи скрипта генерирующего картинку надо записать в сессию. и передать с верификационным кодом в принимающий скрипт.

Пример лежит в файлах для скачки.

   
 
 автор: Trianon   (30.06.2007 в 00:36)   письмо автору
 
   для: IgorT   (29.06.2007 в 22:46)
 


echo sprintf("%06d", microtime()%1000000);

   
 
 автор: IgorT   (30.06.2007 в 00:52)   письмо автору
 
   для: Trianon   (30.06.2007 в 00:36)
 

echo sprintf("%06d", microtime()%1000000); - у меня почему то ничего не делает, только виводит несколько нулей и все

   
 
 автор: Angel_Hranitel   (30.06.2007 в 01:21)   письмо автору
 
   для: IgorT   (30.06.2007 в 00:52)
 

Trianon, а разве

sprintf("%06d", microtime()%1000000);
это не подсчет микро времени? Случайные числа делает rand()... Вы наверное устали за сегодня...=) (извините если чем зацепил!)

   
 
 автор: IgorT   (30.06.2007 в 01:34)   письмо автору
 
   для: Angel_Hranitel   (30.06.2007 в 01:21)
 

Да, есть генератор случайных 6 цифр, но как же сделать так, чтобы они отображались в виде картинки ?

   
 
 автор: Trianon   (30.06.2007 в 01:59)   письмо автору
 
   для: IgorT   (30.06.2007 в 01:34)
 

Вы просили генератор числа, а не генератор картинки.
Генератор картинки можно глянуть, например, здесь.

   
 
 автор: Trianon   (30.06.2007 в 02:05)   письмо автору
 
   для: Angel_Hranitel   (30.06.2007 в 01:21)
 

>Trianon, а разве
>sprintf("%06d", microtime()%1000000);
> это не подсчет микро времени?

правильно
sprintf("%06d", intval(microtime()*1000000));


Это не подсчет времени. Это получение микросекундной части метки времени в виде целого числа.

>Случайные числа делает rand()...
Никогда он такого не делал и не будет.
rand() генерирует псевдослучайную последовательность. Вызывать его один раз за вызов скрипта смысла нет. Не смотря на то, что в инициализацию последовательности с некоторых номеров версий неявно включен mt_rand().
Чтобы получить случайное число - нужно обеспечить хоть какой-то элемент этой самой случайности. В данном случае - этим элементом представляется фаза запроса времени в секундном периоде.

>Вы наверное устали за сегодня...=)
устал. И что? :)

   
 
 автор: Unkind   (30.06.2007 в 01:47)   письмо автору
 
   для: IgorT   (30.06.2007 в 00:52)
 

у меня почему то ничего не делает, только виводит несколько нулей и все
В коде Trianon'а, конечно же, опечатка и вместо "%" должно стоять "*".

это не подсчет микро времени?
Нет. sprintf("%06d", microtime()%1000000); - ЭТО не подсчет микровремени.
Случайные числа делает rand() Псевдослучайные. В любом случае нужно добиться шести псевдослучайных цифр.

   
 
 автор: Trianon   (30.06.2007 в 01:56)   письмо автору
 
   для: Unkind   (30.06.2007 в 01:47)
 

>у меня почему то ничего не делает, только виводит несколько нулей и все
>В коде Trianon'а, конечно же, опечатка и вместо "%" должно стоять "*".

конечно. Запамятовал, что там дробная часть...

   
 
 автор: IgorT   (30.06.2007 в 02:00)   письмо автору
 
   для: Unkind   (30.06.2007 в 01:47)
 

И в этом варианте все тоже работает. Есть 6 случайных чисел, но как же отобразить их в виде картинки ?

Вы писали : Вы просили генератор числа, а не генератор картинки.
Генератор картинки можно глянуть, например, здесь.

А здесь это где ? Ссылки то нет.

   
 
 автор: Angel_Hranitel   (30.06.2007 в 02:41)   письмо автору
 
   для: IgorT   (30.06.2007 в 02:00)
 

=( понял, пора идти спать

   
 
 автор: Trianon   (30.06.2007 в 02:51)   письмо автору
 
   для: IgorT   (30.06.2007 в 02:00)
 

прошу прощения.
http://softtime.ru/info/randomimage.php

   
 
 автор: IgorT   (30.06.2007 в 12:14)   письмо автору
 
   для: Trianon   (30.06.2007 в 02:51)
 

Спасибо, шас попробую

   
 
 автор: sidPR   (12.07.2007 в 15:40)   письмо автору
 
   для: IgorT   (30.06.2007 в 12:14)
 

Я попробывал запустить у себя на сервере у данный скрипт у меня не генерит изображение :(

при прямом запуске index.php пишет

Fatal error: Call to undefined function: imagecreatetruecolor() in C:\!Server\www\kirich\index.php on line 51 ...

   
 
 автор: sms-send   (12.07.2007 в 16:01)   письмо автору
 
   для: sidPR   (12.07.2007 в 15:40)
 

GD_LIB надо установить.

   
 
 автор: sidPR   (12.07.2007 в 16:19)   письмо автору
 
   для: sms-send   (12.07.2007 в 16:01)
 

Установлена! все заработала , спасибо всем ! :)

   
 
 автор: sidPR   (12.07.2007 в 18:37)   письмо автору
 
   для: sidPR   (12.07.2007 в 16:19)
 

при обращении напрямую к index.php все генерится нормально при обращении к test.php картинка не отображается..

   
Rambler's Top100
вверх

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