Перейти к содержанию
Авторизация  
Eduard Vestornович

Не сохраняется регистрационный IP и дата регистрации

Рекомендуемые сообщения

Eduard Vestornович

Код при регистрации 

				pInfo[playerid][pChart][0]=1;
				new year, month, day;
				getdate(year, month, day);
				new Regip[17];
				GetPlayerIp(playerid, Regip, 17);
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Chart` = '%d|%d|%d|%d' WHERE `Name` = '%s'",pInfo[playerid][pChart][0],pInfo[playerid][pChart][1],pInfo[playerid][pChart][2],pInfo[playerid][pChart][3],pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regdate` = '%d|%d|%d' WHERE `Name` = '%s'",day,month,year,pInfo[playerid][pName],pInfo[playerid][pRegdate]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regip` = '%s' WHERE `ID` = '%d'", pInfo[playerid][pRegip], pInfo[playerid][pID]);
				mysql_function_query(mysql_connect_ID, str_small, false, "", "");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

 

 


mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regdate` = '%d|%d|%d' WHERE `Name` = '%s'",day,month,year,pInfo[playerid][pName],pInfo[playerid][pRegdate]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");

 

А почему Вы не хотите сохранять дату в формате TIMESTAMP?

Запрос тогда выглядел бы вот так:

UPDATE `"#DB_ACCOUNTS"` SET `Regdate` = NOW() WHERE `Name` = '%s'

В базе данных заменить тип данных varchar на TIMESTAMP.

 

А еще лучше вообще не обновлять дату регистрации через SQL запросы, а выставить во вкладке "Структура", где дата регистрации, параметр по умолчанию CURRENT_TIMESTAMP (как только добавляете новую запись, так и автоматически вносится дата создания). 


Эти две строки:

 

 


new Regip[17]; GetPlayerIp(playerid, Regip, 17);

 

Замените этими:

GetPlayerIp(playerid, pInfo[playerid][pRegip], 16);

(не нужно в функциях указывать размер массива с единицей больше. Достаточно это сделать лишь при создании).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович
,все равно не сохраняются(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

,

Ошибка

SQL-запрос:

ALTER TABLE `accounts_cbt` CHANGE `Regdate` `Regdate` TIMESTAMP( 16 ) NOT NULL 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, в этом столбце небось записи есть строкового типа?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

,наверно

Я скинул бд (аккаунты) (просто я не разбираюсь)

-- phpMyAdmin SQL Dump
-- version 3.4.11.1deb2+deb7u8
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Мар 01 2018 г., 18:01
-- Версия сервера: 5.5.57
-- Версия PHP: 5.4.45-0+deb7u9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `gs28962`
--

-- --------------------------------------------------------

--
-- Структура таблицы `accounts_cbt`
--

CREATE TABLE IF NOT EXISTS `accounts_cbt` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(32) NOT NULL,
  `Pass` varchar(25) NOT NULL,
  `Chart` varchar(25) NOT NULL,
  `Mail` varchar(64) NOT NULL,
  `Admin` int(3) NOT NULL DEFAULT '0',
  `Money` int(11) NOT NULL DEFAULT '30000',
  `pInvSlots` varchar(50) NOT NULL,
  `pInvSlotsKol` varchar(50) NOT NULL,
  `Lic` varchar(64) NOT NULL DEFAULT '0',
  `Org` int(11) NOT NULL DEFAULT '0',
  `Orang` int(11) NOT NULL DEFAULT '0',
  `Time` varchar(11) NOT NULL DEFAULT '0',
  `Pos` varchar(35) NOT NULL DEFAULT '0',
  `Hspawn` int(11) NOT NULL DEFAULT '0',
  `Donate` int(11) NOT NULL DEFAULT '0',
  `Job` varchar(15) NOT NULL DEFAULT '0',
  `Frak` varchar(35) NOT NULL DEFAULT '0',
  `Dol` varchar(35) NOT NULL DEFAULT '0',
  `Frak2` int(11) NOT NULL DEFAULT '0',
  `Arrest` int(11) NOT NULL DEFAULT '0',
  `Number` int(11) NOT NULL DEFAULT '0',
  `Phonemoney` int(11) NOT NULL DEFAULT '0',
  `Vip` int(11) NOT NULL DEFAULT '0',
  `Vipday` int(11) NOT NULL DEFAULT '0',
  `Bank` int(11) NOT NULL DEFAULT '0',
  `Game` int(11) NOT NULL DEFAULT '0',
  `Anim` int(11) NOT NULL DEFAULT '0',
  `Warn` int(11) NOT NULL DEFAULT '0',
  `Active` tinyint(1) NOT NULL DEFAULT '0',
  `Retest` tinyint(1) NOT NULL DEFAULT '0',
  `Status` int(1) NOT NULL,
  `Regdate` varchar(16) NOT NULL,
  `Regip` varchar(16) NOT NULL,
  `Regcharacter` varchar(2048) NOT NULL,
  `Ban` int(11) NOT NULL DEFAULT '0',
  `Mute` int(11) NOT NULL DEFAULT '0',
  `pWeapon` varchar(50) NOT NULL DEFAULT '0|0||0|0|0|0|0|0|0',
  `pAmmo` varchar(50) NOT NULL DEFAULT '0|0||0|0|0|0|0|0|0',
  `Virt` int(11) NOT NULL DEFAULT '0',
  `Fskin` int(11) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

--
-- Дамп данных таблицы `accounts_cbt`
--

INSERT INTO `accounts_cbt` (`ID`, `Name`, `Pass`, `Chart`, `Mail`, `Admin`, `Money`, `pInvSlots`, `pInvSlotsKol`, `Lic`, `Org`, `Orang`, `Time`, `Pos`, `Hspawn`, `Donate`, `Job`, `Frak`, `Dol`, `Frak2`, `Arrest`, `Number`, `Phonemoney`, `Vip`, `Vipday`, `Bank`, `Game`, `Anim`, `Warn`, `Active`, `Retest`, `Status`, `Regdate`, `Regip`, `Regcharacter`, `Ban`, `Mute`, `pWeapon`, `pAmmo`, `Virt`, `Fskin`) VALUES

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, это структура, а я говорю про запись. [spoiler=Изображение]123.png

Вот в таких строках наверняка Regdate заполнено.

Изменено пользователем Elrmrnt-Kritik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

,нет , пустые  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, скиньте таблицу файлом (экспортируйте ее).

Изменено пользователем Elrmrnt-Kritik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegos

Добавьте в Базу данных MYSQL и всегда и было лучшее это сохранять в TIMESAMP.

 

Kawasaki желает вам удачной работы в Pawno

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

https://fex.net/#830359309858?fileId=340034853

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

@Vestorn,UP 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, вот так было необходимо сделать. При создании записи автоматически будет проставляться дата создания (что равно дате регистрации).

[spoiler=Изображение]

fawq.png

 

 


(все остальные параметры не важны. Какие стоят по умолчанию, такие пусть и останутся)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

,

 Ошибка запроса:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(11) NOT NULL DEFAULT CURRENT_TIMESTAMP' at line 1 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

@Vestorn,  у тебя ошибка в запросе , что не правильно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

@#Pawno,я это понял , но я с бд не дружу) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, я тебе показал на изображении что нужно сделать. Зачем ты длину 11 оставил? 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

,о , все!
А с IP?Что делать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, еще раз дай код, который сейчас стоит в моде для получения и записи IP. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

,

	pInfo[playerid][pChart][0]=1;
				new year, month, day;
				getdate(year, month, day);
				GetPlayerIp(playerid, pInfo[playerid][pRegip], 16);
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Chart` = '%d|%d|%d|%d' WHERE `Name` = '%s'",pInfo[playerid][pChart][0],pInfo[playerid][pChart][1],pInfo[playerid][pChart][2],pInfo[playerid][pChart][3],pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regdate` = '%d|%d|%d' WHERE `Name` = '%s'",day,month,year,pInfo[playerid][pName],pInfo[playerid][pRegdate]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regip` = '%s' WHERE `ID` = '%d'", pInfo[playerid][pRegip], pInfo[playerid][pID]);
				mysql_function_query(mysql_connect_ID, str_small, false, "", "");
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

 

 


mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regdate` = '%d|%d|%d' WHERE `Name` = '%s'",day,month,year,pInfo[playerid][pName],pInfo[playerid][pRegdate]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");

Можно удалить.

 

Логи MySQL ничего не показывают насчет IP?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

Elrmrnt-Kritik, ничего не пишет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Vestorn, откройте таблицу с аккаунтами. Вверху будет вкладка SQL. Нажмите на нее. Заместо данного там запроса (уже что-то будет вписано) напишите это:

UPDATE `название таблицы` SET `Regip` = '127.0.0.1' WHERE `ID` = 'ид своего аккаунта'

Запрос сработал успешно? Обновился IP адрес?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

 

 


Vestorn, откройте таблицу с аккаунтами. Вверху будет вкладка SQL. Нажмите на нее. Заместо данного там запроса (уже что-то будет вписано) напишите это: UPDATE `название таблицы` SET `Regip` = '127.0.0.1' WHERE `ID` = 'ид своего аккаунта'

ммммм..теперь вообще база данных не отвечает (accounts) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

UPDATE `название таблицы` SET `Regip` = '127.0.0.1' WHERE `ID` = 'ид своего аккаунта'

мне не нужно узнавать именно свой IP адрес..Мне нужно , чтобы IP адрес всех игроков записывались в бд , а не только мой

Изменено пользователем Vestorn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.