PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (91): В начало « ... 76 77 78 79 [80] 81 82 83 84 ... » В конец
Найдено сообщений: 1361
Саныч
Отправлено: 31 Октября, 2010 - 19:41:19 • Тема: 2 вывода из базы • Форум: Напишите за меня, пожалуйста
Ответов: 4 Просмотров: 73
Мне кажется ошибка в самом запросе к базе...
Да и еще, вместо do-while лучше использовать while. Разница в том, что первый делает, потом проверяет условие, а второй наоборот.
Саныч
Отправлено: 30 Октября, 2010 - 21:00:01 • Тема: Функция выдает сплошные вопросики • Форум: SQL и Архитектура БД
Ответов: 5 Просмотров: 83
Ну все правильно вам подсказали. Сейчас у вас получатется что из бд приходет в utf-8, а вы показываете в windows-1251. Отсюда и вопросы...
Пропишите в начале файла
з.ы. зачем вам эта cp1251, юзайте utf она универсальна
Саныч
Отправлено: 30 Октября, 2010 - 08:49:03 • Тема: Авторизация • Форум: Программирование на PHP
Ответов: 33 Просмотров: 2107
ничем не отличаются, это об одном и томже только по разному написано
Саныч
Отправлено: 30 Октября, 2010 - 00:03:37 • Тема: Ошибка бд? • Форум: SQL и Архитектура БД
Ответов: 6 Просмотров: 79
А разве скрипту не все равно, какое значение... Здесь скорей всего дело в чем-то другом.
Саныч
Отправлено: 29 Октября, 2010 - 23:57:59 • Тема: Система авторизации • Форум: Программирование на PHP
Ответов: 4 Просмотров: 652
Делаю сайт, сделал систему авторизации. Все работает как и предпологалось, проблем нет... Нужно ваше мнение по поводу, возможных ошибок и т.д. Вобщем любая критика
Выкладую код с поясняющими комментами, чтоб было понятней
PHP:
скопировать код в буфер обмена
class Users
{
/*
--- session status ---
11 - логин <3 или >20 символов, либо в нем присутствуют недопустимые символы
12 - пользователь с таким логином не зарегистрирован
13 - пароль <6 или >20 символов, либо в нем присутствуют недопустимые символы
14 - неверный пароль
10 - все ОК (вход через форму)
21 - пользоател с указанным id не найден
22 - пароль сессии не соответствует паролю базы
23 - неверный ip (сессии)
20 - все ОК (вход по сессиям)
31 - пользоател с указанным id не найден
32 - пароль куки не соответствует паролю в базе
33 - неверный ip (куки)
30 - все ОК (вход по кукам)
40 - вход не осуществлен
41 - вы заблокированы (лимит авторизаций)
42 - система пользователей отключена
*/
public function session( )
{
//проверка включенности системы
if ( ! _USERS || ! $this -> sets [ 'user_system' ] ) return $this -> user_setts ( 42) ;
//проверка на блокировку
$sql = mysql_query ( $this -> Mysql -> test_login_errors ( 1
) ) ; {
if ( $res [ 'time' ] + ( $this -> sets [ 'user_login_error_time' ] * 3600
) > TIME ) return $this -> user_setts ( 41
) ; }
//запуск сессии
//вход через форму
if ( isset ( $_POST [ 'login' ] ) && isset ( $_POST [ 'name' ] ) && isset ( $_POST [ 'pass' ] ) ) {
$login = trim ( $_POST [ 'name' ] ) ; $password = trim ( $_POST [ 'pass' ] ) ; //проверка логина (шаблон)
if ( ! preg_match ( '/^[a-z0-9][a-z0-9\-\_]{1,18}[a-z0-9]$/i' , $login ) ) return $this -> user_setts ( 11
) ; //проверка пароля (шаблон)
$regexp = $this -> sets [ 'user_password_type' ] ?
'/^[a-z0-9][a-z0-9 \-\_\&\#\$\^\.\,\;\:\=\+\*\/\(\)\{\}\[\]\<\>\\\%\@\`\~\|\'\"\?\!]{4,18}[a-z0-9]$/i' :
'/^[a-z0-9][a-z0-9\-\_]{4,18}[a-z0-9]$/i' ;
if ( ! preg_match ( $regexp , $password ) ) return $this -> user_setts ( 13
) ; //проверка существования пользователя
//проверка пароля пользователя
$pass = md5 ( strrev ( md5 ( $password ) . md5 ( $this -> conf [ 'installed' ] ) ) . md5 ( $this -> conf [ 'secret' ] [ 'w' ] ) ) ; if ( $res [ 'password' ] <> $pass ) return $this -> user_setts ( 14) ;
//remember
if ( isset ( $_POST [ 'remember' ] ) ) setcookie ( 'sva_user' , $res [ 'id' ] . '#' . strrev ( md5 ( $password ) ) , ( $this -> sets [ 'cookies_life' ] * 86400
+ TIME ) ) ; //все ОК
$_SESSION [ 'id' ] = $res [ 'id' ] ;
$this -> pass_hesh ( $res [ 'id' ] , $pass ) ;
return $this -> user_setts ( 10, $res [ 'id' ] ) ;
}
//сессия
if ( isset ( $_SESSION [ 'id' ] ) && isset ( $_SESSION [ 'pass' ] ) ) {
//проверка существования пользователя
//проверка пароля
if ( $_SESSION [ 'pass' ] <> substr ( $res [ 'password' ] , $pass [ 0
] , $pass [ 1
] ) ) return $this -> user_setts ( 22
) ; //проверка ip
if ( $res [ 'last_ip' ] <> $_SERVER [ 'REMOTE_ADDR' ] ) return $this -> user_setts ( 23) ;
//все ОК
$this -> pass_hesh ( $_SESSION [ 'id' ] , $res [ 'password' ] ) ;
return $this -> user_setts ( 20, $_SESSION [ 'id' ] ) ;
}
//cookie
if ( isset ( $_COOKIE [ 'sva_user' ] ) ) {
list ( $id , $password ) = split ( '#' , $_COOKIE [ 'sva_user' ] ) ; //проверка существования пользователя
//проверка пароля
if ( $res [ 'password' ] <> $pass ) return $this -> user_setts ( 32) ;
//проверка ip
if ( $res [ 'last_ip' ] <> $_SERVER [ 'REMOTE_ADDR' ] ) return $this -> user_setts ( 33) ;
//все ОК
$_SESSION [ 'id' ] = $id ;
$this -> pass_hesh ( $id , $pass ) ;
setcookie ( 'sva_user' , $id . '#' . $password , ( $this -> sets [ 'cookies_life' ] * 86400
+ TIME ) ) ; return $this -> user_setts ( 30, $id ) ;
}
//нет входа
return $this -> user_setts ( 40) ;
}
private function user_setts( $status , $id = 0)
{
$res [ 'status' ] = $status ;
if ( $status < 40
&& $status % 10
<> 0
) mysql_query ( $this -> Mysql -> login_errors ( $status ) ) ; $res [ 'u' ] = array ( 'id' => $id , 'lang' => 0 , 'style' => 0
) ; if ( $id === 0
) $sql = mysql_query ( $this -> Mysql -> user_sets ( 1
, $this -> sets [ 'user_default_group' ] ) ) ; else
{
$sql = mysql_query ( $this -> Mysql -> user_sets ( 1
, $res [ 'u' ] [ 'user_group' ] ) ) ; }
$this -> sets [ 'user' ] = $res ;
return $res ;
}
private function pass_hesh( $id , $hesh )
{
if ( $start + $end > 31) $end = 32 - $start ;
$_SESSION [ 'pass' ] = substr ( $hesh , $start , $end ) ; }
private function kill_session( )
{
unset ( $_SESSION [ 'pass' ] ) ; }
}
Саныч
Отправлено: 28 Октября, 2010 - 16:16:36 • Тема: javascript regexp • Форум: JavaScript & VBScript
Ответов: 1 Просмотров: 993
Если я правильно понял...
1.... /[\,\.\!][^\s]/
2.... /[a-z0-9]\!/i
з.ы. Вы название раздела читали?
Саныч
Отправлено: 27 Октября, 2010 - 17:45:18 • Тема: как задать время посылки POST • Форум: Напишите за меня, пожалуйста
Ответов: 3 Просмотров: 148
На js делается. Делается примерно так:
1. Вылавливаете отправку формы
2. Показываете свою картинку
3. Вешаете на это событие таймаут на 100, после чего отправляете форму....
Саныч
Отправлено: 21 Октября, 2010 - 21:22:32 • Тема: substr • Форум: Программирование на PHP
Ответов: 4 Просмотров: 386
регуляркой вырезать теги из строки которую вы вытаскиваете
Страниц (91): В начало « ... 76 77 78 79 [80] 81 82 83 84 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB