PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (91): В начало « ... 76 77 78 79 [80] 81 82 83 84 ... » В конец

> Найдено сообщений: 1361
Саныч Отправлено: 31 Октября, 2010 - 19:43:33 • Тема: Помогите доделать • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 46
Скорей всего нужно $_SESSION['login'] (кавычки забыли)
Саныч Отправлено: 31 Октября, 2010 - 19:41:19 • Тема: 2 вывода из базы • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 73
Мне кажется ошибка в самом запросе к базе...
Да и еще, вместо do-while лучше использовать while. Разница в том, что первый делает, потом проверяет условие, а второй наоборот.
Саныч Отправлено: 30 Октября, 2010 - 21:29:07 • Тема: Функция выдает сплошные вопросики • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 83
поставьте хедер в коде и все будет нормально...
Саныч Отправлено: 30 Октября, 2010 - 21:05:30 • Тема: Не знаю как сделать, помогите плиз • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 96
регулярка
PHP:
скопировать код в буфер обмена
  1. if(preg_match('/(ой)$/',$_POST['text'])) echo 'есть ОЙ :)';
  2. else echo 'нету :(';


а можна и без регулярки обойтись
PHP:
скопировать код в буфер обмена
  1. if(substr($_POST['text'],-2) == 'ой') echo 'есть ОЙ :)';
  2. else echo 'нету :(';
Саныч Отправлено: 30 Октября, 2010 - 21:00:01 • Тема: Функция выдает сплошные вопросики • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 83
Ну все правильно вам подсказали. Сейчас у вас получатется что из бд приходет в utf-8, а вы показываете в windows-1251. Отсюда и вопросы...
Пропишите в начале файла
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');


з.ы. зачем вам эта cp1251, юзайте utf она универсальна
Саныч Отправлено: 30 Октября, 2010 - 08:49:03 • Тема: Авторизация • Форум: Программирование на PHP

Ответов: 33
Просмотров: 2107
ничем не отличаются, это об одном и томже только по разному написано
Саныч Отправлено: 30 Октября, 2010 - 00:45:02 • Тема: Система авторизации • Форум: Программирование на PHP

Ответов: 4
Просмотров: 652
Ну это я думаю, что проблем нет... Хотелось бы услышать мнения более "опытных" людей...
Саныч Отправлено: 30 Октября, 2010 - 00:03:37 • Тема: Ошибка бд? • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 79
А разве скрипту не все равно, какое значение... Здесь скорей всего дело в чем-то другом.
Саныч Отправлено: 29 Октября, 2010 - 23:57:59 • Тема: Система авторизации • Форум: Программирование на PHP

Ответов: 4
Просмотров: 652
Делаю сайт, сделал систему авторизации. Все работает как и предпологалось, проблем нет... Нужно ваше мнение по поводу, возможных ошибок и т.д. Вобщем любая критика Улыбка

