MySQL запрос
#1

Добрый день!

Возникла такая проблема, сегодня начал разбираться с mysql r7 и стал писать систему аккаунтов, но такая ситуация: при логине, вводя любой пароль (в том числе и верный) возвращает обратно к диалогу

PHP код:
forward login_user(playeridpassword[]);
public 
login_user(playeridpassword[]){
    new 
str[300];
    
format(str,300,"SELECT * FROM `players` WHERE `name` = '%s' AND `password` = '%s'",p_name(playerid), password);
    
mysql_function_query(db_rpstrfalse"login_ok","d"playerid);
}
forward login_ok(playerid);
public 
login_ok(playerid){
    new 
rowsfields;
    
cache_get_data(rowsfields);
    if(!
rows) {//ïàðîëü íåâåðíûé
        
return login_player(playerid);
    } 
Пробовал делать запрос как в a_sampdb, т.е.:
PHP код:
SELECT FROM PLAYERS WHERE NAME '%s'PASSWORD '%s' 
но признаков жизни в данном случае вообще не подавало
Reply
#2

Для начала. Признак нормальной иерархии бд - это названия таблиц и полей СТРОЧНЫМИ(!!111) буквами. Это же не читабельно, епрст. Проверьте саму иерархию таблицы. Сложилось ощущение, что у полей неправильный тип.
Reply
#3

PHP код:
CREATE TABLE IF NOT EXISTS `PLAYERS` (
  `
NAMEvarchar(24COLLATE cp1251_bin NOT NULL,
  `
PASSWORDvarchar(100CHARACTER SET utf8 NOT NULL
ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin
Вот так выглядит
Reply
#4

А должно так:
PHP код:
CREATE TABLE IF NOT EXISTS `players` (
  `
namevarchar(255) DEFAULT '' NOT NULL,
  `
passwordvarchar(255) DEFAULT '' NOT NULL,
  
UNIQUE (name)
) DEFAULT 
CHARSET=utf8
Reply
#5

Quote:

`name` varchar(255)

зачем? 24 же хватает сполна

и кстати, обязательно все должно быть в нижнем регистре?
Reply
#6

Quote:
Originally Posted by Seregamil1
Посмотреть сообщение
зачем? 24 же хватает сполна

и кстати, обязательно все должно быть в нижнем регистре?
Обязательно не должно быть в верхнем.
Reply
#7

Проверил - эффекта от варианта степашки - 0

PHP код:
CREATE TABLE IF NOT EXISTS `players` (
  `
namevarchar(24) DEFAULT '' NOT NULL,
  `
passwordvarchar(100) DEFAULT '' NOT NULL,
  `
moneyint(20NOT NULL,
  `
deathint(20NOT NULL,
  `
killsint(20NOT NULL,
  `
sexint(20NOT NULL,
  `
rangint(20NOT NULL,
  `
skinint(20NOT NULL
  UNIQUE 
(name)
) DEFAULT 
CHARSET=utf8
Reply
#8

Quote:
Originally Posted by Seregamil1
Посмотреть сообщение
зачем? 24 же хватает сполна

и кстати, обязательно все должно быть в нижнем регистре?
мускул в любом случае под varchar зарезервирует область в 256 байт.

А с чего будет эффект если у вас неправильный код обработки результата.
PS последняя версия данного плагина 31.
Reply
#9

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
мускул в любом случае под varchar зарезервирует область в 256 байт.

А с чего будет эффект если у вас неправильный код обработки результата.
PS последняя версия данного плагина 31.
А как должен в таком случае выглядеть правильный код обработки результата?
Reply
#10

Quote:
Originally Posted by Seregamil1
Посмотреть сообщение
А как должен в таком случае выглядеть правильный код обработки результата?
А ты примеры посмотри.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)