Witam,
Mam może z pozoru niewielki problem, ale nie daje mi to spokoju. Jeśli użytkownik wejdzie w jego panel zarządzania kontem może tam zmienić e-mail i hasło. U góry są dane użytkownika - jego nick, data rejestracji oraz cenzurowany z pomocą gwiazdek * email. Wygląda (a właściwie powinno wyglądać) to tak, że pokazuje 3 pierwsze znaki, a reszta zostaje zamieniona na gwiazdki. Potem wyświetla znak @ i nazwę maila też powinien cenzurować. Na koniec tylko ma zostawić końcówkę, czyli .pl .com itd...
Czyli jeśli ktoś ma e-mail bartus120abc@gmail.com to cenzura powinna wyświetlić:
bar*********@*****.com
Robię to dlatego, że w wypadku włamania się na konto danego użytkownika, włamywacz nie dostanie danych na tacy, a sam użytkownik będzie mógł łatwo, pomimo cenzury, przypomnieć sobie swój e-mail.
Jednak mam problem z cenzurą na nazwę maila (to co jest po @). Próbowałem znaleźć jakiś złoty środek, czyli odejmować licznik w pętli for, dzielić, dodawać tak jak robiłem to w pierwszym forze ale to niestety nie działa! Raz wyświetla za dużo gwizadek, a raz za mało. Proszę o pomoc.
Kod:
$emailAtPosition = strpos($email, '@');
$emailDotPosition = strpos($email, '.');
$hidenemail = substr($email, 0, 3);
for ($i = 0; $i <= $emailAtPosition-4; $i++)
{
$hidenemail = $hidenemail.'*';
}
$hidenemail = $hidenemail.'@';
for ($i = 0; $i <= $emailDotPosition; $i++)
{
$hidenemail = $hidenemail.'*';
}
$emailname = substr($email, $emailDotPosition);
$hidenemail = $hidenemail.$emailname;
Pokazuję cały kod maskowania. Może winny nie jest sam for.
Z góry dziękuję za wszystkie odpowiedzi!