PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (7): « 1 2 [3] 4 5 6 7 »
Найдено сообщений: 94
Ley4ik_Russia
Отправлено: 26 Декабря, 2011 - 13:48:43 • Тема: Проверка Captcha с помощью Ajax • Форум: JavaScript & VBScript
Ответов: 1 Просмотров: 2124
Доброго всем дня, установил капчу на форму обратной связи у себя на сайте, http://w3box[dot]ru/captcha/ . Хочется сделать Ajax проверку введенного пользователем кода, без перезагрузки страницы,но в JS абсолютно не волоку. Из всех представленных в интернете не приглянулось ни чего.
Файл captcha.php:
Спойлер (Отобразить )
PHP:
скопировать код в буфер обмена
<?PHP
/*
w3captcha - php-скрипт для генерации изображений CAPTCHA
версия: 1.1 от 08.02.2008
разработчики: http://w3box.ru
тип лицензии: freeware
w3box.ru © 2008
*/
$count = 5 ; /* количество символов */
$width = 100 ; /* ширина картинки */
$height = 48 ; /* высота картинки */
$font_size_min = 32 ; /* минимальная высота символа */
$font_size_max = 32 ; /* максимальная высота символа */
$font_file = "./fonts/Comic_Sans_MS.ttf" ; /* путь к файлу относительно w3captcha.php */
$char_angle_min =- 10 ; /* максимальный наклон символа влево */
$char_angle_max = 10 ; /* максимальный наклон символа вправо */
$char_angle_shadow = 5 ; /* размер тени */
$char_align = 40 ; /* выравнивание символа по-вертикали */
$start = 5 ; /* позиция первого символа по-горизонтали */
$interval = 16 ; /* интервал между началами символов */
$chars = "0123456789" ; /* набор символов */
$noise = 10 ; /* уровень шума */
$str = "" ;
for ( $i = 0 ; $i < $count ; $i ++ )
{
$char = $chars [ rand ( 0
, $num_chars - 1
) ] ; $font_size = rand ( $font_size_min , $font_size_max ) ; $char_angle = rand ( $char_angle_min , $char_angle_max ) ; imagettftext ( $image , $font_size , $char_angle , $start , $char_align , $font_color , $font_file , $char ) ; imagettftext ( $image , $font_size , $char_angle + $char_angle_shadow * ( rand ( 0
, 1
) * 2
- 1
) , $start , $char_align , $background_color , $font_file , $char ) ; $start += $interval ;
$str .= $char ;
}
if ( $noise )
{
for ( $i = 0 ; $i < $width ; $i ++ )
{
for ( $j = 0 ; $j < $height ; $j ++ )
{
$r = ( $rgb >> 16) & 0xFF ;
$g = ( $rgb >> 8) & 0xFF ;
$b = $rgb & 0xFF ;
$k = rand ( - $noise , $noise ) ; $rn = $r + 255* $k / 100 ;
$gn = $g + 255* $k / 100 ;
$bn = $b + 255* $k / 100 ;
if ( $rn < 0) $rn = 0 ;
if ( $gn < 0) $gn = 0 ;
if ( $bn < 0) $bn = 0 ;
if ( $rn > 255) $rn = 255 ;
if ( $gn > 255) $gn = 255 ;
if ( $bn > 255) $bn = 255 ;
}
}
}
$_SESSION [ "captcha" ] = $str ;
{
header ( "Content-type: image/png" ) ; }
{
header ( "Content-type: image/gif" ) ; }
{
header ( "Content-type: image/jpeg" ) ; }
?>
Файл contact.php:
Спойлер (Отобразить )
PHP:
скопировать код в буфер обмена
<?
if ( isset ( $_SESSION [ "captcha" ] ) && $_SESSION [ "captcha" ] === $_POST [ "captcha" ] ) {
If ( ! empty ( $_POST [ 'name' ] ) && ! empty ( $_POST [ 'address' ] ) && ! empty ( $_POST [ 'message' ] ) ) {
$name = $_POST [ 'name' ] ;
$address = $_POST [ 'address' ] ;
$message = $_POST [ 'message' ] ;
If ( Filter_Var ( $address , FILTER_VALIDATE_EMAIL
) ) { $servname = $_SERVER [ 'SERVER_NAME' ] ;
$to = 'xxx@xx.xx' ;
$subject = 'Комментарий с сайта ' . $servname . ' от ' . $name ;
$from = 'From: ' . $address . "\r \n " ;
$letter =
"Имя: $name
E-mail: $address
Сообщение: $message
Дата: $date " ;
If ( mail ( $to , $subject , $letter , $from ) ) {
?>
<p>Ваше сообщение принято к отправке. Спасибо за проявленный интерес.</p>
<p>Вы будете перемещены на <a href="http://netboot.tk">Главную страницу</a> через 5 сек.</p>
<script type="text/javascript">
setTimeout("location.href='http://netboot.tk'",5000)
</script>
<?
}
else
{
?>
<p>Ошибка: Сообщение не может быть отправлено! Возможно проблемы на хостинге, попробуйте позже.</p>
<p>Вы будете перемещены назад через 5 секунд.</p>
<script type="text/javascript">
setTimeout("history.back()",5000)
</script>
<?
}
}
Else
{
?>
<p>Вы ввели неверный E-mail адрес!</p>
<p>Вы будете перемещены назад через 5 секунд.</p>
<script type="text/javascript">
setTimeout("history.back()",5000)
</script>
<?
}
}
Else
{
?>
<p>Вы не заполнили нужные поля!</p>
<p>Вы будете перемещены назад через 5 секунд.</p>
<script type="text/javascript">
setTimeout("history.back()",5000)
</script>
<?
}
}
Else
{
?>
<p>Обновите Captcha-код и введите заново.</p>
<p>Вы будете перемещены назад через 5 секунд.</p>
<script type="text/javascript">
setTimeout("history.back()",5000)
</script>
<?
}
unset ( $_SESSION [ "captcha" ] ) ;
?>
Сама форма:
Спойлер (Отобразить )
CODE (
html ):
скопировать код в буфер обмена
<form method = "post" action = "contact.php" >
<p >
Ваше имя*:
</ p >
<p >
<input type = "text" name = "name" size = "26" value = "" / >
</ p >
<p >
Ваш E-mail*:
</ p >
<p >
<input type = "text" name = "address" size = "26" value = "" / >
</ p >
<p >
Ваше сообщение*:
</ p >
<p >
<textarea name = "message" cols = "100" rows = "12" ></ textarea >
</ p >
<p >
<img src = "/captcha.php" alt = "Captcha" id = "captcha" / >
</ p >
<p >
<a href = "javascript: image_reload();" > Обновить код</ a >
</ p >
<p >
Введите код с изображения*:
</ p >
<p >
<input name = "captcha" type = "text" size = "26" / >
</ p >
<p >
* - Поле обязательно для заполнения.
</ p >
<p >
<input type = "submit" value = "Отправить" / >
</ p >
</ form >
Ley4ik_Russia
Отправлено: 23 Декабря, 2011 - 14:32:40 • Тема: Защита от хотлинкинга • Форум: Apache и другие веб-серверы
Ответов: 5 Просмотров: 593
Здравствуйте, пытаюсь защитить свои файлы от хотлинкинга, бьюсь пол дня, но ни чего не выходит, писал в ТП хостинга, сказали надо всего то в начале фала добавить RewriteBase /
Хотя эта запись и присутсвовала защита не работает вот код в файле .htaccess. При переходе по ссылке mysite.ru/image/img.jpg открывается изображение (((
CODE (
htmlphp ):
скопировать код в буфер обмена
RewriteEngine On
RewriteCond % { HTTP_REFERER} ! ^$
RewriteCond % { HTTP_REFERER} ! ^http( s) ?: //(www.)?mysite.ru[NC]
RewriteRule .* \. ( 1 ) $ - [ NC, F, L]
Ley4ik_Russia
Отправлено: 07 Декабря, 2011 - 15:21:51 • Тема: Как предотвратить загрузку странички в которой нет меню и стилей? • Форум: Вопросы новичков
Ответов: 8 Просмотров: 252
LIME пишет: Ley4ik_Russia не надо переживать))
поисковик как и любой юзер не будет видеть какой вы подключаете файл
(Добавление)
он будет индексировать страницу целиком по URL (вместе с параметрами)
т.е. он не проиндексирует файлы page*.php в которых находится контент, отдельно от index.php? И ни при каких обстоятельствах не выведет на них прямую ссылку?
Ley4ik_Russia
Отправлено: 07 Декабря, 2011 - 15:11:13 • Тема: Как предотвратить загрузку странички в которой нет меню и стилей? • Форум: Вопросы новичков
Ответов: 8 Просмотров: 252
У меня в меню ссылки вида href="/index.php?id=1"
т.е. отправляем $_GET запрос серверу и получаем имя странички. Вроде все работает хорошо, но переживаю за то, что поисковик проиндексирует все странички, и будет давать прямые ссылки на страницу, т.е. http://mysite.ru/page0.php, а в этих страничках находится только контент, появится страница с текстом, без навигации и стилей. Как это предотвратить и при этом не инклудить в каждую страницу меню и остальное?
Вот код странички index.php:
Спойлер (Отобразить )
CODE (
htmlphp ):
скопировать код в буфер обмена
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns= "http://www.w3.org/1999/xhtml" >
< head>
< meta http- equiv= "Content-Type" content= "text/html; charset=windows-1251" />
< title> NetBoot</ title>
< link rel= "stylesheet" href= "css/div.css" type= "text/css" />
< link rel= "stylesheet" type= "text/css" href= "css/jqueryslidemenu.css" />
< script type= "text/javascript" src= "js/jquery.min.js" ></ script>
< script type= "text/javascript" src= "js/jqueryslidemenu.js" ></ script>
</ head>
< body>
<?
Include( 'Menu.php' ) ;
?>
< div id= "content" >
<?
$Links = Array ( '0' => 'page0.php' , '1' => 'page1.php' , '2' => 'page2.php' , '3' => 'page3.php' , '4' => 'page4.php' , '5' => 'page5.php' , '6' => 'page6.php' , '7' => 'page7.php' , '8' => 'page8.php' ) ; {
$id = $_GET [ 'id' ] ;
}
Else
{
$id = 0 ;
}
{
ForEach( $Links as $num => $page )
{
If( $id == $num )
{
Include( $page ) ;
}
Continue;
}
}
Else
{
Include( 'page0.php' ) ;
}
?>
</ div>
<?
Include( 'Footer.php' ) ;
Include( 'Icons.php' ) ;
?>
</ body>
</ html>
Этим кодом получаю имя страницы, которую надо загрузить в DIV, из ссылки в меню:
Спойлер (Отобразить )
CODE (
htmlphp ):
скопировать код в буфер обмена
< div id= "content" >
<?
$Links = Array ( '0' => 'page0.php' , '1' => 'page1.php' , '2' => 'page2.php' , '3' => 'page3.php' , '4' => 'page4.php' , '5' => 'page5.php' , '6' => 'page6.php' , '7' => 'page7.php' , '8' => 'page8.php' ) ; {
$id = $_GET [ 'id' ] ;
}
Else
{
$id = 0 ;
}
{
ForEach( $Links as $num => $page )
{
If( $id == $num )
{
Include( $page ) ;
}
Continue;
}
}
Else
{
Include( 'page0.php' ) ;
}
?>
</ div>
Ley4ik_Russia
Отправлено: 02 Июля, 2011 - 18:05:36 • Тема: Описание и функции php модулей • Форум: PEAR и PECL
Ответов: 0 Просмотров: 2316
Здравствуйте, где найти описание и функции для ниже приведенных модулей?
Спойлер (Отобразить ) php5activescript.dll
php_adt.dll
php_amf.dll
php_bcompiler.dll
php_bitset.dll
php_blenc.dll
php_bz2_filter.dll
php_classkit.dll
php_cpdf.dll
php_crack.dll
php_cvsclient.dll
php_db.dll
php_dbx.dll
php_dio.dll
php_docblock.dll
php_domxml.dll
php_doublemetaphone.dll
php_event.dll
php_fileinfo.dll
php_filepro.dll
php_gopher.dll
php_haru.dll
php_htscanner.dll
php_http.dll
php_hyperwave.dll
php_ibm_db2.dll
php_id3.dll
php_ifx.dll
php_iisfunc.dll
php_ingres2.dll
php_lzf.dll
php_mailparse.dll
php_maxdb.dll
php_mcrypt_filter.dll
php_mcve.dll
php_memcache.dll
php_netools.dll
php_ntuser.dll
php_oggvorbis.dll
php_operator.dll
php_oracle.dll
php_params.dll
php_parsekit.dll
php_pdflib.dll
php_pdo_ibm.dll
php_pdo_informix.dll
php_pdo_user.dll
php_phar.dll
php_phk.dll
php_phpdoc.dll
php_pop3.dll
php_printer.dll
php_radius.dll
php_rar.dll
php_runkit.dll
php_sam.dll
php_sdo.dll
php_smtp.dll
php_spl_types.dll
php_ssh2.dll
php_stats.dll
php_stem.dll
php_threads.dll
php_timezonedb.dll
php_translit.dll
php_uploadprogress.dll
php_win32ps.dll
php_win32scheduler.dll
php_win32service.dll
php_win32std.dll
php_yami.dll
php_zlib_filter.dll
Ley4ik_Russia
Отправлено: 21 Июня, 2011 - 15:45:44 • Тема: Удаленная консоль для Windows • Форум: Напишите за меня, пожалуйста
Ответов: 3 Просмотров: 46
EuGen пишет: Делать это через AJAX, спрашивая сервер.
При этом, видимо, придется хитрить - перенаправлять вывод команды в некоторый файл, а при запросе через AJAX - показывать скриптом содержимое файла.
Ну или же используйте FF и его WebSockets (правда, он отключен по-умолчанию).
Или же сесть, задуматься, для чего это нужно и решить альтернативным способом.
т.е. на чистом php такое не реализовать? а если как то использовать Функции управления выводом?
Ley4ik_Russia
Отправлено: 21 Июня, 2011 - 15:29:59 • Тема: Удаленная консоль для Windows • Форум: Напишите за меня, пожалуйста
Ответов: 3 Просмотров: 46
Здраствуйте)
Нужно сделать удаленную "консоль" для Windows, т.е. есть сервер PHP, HTTP. мне нужно чтобы я мог ввести команду CMD (например Ping) а на странице в реальном времени отображался ход выполнения команды, потому что некоторые команды требуют много времени для выполнения и хотелось бы видеть именно ход выполнения , а не только результат))команда выполняется на сервере функцией shell_exec()
Ley4ik_Russia
Отправлено: 18 Мая, 2011 - 09:21:01 • Тема: Функция поиска файлов по расширению • Форум: Напишите за меня, пожалуйста
Ответов: 4 Просмотров: 55
EuGen пишет: Ley4ik_Russia пишет: findFiles($dir, $exts, $recursive, $with_dir);
Задачу, подозреваю, нужно адресовать этой функции.
PHP:
скопировать код в буфер обмена
function findFiles( $dir , $exts = null , $recursive = false , $with_dir = false ) {
$dir = replaceSl( $dir ) ;
$check_ext = $exts ;
while ( ( $file = readdir ( $handle ) ) !== false ) {
if ( $file == '.' || $file == '..' ) continue ;
if ( $check_ext ) {
if ( checkExt( $file , $exts ) )
$result [ ] = $with_dir ? $dir . '/' . $file : $file ;
} else {
$result [ ] = $with_dir ? $dir . '/' . $file : $file ;
}
} elseif ( $recursive && is_dir ( $dir . '/' . $file ) ) {
$result = array_merge ( $result , findFiles
( $dir . '/' . $file , $exts , true , $with_dir ) ) ; }
}
return $result ;
}
потому что в windows есть папки типа System Volume information, к которым доступ закрыт
Страниц (7): « 1 2 [3] 4 5 6 7 »
Powered by ExBB FM 1.0 RC1. InvisionExBB