Выкладую код с поясняющими комментами, чтоб было понятней
PHP:
скопировать код в буфер обмена
  1. class Users
  2. {
  3.         /*
  4.         --- session status ---
  5.         11 - логин <3 или >20 символов, либо в нем присутствуют недопустимые символы
  6.         12 - пользователь с таким логином не зарегистрирован
  7.         13 - пароль <6 или >20 символов, либо в нем присутствуют недопустимые символы
  8.         14 - неверный пароль
  9.         10 - все ОК (вход через форму)
  10.         21 - пользоател с указанным id не найден
  11.         22 - пароль сессии не соответствует паролю базы
  12.         23 - неверный ip (сессии)
  13.         20 - все ОК (вход по сессиям)
  14.         31 - пользоател с указанным id не найден
  15.         32 - пароль куки не соответствует паролю в базе
  16.         33 - неверный ip (куки)
  17.         30 - все ОК (вход по кукам)
  18.         40 - вход не осуществлен
  19.         41 - вы заблокированы (лимит авторизаций)
  20.         42 - система пользователей отключена
  21.         */
  22.         public function session()
  23.         {
  24.         //проверка включенности системы
  25.                 if(!_USERS || !$this->sets['user_system']) return $this->user_setts(42);
  26.         //проверка на блокировку
  27.                 $sql = mysql_query($this->Mysql->test_login_errors(1));
  28.                 if(mysql_num_rows($sql) >= $this->sets['user_login_error_size'])
  29.                 {
  30.                         $res = mysql_fetch_assoc($sql);
  31.                         if($res['time'] + ($this->sets['user_login_error_time'] * 3600) > TIME) return $this->user_setts(41);
  32.                         mysql_query($this->test_login_errors(2));
  33.                 }
  34.                 elseif(mysql_num_rows($sql) > 0) mysql_query($this->Mysql->test_login_errors(3));
  35.         //запуск сессии
  36.                 session_start();
  37.         //вход через форму
  38.                 if(isset($_POST['login']) && isset($_POST['name']) && isset($_POST['pass']))
  39.                 {
  40.                         $login = trim($_POST['name']);
  41.                         $password = trim($_POST['pass']);
  42.                 //проверка логина (шаблон)
  43.                         if(!preg_match('/^[a-z0-9][a-z0-9\-\_]{1,18}[a-z0-9]$/i',$login)) return $this->user_setts(11);
  44.                 //проверка пароля (шаблон)
  45.                         $regexp = $this->sets['user_password_type'] ?
  46.                                 '/^[a-z0-9][a-z0-9 \-\_\&\#\$\^\.\,\;\:\=\+\*\/\(\)\{\}\[\]\<\>\\\%\@\`\~\|\'\"\?\!]{4,18}[a-z0-9]$/i' :
  47.                                 '/^[a-z0-9][a-z0-9\-\_]{4,18}[a-z0-9]$/i';
  48.                         if(!preg_match($regexp,$password)) return $this->user_setts(13);
  49.                 //проверка существования пользователя
  50.                         $sql = mysql_query($this->Mysql->test_user(1,mysql_real_escape_string($login)));
  51.                         if(mysql_num_rows($sql) == 0) return $this->user_setts(12);
  52.                 //проверка пароля пользователя
  53.                         $res = mysql_fetch_assoc($sql);
  54.                         $pass = md5(strrev(md5($password).md5($this->conf['installed'])).md5($this->conf['secret']['w']));
  55.                         if($res['password'] <> $pass) return $this->user_setts(14);
  56.                 //remember
  57.                         if(isset($_POST['remember'])) setcookie('sva_user',$res['id'].'#'.strrev(md5($password)),($this->sets['cookies_life'] * 86400 + TIME));
  58.                         elseif(isset($_COOKIE['sva_user'])) setcookie('sva_user','');
  59.                 //все ОК       
  60.                         $_SESSION['id'] = $res['id'];
  61.                         $this->pass_hesh($res['id'],$pass);
  62.                         mysql_query($this->Mysql->test_login_errors(2));
  63.                         mysql_query($this->Mysql->update_user(1,$res['id']));
  64.                         return $this->user_setts(10,$res['id']);       
  65.                 }
  66.         //сессия       
  67.                 if(isset($_SESSION['id']) && isset($_SESSION['pass']))
  68.                 {
  69.                 //проверка существования пользователя
  70.                         $sql = mysql_query($this->Mysql->test_user(2,mysql_real_escape_string($_SESSION['id'])));
  71.                         if(mysql_num_rows($sql) == 0) return $this->user_setts(21);
  72.                 //проверка пароля
  73.                         $res = mysql_fetch_assoc($sql);
  74.                         $pass = unserialize($res['password_hesh']);
  75.                         if($_SESSION['pass'] <> substr($res['password'],$pass[0],$pass[1])) return $this->user_setts(22);
  76.                 //проверка ip
  77.                         if($res['last_ip'] <> $_SERVER['REMOTE_ADDR']) return $this->user_setts(23);
  78.                 //все ОК
  79.                         $this->pass_hesh($_SESSION['id'],$res['password']);
  80.                         return $this->user_setts(20,$_SESSION['id']);
  81.                 }
  82.         //cookie
  83.                 if(isset($_COOKIE['sva_user']))
  84.                 {
  85.                         list($id,$password) = split('#',$_COOKIE['sva_user']);
  86.                 //проверка существования пользователя
  87.                         $sql = mysql_query($this->Mysql->test_user(3,mysql_real_escape_string($id)));
  88.                         if(mysql_num_rows($sql) == 0) return $this->user_setts(31);
  89.                 //проверка пароля
  90.                         $res = mysql_fetch_assoc($sql);
  91.                         $pass = md5(strrev(strrev($password).md5($this->conf['installed'])).md5($this->conf['secret']['w']));
  92.                         if($res['password'] <> $pass) return $this->user_setts(32);
  93.                 //проверка ip
  94.                         if($res['last_ip'] <> $_SERVER['REMOTE_ADDR']) return $this->user_setts(33);
  95.                 //все ОК
  96.                         $_SESSION['id'] = $id;
  97.                         $this->pass_hesh($id,$pass);
  98.                         setcookie('sva_user',$id.'#'.$password,($this->sets['cookies_life'] * 86400 + TIME));
  99.                         mysql_query($this->Mysql->update_user(2,$id));
  100.                         return $this->user_setts(30,$id);
  101.                 }
  102.         //нет входа
  103.                 return $this->user_setts(40);
  104.         }
  105.         private function user_setts($status,$id = 0)
  106.         {
  107.                 $res['status'] = $status;
  108.                 if($status < 40 && $status % 10 <> 0) mysql_query($this->Mysql->login_errors($status));
  109.                 if(in_array($status,array(21,22,23))) $this->kill_session();
  110.                 if(in_array($status,array(31,32,33))) setcookie('sva_user','');
  111.                 $res['u'] = array('id' => $id, 'lang' => 0, 'style' => 0);
  112.                 if($id === 0) $sql = mysql_query($this->Mysql->user_sets(1,$this->sets['user_default_group']));
  113.                 else
  114.                 {
  115.                         $sql = mysql_query($this->Mysql->user_sets(2,$id));
  116.                         $res['u'] = array_merge($res['u'],mysql_fetch_assoc($sql));
  117.                         $sql = mysql_query($this->Mysql->user_sets(1,$res['u']['user_group']));
  118.                 }
  119.                 $res['g'] = mysql_fetch_assoc($sql);
  120.                 $this->sets['user'] = $res;
  121.                 return $res;
  122.         }
  123.         private function pass_hesh($id,$hesh)
  124.         {
  125.                 $start = rand(0,25);
  126.                 $end = rand(7,15);
  127.                 if($start + $end > 31) $end = 32 - $start;
  128.                 mysql_query($this->Mysql->password_hesh(serialize(array($start,$end)),$id));
  129.                 $_SESSION['pass'] = substr($hesh,$start,$end);
  130.         }
  131.         private function kill_session()
  132.         {
  133.                 unset($_SESSION['id']);
  134.                 unset($_SESSION['pass']);
  135.         }
  136. }
