2. Как сделать что бы пользователь не мог выбрать адрес формата id124 (т.к. следующий зарегистрированный получит этот id и недопустимо что бы был конфликт адресов - каждый должен быть уникальным)?
это делается очень просто:
в запросе к БД пишем
$open ="SELECT * FROM `xxx`.`yyyy` WHERE `user` LIKE ";
API SQL таков, что в нем есть встроенные функции, например поиск совпадений база поищет сама в себе и возвратит нолик или единичку, а вам остается обработать этот ответ, если совпадения нет, то исполнить желание уважаемого пользователя и поменять имя, если есть то нет