Nostromo: консоль регистрирует урл, дальше ВСЕ делает поисковый движок, ваше влияние на него ограничено содержимым страницы, файлом robots.txt и молитвами богу сео.
ого, то есть хранение мусора не относящегося к сущностям это не колхоз, а всякие костыли для обхода бардака это колхоз. "Стандартное" это когда в мускуле хранится объект, в отдельной таблице записаны файлы которые ему принадлежат, и все что не нужно грохается по зависимостям. Типа все учтено. А на такие случаи - только костыли и велосипеды.
dzoid: не обязательно, можно отталкиваться от заходов пользователей, например, каждые 100 просмотров скидывать в мускуль (тогда будете знать погрешность ошибки сбоя - не более 100), или при заходе пользователя смотреть дату обновления в мускуле и если больше заданного промежутка - скидывать. Короче вариантов масса, включайте фантазию )
Вася Фамилия: думаю, что проще написать скрипт, и пускать при выводе на клиенте. То есть хранить как прислали, а на клиенте заменять на нужное жсом по онлоад. Так работают вроде всякие карусели и слайдеры.
не знаю что у вас там лежит - только по логике содержимого. Должно быть что то вроде $_SESSION['question'][1], $_SESSION['answer'][1], $_SESSION['number'][1] и тд.
Все что касается "секретных" данных - ответы, номера и прочее - хранится в сессии, после того как пост запрос пришел, проверяем метод - пост или гет - если пост - обрабатываем все что юзер ввел в поля, сохраняем состояние(номер вопроса, ответ, прочие сопутствующие данные - например время на ответ) и делаем перенаправление на нужную страницу через хеадер. Тогда метод у нас будет гет, и далее уже загрузится хтмл.
Mixa: достаточно выбирать с геоточками из базы, типа "where `geo` not NULL", это будет быстро и правильно, а xml слишком избыточен и очень медленно обрабатывается..
lemonlimelike: вам туда такого навставляют - будете базу по кускам собирать )
Есть правильный метод - через prepared statements,
есть сносный метод - mysqli_real_escape_string,
и есть как у вас - дыра размером с африку.
если совсем правильно делать:
создаете табличку "ачивки", из полей id, name, description
создаете таблицу связей userachives из полей achive_id, user_id
выбирайте ачивки которые имеют ид пользователя - вот вам список ачивок юзера
добавляйте при достижении ачивки в userachives строку с ид пользователя и ид ачивки.
в таблице юзер ничего писать не надо.