да комит последний, по поводу БД то я с нуля все ставлю, так что нечего обновлять попытался поставить сново на ubuntu 15.04 (php 5.6), тот же результат
Обратил внимание, уже не первый раз такое, при загрузке данных, в строке "Загружено в базу" - первое число больше второго, скорее всего их надо поменять местами. Не может же быть, что загружено 38 из 18. http://hostingkartinok.com/show-image.php?id=4ac0d6b7de97ae4deb6309d72ce3d152
Запрос выполняется долго, сессия блокируется, и остальные запросы соответственно. У меня RS не смог определить местоположение. (BSSID 40:16:7E:30:AF:08) Да, тоже заметил.
Расскажи, как прикручивать всё это, в плане SALT всякие. Разница огромная - по IP точность намного меньше, этот способ геолокации не используется в 3WiFi.
По ip Максиму можно узнать примерный район и то не всегда чаше просто город показывает. Да и ещё смотря какой ip вы нашли точка может в соседнем подъезде а при поиске показывать будет в Мексике )
решил проблему, причина была права на папку uploads сейчас решаю internal server error : /3wifi.php?a=map&pass=antichat&tileNumber=9786,6616,9792,6616&zoom=14&callback=id_144934739914781872517 карта не показывает точки
Форму регистрации еще не сделал, по-этому пока вручную. Идея такая: в таблице users хранятся данные о пользователе: uid - уникальный ID пользователя, сейчас просто autoincrement, позже хочу сделать md5(uniqid().salt) login - собсвенно логин, который вводится при авторизации; nick - ник пользователя, так он будет выводиться в отчетах; pass_hash - это хэш пароля = md5('пароль'.'соль'); autologin - это случайная строка, которая позволит автоматически зайти по кукам, генерируется при каждом входе по логину\паролю; salt - соль, задается один раз при регистрации, у каждого пользователя должна быть своя уникальная (чтобы при краже базы пароли было сложно расшифровать, т.к. у каждого своя соль); level - уровень доступа, admin=2, user=1, 0 лучше пока не использовать; ip_hash - md5(ip), проверяется при автовходе по кукам, автоматически задается при входе по логину\паролю; Таким образом, при регистрации нужно: 1) придумать salt, например '2 funy goose lived with grandmom', для пущей конспирации можно сделать md5(фразы) и сохранить как соль, а то вдруг соль будет как-то идентифицировать пользователя... 2) зашифровать пароль с солью (pass_hash). Например пароль antichat получится так md5(CONCAT('antichat','2 funy goose...')) = '4c52baa099aec7727e53f408865661d5'; 3) Указать login, nick и уровень доступа level. Должно работать. I'm sorry за длинную инструкцию, писал в т.ч. для новичков, кто будет ставить себе локальную базу =) Позже хочу сделать еще одну общую соль для всех записей в базе, а потом и еще одну, для обмена хэшированными данными между браузером и сайтом.
P.S.: поправил мелкие неточности (забыл про nick написать). Моя любимая страничка - Динамика состояния. Смотрю и налюбоваться не могу! Заметил, что основную нагрузку даёт определение координат. И тут меня победила мысль, а что если переписать определение координат на javascript? Пользователь авторизуется, заходит на специальную вкладку, браузер автоматом получает задания (например из числа точек не найденных на карте), java делает аналогичные запросы к серверам геолокации, результат шлет в базу. В базе geo_table делаем еще пару столбцов - uid1, coords1, uid2, coords2. Даем задание 2м разным пользователям, если их результат совпадает - переносим в базу, пользователям начисляем баллы репутации.
А что возвращает? В хроме нажми F12, перейди во вкладку networks, поставь фильтр 3wifi.php?a=map и глянь что там сервер отвечает.
typeof id_144935286957021987356 === 'function' && id_144935286957021987356({"error":null,"data":{"type":"FeatureCollection","features":[]}}); после этого internal error так же заметил после попытки залить файлы через веб - пишет что все ок - но в ДБ не чего не записывает (говорит что записал и т.д...) апдеит: если взгляд на карту уменьшит то есть не много даты : typeof id_144936173205553673560 === 'function' && id_144936173205553673560({"error":null,"data":{"type":"FeatureCollection","features":[{"type":"Cluster","number":20,"bbox":[[32.72153004768,34.453125],[33.313890805608,35.15625]],"id":"011010010110101001","geometry":{"type":"Point","coordinates":[32.819425582886,35.040832901001]},"properties":{"hintContent":""}},{"type":"Cluster","number":22,"bbox":[[32.125170183907,34.453125],[32.72153004768,35.15625]],"id":"011010010110101011","geometry":{"type":"Point","coordinates":[32.331518693404,34.920998486606]},"properties":{"hintContent":""}},{"type":"Cluster","number":6,"bbox":[[32.72153004768,35.15625],[33.313890805608,35.859375]],"id":"011010010110101100","geometry":{"type":"Point","coordinates":[32.857193628947,35.449853261312]},"properties":{"hintContent":""}},{"type":"Cluster","number":2,"bbox":[[32.125170183907,35.15625],[32.72153004768,35.859375]],"id":"011010010110101110","geometry":{"type":"Point","coordinates":[32.648368835449,35.291566848755]},"properties":{"hintContent":""}},{"type":"Cluster","number":55,"bbox":[[31.524849113558,34.453125],[32.125170183907,35.15625]],"id":"011010011100000001","geometry":{"type":"Point","coordinates":[31.963778963956,34.802193867077]},"properties":{"hintContent":""}},{"type":"Cluster","number":5,"bbox":[[30.920608865166,34.453125],[31.524849113558,35.15625]],"id":"011010011100000011","geometry":{"type":"Point","coordinates":[31.248942184448,34.731716156006]},"properties":{"hintContent":""}},{"type":"Cluster","number":9,"bbox":[[31.524849113558,35.15625],[32.125170183907,35.859375]],"id":"011010011100000100","geometry":{"type":"Point","coordinates":[31.754508548313,35.228456285265]},"properties":{"hintContent":""}},{"type":"Cluster","number":2,"bbox":[[30.920608865166,35.15625],[31.524849113558,35.859375]],"id":"011010011100000110","geometry":{"type":"Point","coordinates":[31.258172988892,35.209846496582]},"properties":{"hintContent":""}}]}});
Понимаю, что вы сейчас заняты созданием авторизации, но хотелось бы предложить одну функцию на будущее: раз уж в базе хранятся ip-диапазоны, которые использовались при нахождении роутеров, то нельзя ли реализовать поиск по этим диапазонам? Например, как переключатель в RouterScan : "сканировать только те диапазоны, которых нет в базе /сканировать диапазоны и из базы, если последнее сканирование было давно (чтобы обновлять базу) / сканировать все введённые диапазоны". Хочется помочь проекту, добавив как можно больше роутеров, но многие из них уже были найдены другими участниками, а данная функция позволит избежать подобного дублирования.
Ну на близком расстоянии все ок, а на большом удалении долго идет выборка из БД. Тут надо подождать и переспросить базу позже (минута, две, пять...), т.е. приблизить\удалить карту. После каждой загрузки в базу кэш устаревает и БД поновой кэширует. На счет глюка загрузки уже вкурсе, проблему нашел, думаю как поправить. Дело в запросе QurySql('INSERT INTO BASE_TABLE бла-бла-бла'), запрос должен автоматом изменяться на 'INSERT INTO base бла-бла-бла', но этого почему-то не происходит.
В догонку: а нельзя ли уменьшить размер собирательных "пятаков" и шрифт? При маленьком разрешении (1440x900), карты не видно совсем, только если вплотную приблизить.
Очень хорошая мысль, но реализовать не получится. Политики кроссдоменных запросов не позволят отправить запрос на хост третьего лица (хост провайдера геолокации), и обработать с него ответ. Это вряд ли удастся, в базе хранится только исходная дата добавления точки. При обновлении она не меняется. Это в каком скрипте и на какой строчке? Могу отладить. Размеры кластеров в графическом представлении вроде не изменяемы. Хотел бы услышать мнение @Felis-Sapiens по этому поводу.