PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (183): В начало « ... 175 176 177 178 179 180 181 [182] 183 »
Найдено сообщений: 2732
Bio man
Отправлено: 30 Июля, 2011 - 14:34:44 • Тема: обработка данных с целью защиты • Форум: Хранение данных, их вывод и обработка
Ответов: 7 Просмотров: 2264
koka , да хрен его знает, стоит денвер на локалки. спасибо за ответы, будет над чем поработать
(Добавление)
пока такое понимание: число надо проверять или присваивать соответствующий тип данных. строки надо экранировать.
а теперь по экранированию. как? какую функцию использовать или использовать все ф-ции экранирования к проверяемой строке?
а то пишут: используйте это, это или это! а я че программист с 10 летним стажем, от куда мне знать что именно надо!? по мне так что strip_tags(), что htmlentities(), что htmlspecialchars() и другие, почти что одинаковы
Bio man
Отправлено: 30 Июля, 2011 - 13:51:47 • Тема: обработка данных с целью защиты • Форум: Хранение данных, их вывод и обработка
Ответов: 7 Просмотров: 2264
1 вопрос. как обрабатывать введенные пользователем данные, что бы он не смог совешить sql иньекцию или каким то другим способом нарушить работу скрипта или даже всего проекта...
2 вопрос. какие уязвимости сессий? и как их устранить?
Bio man
Отправлено: 29 Июля, 2011 - 16:29:22 • Тема: ООП и структурный подход • Форум: Объектно-ориентированное программирование
Ответов: 6 Просмотров: 2547
спасибо за советы. нащет массива пост, не знаю другого приема как определить были ли данные переданы скрипту на обработку или нет, мне кажется самое простое решение. хочу уточнить, во всех случаях эти переменные будут false?
Bio man
Отправлено: 28 Июля, 2011 - 22:27:11 • Тема: ООП и структурный подход • Форум: Объектно-ориентированное программирование
Ответов: 6 Просмотров: 2547
что лучше?
1 вариант: PHP:
скопировать код в буфер обмена
<?PHP
require_once "common.php" ;
require_once "modules/getpost.php" ;
class register extends getpost {
private $error = false ;
private $errortext = array ( ) ; private $show_reg = true ;
function __construct( $lang ) {
$html = new template( false ) ;
if ( $_POST ) {
parent:: __construct( ) ;
$this -> validate ( $html , $lang ) ;
}
if ( $this -> show_reg ) {
$html -> set_filenames ( array ( 'register' => 'register.html' ) ) ; $html -> set_vars ( array ( 'TITLE' => $lang [ 'register' ] [ 'title' ] , 'USERNAME' => $lang [ 'register' ] [ 'username' ] ,
'PASSWORD' => $lang [ 'register' ] [ 'password' ] ,
'R_PASSWORD' => $lang [ 'register' ] [ 'r_password' ] ,
'SEX' => $lang [ 'sex' ] [ 'sex' ] ,
'MAN' => $lang [ 'sex' ] [ 'M' ] ,
'WOMAN' => $lang [ 'sex' ] [ 'W' ] ,
'EMAIL' => $lang [ 'general' ] [ 'email' ] ,
'REGISTER' => $lang [ 'register' ] [ 'register' ]
) ) ;
$html -> parse ( 'register' ) ;
}
}
private function insert_in_db( $html , $lang ) {
$db = new database( ) ;
$sql = "INSERT INTO `users` (`username`, `password`, `sex`, `e-mail`, `reg_time`, `last_visit`) VALUES ('{$this->post['username']} ', '{$this->post['password1']} ', '{$this->post['sex']} ', '{$this->post['email']} ', NOW(), NOW())" ;
$db -> db ( 'query' , $sql ) ;
if ( $db -> result ) {
$this -> show_reg = false ;
$_SESSION [ 'logged_in' ] = true ;
$sql = "SELECT `id` FROM `users` WHERE `username` = '{$this->post['username']} ' AND `password` = '{$this->post['password1']} '" ;
$db -> db ( 'array' , $sql ) ;
$_SESSION [ 'id' ] = $db -> array [ 'id' ] ;
$html = new template( $user = new user( $lang ) ) ;
$html -> set_filenames ( array ( 'welcome' => 'welcome.html' ) ) ; $html -> set_vars ( array ( 'TITLE' => $lang [ 'login' ] [ 'welcome' ] . ', ' . $user -> user_data [ 'username' ] , 'ENTER' => $lang [ 'login' ] [ 'enter' ]
) ) ;
$html -> parse ( 'welcome' ) ;
}
else {
}
}
private function validate( $html , $lang ) {
if ( empty ( $this -> post [ 'username' ] ) ) { $this -> error = true ;
$this -> errortext [ ] = $lang [ 'errors' ] [ 'empty_un' ] ;
}
else {
if ( strlen ( $this -> post [ 'username' ] ) < 4
|| strlen ( $this -> post [ 'username' ] ) > 20
) { $this -> error = true ;
$this -> errortext [ ] = $lang [ 'errors' ] [ 'un_len' ] ;
}
else {
$db = new database( ) ;
$db -> db ( 'num_rows' , "SELECT `id` FROM `users` WHERE `username` = '{$this->post['username']} '" ) ;
if ( $db -> num_rows ) {
$this -> error = true ;
$this -> errortext [ ] = $lang [ 'errors' ] [ 'un_exists' ] ;
}
}
}
if ( empty ( $this -> post [ 'password1' ] ) ) { $this -> error = true ;
$this -> errortext [ ] = $lang [ 'errors' ] [ 'empty_pass' ] ;
}
else {
if ( strlen ( $this -> post [ 'password1' ] ) < 6
) { $this -> error = true ;
$this -> errortext [ ] = $lang [ 'errors' ] [ 'pass_len' ] ;
}
else {
if ( $this -> post [ 'password1' ] != $this -> post [ 'password2' ] ) {
$this -> error = true ;
$this -> errortext [ ] = $lang [ 'errors' ] [ 'pass_n_m' ] ;
}
}
}
if ( $this -> error ) {
$errortext = '<font color="#FF0000"><ul><li>' . implode ( '</li><li>' , $this -> errortext ) . '</li></ul></font>' ; $html -> set_var ( 'ERROR' , $errortext ) ;
}
else $this -> insert_in_db ( $html , $lang ) ;
}
}
new register( $lang ) ;
?>
или:
PHP:
скопировать код в буфер обмена
<?PHP
require_once "common.php" ;
require_once "modules/getpost.php" ;
$error = false ;
$show_reg = true ;
$html = new template( false ) ;
if ( $_POST ) {
$data = new getpost( ) ;
if ( empty ( $data -> post [ 'username' ] ) ) { $error = true ;
$errortext [ ] = $lang [ 'errors' ] [ 'empty_un' ] ;
}
else {
if ( strlen ( $data -> post [ 'username' ] ) < 4
|| strlen ( $data -> post [ 'username' ] ) > 20
) { $error = true ;
$errortext [ ] = $lang [ 'errors' ] [ 'un_len' ] ;
}
else {
$db = new database( ) ;
$db -> db ( 'num_rows' , "SELECT `id` FROM `users` WHERE `username` = '{$data->post['username']} '" ) ;
if ( $db -> num_rows ) {
$error = true ;
$errortext [ ] = $lang [ 'errors' ] [ 'un_exists' ] ;
}
}
}
if ( empty ( $data -> post [ 'password1' ] ) ) { $error = true ;
$errortext [ ] = $lang [ 'errors' ] [ 'empty_pass' ] ;
}
else {
if ( strlen ( $data -> post [ 'password1' ] ) < 6
) { $error = true ;
$errortext [ ] = $lang [ 'errors' ] [ 'pass_len' ] ;
}
else {
if ( $data -> post [ 'password1' ] != $data -> post [ 'password2' ] ) {
$error = true ;
$errortext [ ] = $lang [ 'errors' ] [ 'pass_n_m' ] ;
}
}
}
if ( $error ) {
$errortext = '<font color="#FF0000"><ul><li>' . implode ( '</li><li>' , $errortext ) . '</li></ul></font>' ; $html -> set_var ( 'ERROR' , $errortext ) ;
}
else {
/////
$db = new database( ) ;
$sql = "INSERT INTO `users` (`username`, `password`, `sex`, `e-mail`, `reg_time`, `last_visit`) VALUES ('{$data->post['username']} ', '{$data->post['password1']} ', '{$data->post['sex']} ', '{$data->post['email']} ', NOW(), NOW())" ;
$db -> db ( 'query' , $sql ) ;
if ( $db -> result ) {
$show_reg = false ;
$_SESSION [ 'logged_in' ] = true ;
$sql = "SELECT `id` FROM `users` WHERE `username` = '{$data->post['username']} ' AND `password` = '{$data->post['password1']} '" ;
$db -> db ( 'array' , $sql ) ;
$_SESSION [ 'id' ] = $db -> array [ 'id' ] ;
$html = new template( $user = new user( $lang ) ) ;
$html -> set_filenames ( array ( 'welcome' => 'welcome.html' ) ) ; $html -> set_vars ( array ( 'TITLE' => $lang [ 'login' ] [ 'welcome' ] . ', ' . $user -> user_data [ 'username' ] , 'ENTER' => $lang [ 'login' ] [ 'enter' ]
) ) ;
$html -> parse ( 'welcome' ) ;
}
else {
}
/////
}
}
if ( $show_reg ) {
$html -> set_filenames ( array ( 'register' => 'register.html' ) ) ; $html -> set_vars ( array ( 'TITLE' => $lang [ 'register' ] [ 'title' ] , 'USERNAME' => $lang [ 'register' ] [ 'username' ] ,
'PASSWORD' => $lang [ 'register' ] [ 'password' ] ,
'R_PASSWORD' => $lang [ 'register' ] [ 'r_password' ] ,
'SEX' => $lang [ 'sex' ] [ 'sex' ] ,
'MAN' => $lang [ 'sex' ] [ 'M' ] ,
'WOMAN' => $lang [ 'sex' ] [ 'W' ] ,
'EMAIL' => $lang [ 'general' ] [ 'email' ] ,
'REGISTER' => $lang [ 'register' ] [ 'register' ]
) ) ;
$html -> parse ( 'register' ) ;
}
?>
если не сложно, проверьте какие недостатки и ошибки
Bio man
Отправлено: 27 Июля, 2011 - 14:26:39 • Тема: ООП и структурный подход • Форум: Объектно-ориентированное программирование
Ответов: 6 Просмотров: 2547
изначально писал скрипт регистрации на ооп, и решил сравнить с классичеким подходом. время генерации сильно не отличилось, НО как обстоят дела с памятью? какой подход использовать при написании простых страниц, например регистрации, index.php, и других?
Bio man
Отправлено: 25 Июля, 2011 - 15:54:01 • Тема: вывод в браузер • Форум: Вопросы новичков
Ответов: 2 Просмотров: 154
почему такое большое пустое пространство? в чем может быть проблема? вывожу через шаблонизатор, trim() не помогает
(Добавление)
это source code страницы
Bio man
Отправлено: 25 Июля, 2011 - 00:36:54 • Тема: вопрос по браузерам • Форум: Вопросы новичков
Ответов: 6 Просмотров: 273
grefon пишет: Я
тут класс когда-то выкладывал, который Вам очень поможет.
спасибо
(Добавление)
как он долго выполняется! по проще нечего нету?
Bio man
Отправлено: 25 Июля, 2011 - 00:10:30 • Тема: вопрос по браузерам • Форум: Вопросы новичков
Ответов: 6 Просмотров: 273
grefon пишет: Делайте по HTTP_USER_AGENT, это самый простой и верный способ.
ну это понятно. меня интересует на что проверять? на движок (не знаю в каждом ли браузере пишется название движка) или на само название браузера? если делать второе то это очень долга и код будет длинным, как упрастить?
Цитата:
IE8 впервые начал указывать название своего движка в заголовке UserAgent запроса - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/…).
тоесть IE7 по движку уже не проверишь
Bio man
Отправлено: 24 Июля, 2011 - 23:41:09 • Тема: вопрос по браузерам • Форум: Вопросы новичков
Ответов: 6 Просмотров: 273
как определить является ли браузер пользователя web браузером? то есть если зашел с компа то выводим контент для компа, если же с телефона то для телефона... может проверять по движку HTTP_USER_AGENT, то есть если движок допустим Gecko то говорим что это web браузер... или не каждый браузер показывает движок в HTTP_USER_AGENT?
Bio man
Отправлено: 24 Июля, 2011 - 23:13:57 • Тема: массивы • Форум: Вопросы новичков
Ответов: 1 Просмотров: 125
столкнулся с вопросом, что лучше, иметь один большой массив или несколько маленьких? что будет производительней? нужно для организации языковых массивов
Bio man
Отправлено: 06 Апреля, 2011 - 18:03:05 • Тема: Warning • Форум: Программирование на PHP
Ответов: 6 Просмотров: 377
заработало! тока с кодировкой проблема... в скрипте где языковой массив установлена кодировка utf-8 а браузер отображает не в utf-8... в шаблоне в мета теге менял кодировку на utf-8 но без результатов. как решить проблему?
Страниц (183): В начало « ... 175 176 177 178 179 180 181 [182] 183 »
Powered by ExBB FM 1.0 RC1. InvisionExBB