ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1271  
Старый 18.12.2007, 23:17
Аватар для Ded MustD!e
Ded MustD!e
Members of Antichat - Level 5
Регистрация: 23.08.2007
Сообщений: 417
Провел на форуме:
14324684

Репутация: 3908
По умолчанию

Нужно написать скрипт, который будет рисовать график функции y=a*x^2+b*x+c, значения a,b,c задаются с клавиатуры. Сетку я сделал, обычную параболу вывести могу, но не понимаю как задать нужную функцию и коэффициенты вручную.

Как работает:
Код:
http://mytesterphp.h18.ru/graph.php
Код:

PHP код:
<?php
include ("src/jpgraph.php");
include (
"src/jpgraph_line.php"); 
include (
"src/jpgraph_utils.inc.php");

$f = new FuncGenerator('$x*$x');  
list(
$x1data,$y1data) = $f->E(-5,5);

$graph = new Graph(550,450,"auto");
$graph->SetScale("linlin");
$graph->SetShadow();
$graph->img->SetMargin(50,50,60,40);
$graph->SetBox(true,'darkgreen',2);
$graph->SetMarginColor('white');
$graph->SetColor('lightyellow');
$graph->title->Set('ax^2+bx+c=0');
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xgrid->Show(); 
$graph->yaxis->SetPos(0); 
$graph->yaxis->SetWeight(2); 
$graph->yaxis->HideZeroLabel(); 
$graph->yaxis->SetFont(FF_FONT1,FS_BOLD); 
$graph->yaxis->SetColor('darkgreen','darkblue');
$graph->yaxis->HideTicks(true,false); 
$graph->yaxis->HideFirstLastLabel();  
$graph->xaxis->SetWeight(2);
$graph->xaxis->HideZeroLabel(); 
$graph->xaxis->HideFirstLastLabel(); 
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);  
$graph->xaxis->SetColor('darkgreen','darkblue');
 
$lp2 = new LinePlot($y1data,$x1data);
list(
$xm,$ym)=$lp2->Max();
$lp2->SetColor('orange');
$lp2->SetWeight(2); 
$graph->Add($lp2);
$graph->Stroke();
 
?>
 
Ответить с цитированием

  #1272  
Старый 18.12.2007, 23:43
Аватар для MisteriX
MisteriX
Banned
Регистрация: 13.12.2007
Сообщений: 31
Провел на форуме:
188365

Репутация: 20
По умолчанию

Вот, немного нетуда запостил... Вот вопрос: http://forum.antichat.ru/showthread.php?p=532773
 
Ответить с цитированием

  #1273  
Старый 19.12.2007, 02:18
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Вот сделал функцию для распознавания типа хэша (пока только 4, точнее 3, так как хэши MySQL5 и SHA-1 неотличимы).
PHP код:
 function type_hash($string

if (
ereg('^([a-fA-F0-9]{16})$'$string)) return 1// MySQL
if (ereg('^([a-fA-F0-9]{32})$'$string)) return 2// MD5
if (ereg('^([a-fA-F0-9]{40})$'$string)) return 3// MySQL5 или SHA-1
return 0// неизвестен

1.Как сделать тоже самое, используя функцию preg_match?

2. Помогите с регулярками для определения типов хэшей:
DES (пример:HlXOX8MN5z4X6),
MD5 (Unix) $1$$uqbusDeGY2YWqg.T2S1100
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
MD5(Base64) Gh3JHJBzJcaScd3wyUS8cg==
SHA-1 (Base64) NU4eI71bcnBGqeO0t9tXvY1u5oQ=

Последний раз редактировалось -=lebed=-; 19.12.2007 в 03:33..
 
Ответить с цитированием

  #1274  
Старый 19.12.2007, 02:59
Аватар для presidentua
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
По умолчанию

Цитата:
Сообщение от -=lebed=-  
Вот сделал функцию для распознавания типа хэша (пока только 4, точнее 3, так как хэши MySQL5 и SHA-1 неотличимы).
PHP код:
 function type_hash($string

if (
ereg('^([a-fA-F0-9]{16})$'$string)) return 1// MySQL
if (ereg('^([a-fA-F0-9]{32})$'$string)) return 2// MD5
if (ereg('^([a-fA-F0-9]{40})$'$string)) return 3// MySQL или SHA-1
return 0// неизвестен

1.Как сделать тоже самое, используя функцию preg_match?

2. Помогите с регулярками для определения типов хэшей:
DES (пример:HlXOX8MN5z4X6),
MD5 (Unix) $1$$uqbusDeGY2YWqg.T2S1100
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
MD5(Base64) Gh3JHJBzJcaScd3wyUS8cg==
SHA-1 (Base64) NU4eI71bcnBGqeO0t9tXvY1u5oQ=
1.
PHP код:
if  (preg_match("/^([a-fA-F0-9]{16})$/",$string)) echo 'MySQL '
if  (
preg_match("/^([a-fA-F0-9]{32})$/",$string)) echo 'MD5 ';
if  (
preg_match("/^([a-fA-F0-9]{40})$/",$string)) echo 'MySQL или SHA-1'
2.
также как ты и делал, только те символы что не изменяются просто вводишь (только перед доларом надо постави "\" )
итак пример для
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
/^\$arp1\$\$[a-zA-Z0-9]{21}$/

ПС:для написания и отладки регулярных выражений можно использовать специальные прожки, например, VisualREGEXP и The Regex Coach
 
Ответить с цитированием

  #1275  
Старый 19.12.2007, 12:37
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Вот способ как запросить из мускула MySQL хэш:
PHP код:
$query "SELECT PASSWORD('".$pass."')";
                
$r mysql_query($query); 
                
$rq mysql_fetch_array($r);
                
$hash $rq[0]; //МуSQL хэш 
Я так понял, что если Мускул <5 это будет хэш (0-9a-z {8})
а если MySQL5 то хэш будет (0-9a-z {40})

Теперь вопрос: Как независимо от версии Мускула получать хэши MySQL и MySQL5 от какого либо значения? Т.е. может есть готовые функции хэширования на PHP, независящие от мускула и не обращающеся к нему?

Ну типа как в встроенных функциях PHP md5(), sha1()

ЗЫ Чё? так никто и не знает как в Мускуле <5 вычислить хэш Mysql5 ?

Видел где-то что sha1(sha1(password)) это и есть MySQL(password) это так ? Щас проверю сам... неправда

Последний раз редактировалось -=lebed=-; 19.12.2007 в 17:15..
 
Ответить с цитированием

  #1276  
Старый 19.12.2007, 18:04
Аватар для presidentua
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
По умолчанию

Цитата:
Сообщение от Dimi4  
Я наверное не совсем так выразился.Мне не нужен именно переводчик. Мне нужно ятоб например юзер вводить в форме: r57а ему в ответ - Шелл.Последнея версия...Сайт. Думаю понял.
Я хотел сделать файл типа base.php
PHP код:
<?
$slova 
= array(
'r57'=>'Шелл.Последняя версия'
'qwe'
=>'qwe'
);
?>
Мне нужна функция, котороя б брала слова из етого файла и "переводила их"
Это ты же создаешь именной масив. для того чтобы взять значение из него пиши:
PHP код:
echo $slova['r57']; 
 
Ответить с цитированием

  #1277  
Старый 19.12.2007, 19:02
Аватар для Helios
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

Цитата:
Сообщение от -=lebed=-  
Вот способ как запросить из мускула MySQL хэш:
PHP код:
$query "SELECT PASSWORD('".$pass."')";
                
$r mysql_query($query); 
                
$rq mysql_fetch_array($r);
                
$hash $rq[0]; //МуSQL хэш 
Я так понял, что если Мускул <5 это будет хэш (0-9a-z {8})
а если MySQL5 то хэш будет (0-9a-z {40})

Теперь вопрос: Как независимо от версии Мускула получать хэши MySQL и MySQL5 от какого либо значения? Т.е. может есть готовые функции хэширования на PHP, независящие от мускула и не обращающеся к нему?

Ну типа как в встроенных функциях PHP md5(), sha1()

ЗЫ Чё? так никто и не знает как в Мускуле <5 вычислить хэш Mysql5 ?

Видел где-то что sha1(sha1(password)) это и есть MySQL(password) это так ? Щас проверю сам... неправда
Вместо PASSWORD двойной SHA1 использовался только в одном буилде мускула, а именно MySLQ 5.0.27
 
Ответить с цитированием

  #1278  
Старый 19.12.2007, 19:56
Аватар для Red_Red1
Red_Red1
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме:
4608122

Репутация: 874
Отправить сообщение для Red_Red1 с помощью ICQ
По умолчанию

2 -=lebed=-
PHP код:
<?
echo sha1(sha1('mypass',1));
?>
Про это узнал вот тут http://www.wasm.ru/forum/viewtopic.php?pid=203131#p203131

Обрати внимание на слова
Цитата:
Второй раз нужно хешировать _бинарные_ данные.
Проверил на ПассвордПро
sha1('mypass') = e727d1464ae12436e899a726da5b2f11d8381b26
MySQL5('mypass') = 6c8989366eaf75bb670ad8ea7a7fc1176a95cef4
echo sha1(sha1('mypass',1)); >>> 6c8989366eaf75bb670ad8ea7a7fc1176a95cef4
Весь прикол в НЕОБЯЗАТЕЛЬНОМ параметре sha1. Нашел тут http://delaysayt.ru/sha1-vozvraschaet-sha1-hesh-stroki.html
Думаю это то что тебе нужно

Последний раз редактировалось Red_Red1; 19.12.2007 в 20:26..
 
Ответить с цитированием

  #1279  
Старый 19.12.2007, 21:48
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

проверил, пашет! хэши скрипт от mypass выдаёт правильные.
Хэш MySQL:6f8c114b58f2ce9e
Хэш MD5:a029d0df84eb5549c641e04a9ef389e5
Хэш SHA1:e727d1464ae12436e899a726da5b2f11d8381b26
Хэш MySQL5:6c8989366eaf75bb670ad8ea7a7fc1176a95cef4

Но вот трабла при занесении в таблицу после преобразования этих хэшей, запрос вида:
PHP код:
INSERT INTO passwd_hash (`passwd`,`code1`,`code2`,`code3`,`code4`) VALUES ('mypass','oЊKXтОћ',' )РЯ„лUIЖAаJћу‰е','з'СFJб$6и™§&Ъ[/Ш8&','l‰‰6nЇu»g ШкzБj•Оф') 
Выдаёт ошибку синтаксиса, так как после кодирования хэшей всплыли спецсимволы.
Какой тип данных поставить для полей, чтоб можно было хранить строку из любых символов (0-ff)

Напомню, мне нужно хранить (записывать) хэши в таблице(у) не в ASCII представлении, а в виде последовательности любых байтов, т.е в hex чтоб размер поля был в два раза меньше, т.е 8, 16, 20 байт для каждого типа хэша соответствено.
Использовал типы данных binary(8), binary(16), binary(20), binary(20) - непрокатывает запрос!
Тип bigint - 8 байт, подойдёт только для хранения хэша MySQL, а что делать с остальными (делить на столбцы не хотелось бы).
ЗЫ Даже тут видно, что запрос испортила всплывшая одинарная ковычка, в коде одного из хэшей.

Последний раз редактировалось -=lebed=-; 19.12.2007 в 21:53..
 
Ответить с цитированием

  #1280  
Старый 19.12.2007, 21:59
Аватар для Helios
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

varchar(8), varchar(16), varchar(20)
и прогоняй значения перед вставкой через mysql_escape_string(), она заэкранирует все спецсимволы, но мускул поймет все правильно

ЗЫ еще как вариант BLOB, но так как поле динамическое возникнут траблы с быстродействием
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