Саныч Отправлено: 28 Октября, 2010 - 16:27:59 • Тема: непонятный синтаксис в масивах • Форум: Программирование на PHP

Ответов: 8
Просмотров: 679
Если у вас все работает, значит где-то эта key все-таки определяется... Если же нет, то должно вылазить предупреждение...
Саныч Отправлено: 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, после чего отправляете форму....
Саныч Отправлено: 26 Октября, 2010 - 18:30:54 • Тема: Захват переменных со страницы php • Форум: Программирование на PHP

Ответов: 4
Просмотров: 417
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a = "Привет!";
  3. function a(){
  4. global $a;
  5. return $a;
  6. }
  7.  
  8. echo a();
  9. ?>
Саныч Отправлено: 21 Октября, 2010 - 21:22:32 • Тема: substr • Форум: Программирование на PHP

Ответов: 4
Просмотров: 386
регуляркой вырезать теги из строки которую вы вытаскиваете
Саныч Отправлено: 21 Октября, 2010 - 21:15:11 • Тема: При наведении на кнопку с картинкой не меняется курсор • Форум: Программирование на PHP

Ответов: 4
Просмотров: 898
курсор и не должен меняться... но если вам так хочется то вот
CODE (htmlphp):
скопировать код в буфер обмена
  1. .sender:hover { cursor:pointer }

Страниц (91): В начало « ... 76 77 78 79 [80] 81 82 83 84 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB