Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рандом текст 
:(
    Опции темы
alligator
Дата 24.8.2005, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: 1
Всего: 1



Проблемка такая скрипт генерит рандом числа и помещает в сессию для последующего вывода на картинку с использованием библиотеки gd2, но при первом заходе генериться постоянно одно и тоже число не могу найти ошибку....
код самой картинки
Код

<?php
session_start();
$_SESSION["formsafe"];

function mt() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
    }

Header("Content-type: image/png");
$font = 'epsilon-font.ttf';
$image = ImageCreate(100, 30);
ImageFill($image, 0, 0, $black);
$black = ImageColorAllocate($image, 255, 255, 255);
$yellow = ImageColorAllocate($image, 0, 0, 0);

  $firstwhite=imagecolorallocate($image, 190, 190, 190);
    $randomcolor[1]=imagecolorallocate($image,rand(0,200),rand(0,128),rand(0,150));
      $randomcolor[2]=imagecolorallocate($image,rand(0,128),rand(0,200),rand(0,128));
        $randomcolor[3]=imagecolorallocate($image,rand(0,128),rand(0,150),rand(0,128));
          $randomcolor[4]=imagecolorallocate($image,rand(0,180),rand(0,128),rand(0,150));

for ($i=0;$i<=100;$i+=5) imageline($image,$i,0,$i,29,$firstwhite);
for ($i=0;$i<=29;$i+=5) imageline($image,0,$i,100,$i,$firstwhite);

imagettftext($image, 17, 10, 10+rand(-5,5), 5+rand(20,15), $randomcolor[1], $font,substr($_SESSION["formsafe"],0,1));
 imagettftext($image, 17, 10, 25+rand(-5,5), 5+rand(20,15), $randomcolor[2], $font,substr($_SESSION["formsafe"],1,1));
  imagettftext($image, 17, 10, 50+rand(-5,5), 5+rand(20,15), $randomcolor[3], $font,substr($_SESSION["formsafe"],2,1));
    imagettftext($image, 17, 10, 70+rand(-5,5), 5+rand(20,10), $randomcolor[4], $font,substr($_SESSION["formsafe"],3,1));
imagepng($image);
imagedestroy($image);
//echo $text;
?>

Код который генерит число для сессии
Код

<?
session_start();
$_SESSION["formsafe"];
if (intval($_SESSION["formsafe"])<1000) {
    srand(doubleval(microtime()));
    $_SESSION["formsafe"]=rand(1000,9999);
    }

?>

//Тут форма которая отправляет запрос... на картинку
<?
if ($_SERVER["REQUEST_METHOD"]=="POST") {

    $itext=0;
    if ($_POST["secretcode"]!=$_SESSION["formsafe"] ||
        intval($_POST["secretcode"])==0) $itext=1;

    if ($itext==0) {
        $_SESSION["formsafe"]=rand(1000,9999);
        print "введенное слово :".htmlspecialchars(StripSlashes($_POST["text"]));
        exit;
        }

    if ($itext==1)
        $_SESSION["formsafe"]=rand(1000,9999);
        print "Код с картинки неверный";
    }

?>

PM MAIL   Вверх
Mal Hack
Дата 24.8.2005, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Попробуй mt_rand.
PM ICQ   Вверх
alligator
Дата 24.8.2005, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: 1
Всего: 1



Работает спасибо....
PM MAIL   Вверх
Phantom1
Дата 24.8.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 25.7.2005

Репутация: 1
Всего: 2



Использую только его генерит просто супер
Код

srand((double)microtime()*1000000);
$id=uniqid(rand());
print $id;

или
Код

$random=rand(2555,9999); // случайное число от 2555 до 9999
$hash1=md5($random); // md5
$hash2=crc32($random); // crc32
echo "$hash1 - md5";
echo "$hash2 - crc32"; 


Это сообщение отредактировал(а) Phantom1 - 24.8.2005, 09:14
PM MAIL   Вверх
Mal Hack
Дата 24.8.2005, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Phantom1 у него rand одно и тоже выдавал..
PM ICQ   Вверх
Phantom1
Дата 24.8.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 25.7.2005

Репутация: 1
Всего: 2



Да!? ну ладно зато генерилки класные
PM MAIL   Вверх
Mal Hack
Дата 24.8.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Phantom1 какие генерилки?

Цитата(Phantom1 @ 24.8.2005, 10:13)
$hash1=md5($random); // md5
$hash2=crc32($random); // crc32

Это чтоли? Это криптография...

PM ICQ   Вверх
AntonioBanderaz
Дата 5.9.2005, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Вот тебе скриптик, который у меня пароли генирит, а если в массиве вместо Букв оставить только числа, то будет тебе генератор чисел определённой длины...

Код

function generate($len) {
    $bukv = array('a','b','G','H','I','J','K','L','M','c','d','r','2','0','1','p','q','O','P','Q','R','S','T','U','V','8','9','3','4','5','s','t','E','F','u','v','w','x','y','z','A','B','C','D','N','e','f','g','h','i','j','6','7','m','n','o','k','l','W','X','Y','Z');
    $pass = '';
    for($i=0;$i<$len;$i++) {
        mt_srand((double)microtime( ) * 9999999999999);
        $randval = mt_rand(0,sizeof($bukv) -1);
        $pass .= $bukv[$randval];
    }
    return $pass;
}



--------------------
ГЫ... 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.