Если кто-то узнает это:
Генерирую так:
$hash = hash('crc32b', md5($client_email.$id_item));
То сможет получить доступ к любому кабинету зная только email пользователя.
Это не очень хорошо.
В таких случаях нужно делать так:
1. При создании пользователя генерируете "токен" по которому можно заходить без пароля, например так:
$hash = hash('crc32b', md5(uniqid(rand(), true)));
2. При каждом заходе пользователя в кабинет по этому "токену" меняете его.
Ну а чтобы не получилось одинаковых "токенов", нужно при создании/смене "токена" проверять на наличие такого же. Т.е. генерировать "токен" до тех пор пока он не будет уникальным, тогда и записывать в бд.