Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
retypos-webclient
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
eterfund
retypos-webclient
Commits
151ee5b8
Commit
151ee5b8
authored
May 24, 2013
by
Vladislav Bolshakov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
barbass: рефакторинг серверной части
parent
a044c95d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
207 additions
and
4 deletions
+207
-4
configuration.php.orig
configuration.php.orig
+16
-4
functions.php
functions.php
+162
-0
language.php
language.php
+29
-0
server.php
server.php
+0
-0
No files found.
configuration.php.orig
View file @
151ee5b8
<?php
$db_name
=
'DB'
;
$db_host
=
'HOST'
;
$db_user
=
'USER'
;
$db_pass
=
'PASS'
;
//Database
define
(
'DB_DRIVER'
,
'mysql'
);
define
(
'DB_HOSTNAME'
,
'localhost'
);
define
(
'DB_USERNAME'
,
'barbass'
);
define
(
'DB_PASSWORD'
,
'pass'
);
define
(
'DB_DATABASE'
,
'barbass_typos_new'
);
//Support languages
define
(
'DEFAULT_LANGUAGE'
,
'ru'
);
$LANGUAGES
=
array
(
'ru'
);
//Минимальное время между запросами пользователя (секунды)
define
(
'MIN_TIME'
,
60
);
define
(
'EMAIL'
,
"typos@etersoft.ru"
);
?>
functions.php
0 → 100644
View file @
151ee5b8
<?php
/*************************************
* Вспомогательные функции:
* - работа с письмами
* - работа с данными сессии
* - получение REQUEST-данных
* - проверка ip и header-ов пользователя
* - валидация данных
* - вывод текста в json-формате
* - работа с url-ми
*************************************/
/*Отправка email-ов*/
function
sendMail
(
$subject
,
$body
,
$to
,
$from_email
,
$from_name
,
$type
=
'plain'
)
{
$headers
=
"X-PHP-Script: "
.
$_SERVER
[
"SERVER_NAME"
]
.
$_SERVER
[
"REQUEST_URI"
]
.
" for "
.
$_SERVER
[
'SERVER_ADDR'
]
.
"
\r\n
"
;
$headers
.=
"MIME-Version: 1.0
\r\n
"
;
$headers
.=
"Return-path: <"
.
$from_email
.
">
\r\n
"
;
$headers
.=
"Content-type: text/"
.
$type
.
"; format=flowed; charset=utf-8; reply-type=original
\r\n
"
;
$headers
.=
"Content-Transfer-Encoding: 8bit
\r\n
"
;
$headers
.=
"X-Priority: 3
\r\n
"
;
$headers
.=
"X-MSMail-Priority: Normal
\r\n
"
;
$headers
.=
"X-Mailer: Automatic PHP Script
\r\n
"
;
$headers
.=
"From:"
.
$from_name
.
"<"
.
$from_email
.
">
\r\n
"
;
if
(
mail
(
$to
,
$subject
,
$body
,
$headers
))
{
return
true
;
}
else
{
return
false
;
}
}
/*Формирование списка кому отправлять email-ы*/
function
toEmail
(
$data
)
{
$to
=
""
;
$count
=
count
(
$data
);
for
(
$i
=
0
;
$i
<
$count
;
$i
++
)
{
$to
.=
$data
[
$i
][
'email'
];
if
(
$i
<
(
$count
-
1
))
{
$to
.=
","
;
}
}
return
$to
;
}
/*Проверяем хэдеры на "человечость"*/
function
checkHeader
()
{
if
(
empty
(
$_SERVER
[
'HTTP_ACCEPT'
])
||
empty
(
$_SERVER
[
'HTTP_ACCEPT_ENCODING'
])
||
empty
(
$_SERVER
[
'HTTP_ACCEPT_LANGUAGE'
])
||
empty
(
$_SERVER
[
'HTTP_CONNECTION'
])
)
{
return
false
;
}
return
true
;
}
/*Получаем ip*/
function
getIp
()
{
$ip
=
''
;
if
(
!
empty
(
$_SERVER
[
'HTTP_CLIENT_IP'
]))
{
$ip
=
$_SERVER
[
'HTTP_CLIENT_IP'
];
}
elseif
(
!
empty
(
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
]))
{
$ip
=
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
];
}
elseif
(
!
empty
(
$_SERVER
[
'REMOTE_ADDR'
]))
{
$ip
=
$_SERVER
[
'REMOTE_ADDR'
];
}
else
{
return
false
;
}
return
$ip
;
}
/*Выводим массив в json-формате*/
function
echoJsonData
(
$data
)
{
global
$oldbrowser
;
if
(
$oldbrowser
==
1
)
{
echo
" <script type='text/javascript'>window.close();</script>"
;
}
else
{
echo
json_encode
(
$data
);
}
return
true
;
}
/*Устанавливаем данные в сессию*/
function
setSession
(
$key
,
$value
)
{
$_SESSION
[
strval
(
$key
)]
=
serialize
(
$value
);
}
//Получаем данные из сессии
function
getSession
(
$key
)
{
return
(
isset
(
$_SESSION
[
strval
(
$key
)]))
?
unserialize
(
$_SESSION
[
strval
(
$key
)])
:
false
;
}
/*Получаем request-данные*/
function
getRequest
(
$key
=
''
,
$return
=
false
)
{
return
(
isset
(
$_REQUEST
[
$key
]))
?
trim
(
$_REQUEST
[
$key
])
:
$return
;
}
/*Проверка данных*/
function
validate
()
{
global
$error
,
$code_language
,
$_language
;
if
(
!
checkHeader
()
&&
!
getIp
())
{
$error
=
$_language
[
$code_language
][
"error_header"
];
return
false
;
}
if
(
strlen
(
rawurldecode
(
getRequest
(
'url'
,
''
)))
<=
0
)
{
$error
=
$_language
[
$code_language
][
"error_url"
];
return
false
;
}
if
(
!
checkUrl
(
getRequest
(
'url'
,
''
)))
{
$error
=
$_language
[
$code_language
][
"error_valid_url"
];
return
false
;
}
if
(
strlen
(
getRequest
(
'text'
,
''
))
<
5
||
strlen
(
getRequest
(
'text'
,
''
))
>
30
)
{
$error
=
sprintf
(
$_language
[
$code_language
][
"error_text"
],
5
,
30
,
strlen
(
getRequest
(
'text'
,
''
)));
return
false
;
}
if
(
strlen
(
getRequest
(
'comment'
,
''
))
>
30
)
{
$_language
[
'ru'
][
'error_comment'
]
=
sprintf
(
$_language
[
$code_language
][
"error_text"
],
30
,
strlen
(
getRequest
(
'text'
,
''
)));
return
false
;
}
return
true
;
}
/*Проверка url-а*/
function
checkUrl
(
$url
=
''
)
{
//удаление опасных сиволов
$url
=
trim
(
preg_replace
(
"/[^
\x20
-
\xFF
]/"
,
""
,
@
strval
(
$url
)));
//проверяем УРЛ на правильность
if
(
!
preg_match
(
"~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]
{
1,32
}
"
.
"(?::[a-z0-9_-]
{
1,32})?@)?)?(?:(?:[a-z0-9-]{1,128
}
\.)+(?:com|net|"
.
"org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]
{
2
}
)|(?!0)(?:(?"
.
"!0[^.]|255)[0-9]
{
1,3}\.){3}(?!0|255)[0-9]{1,3
}
)(?:/[a-z0-9.,_@%&"
.
"?+=\~/-]*)?(?:#[^ '
\"
&<>]*)?$~i"
,
$url
))
{
return
false
;
}
return
true
;
}
function
getFormatingUrl
(
$url
)
{
//удаление опасных сиволов
$url
=
trim
(
preg_replace
(
"/[^
\x20
-
\xFF
]/"
,
""
,
@
strval
(
$url
)));
//если нет протокола - добавляет http://
if
(
!
strstr
(
$url
,
"://"
))
{
$url
=
"http://"
.
$url
;
}
//заменить протокол на нижний регистр: hTtP -> http
$url
=
preg_replace
(
"~^[a-z]+~ie"
,
"strtolower('
\\
0')"
,
$url
);
return
$url
;
}
?>
language.php
0 → 100644
View file @
151ee5b8
<?php
/*Языковые сообщения*/
//Error
$_language
[
'ru'
][
'error_time_activity'
]
=
"Вы слишком часто отправляете данные"
;
$_language
[
'ru'
][
'error_connect_database'
]
=
"Ошибка при подключении к базе данных"
;
$_language
[
'ru'
][
'error_database'
]
=
"Ошибка при работе с базой данных"
;
$_language
[
'ru'
][
'error_header'
]
=
"Отсутствуют ip или заголовки ответа"
;
$_language
[
'ru'
][
'error_url'
]
=
"Отсутствует url сайта"
;
$_language
[
'ru'
][
'error_valid_url'
]
=
"Не верный формат url-а сайта"
;
$_language
[
'ru'
][
'error_text'
]
=
"Длина текста должна быть от %s до %s символов (сейчас: %s)"
;
$_language
[
'ru'
][
'error_comment'
]
=
"Длина комментария должна быть до %s символов (сейчас: %s) "
;
$_language
[
'ru'
][
'error_support_site'
]
=
"Сайт не поддерживается"
;
//Success
$_language
[
'ru'
][
'text_success'
]
=
"Данные сохранены. Спасибо за внимание!"
;
//Mail
$_language
[
'ru'
][
'mail_subject'
]
=
"Сообщение об опечатке"
;
$_language
[
'ru'
][
'mail_from'
]
=
"Служба опечаток Etersoft"
;
$_language
[
'ru'
][
'mail_error'
]
=
"Ошибка при отправлении письма"
;
$_language
[
'ru'
][
'mail_site'
]
=
"Сайт:"
;
$_language
[
'ru'
][
'mail_url'
]
=
"Ссылка:"
;
$_language
[
'ru'
][
'mail_click_url'
]
=
"нажмите:"
;
$_language
[
'ru'
][
'mail_comment'
]
=
"Комментарий:"
;
$_language
[
'ru'
][
'mail_text'
]
=
"Текст с опечаткой:"
;
?>
server.php
View file @
151ee5b8
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment