Pomyślmy.. W sesji przechowujesz id użytkownika. W momencie gdy chce on zdjęcie usunąć linkiem jako parametr rzucamy do zmiennej GET id_fotki czy inny identyfikujący ją wskaźnik. Sprawdzamy, czy taka fotka jest w bazie i dodał ją ten user (bo chyba zapisujesz kto dodał daną fotografię w bazie, a przynajmniej id tego usera?). Jeśli wszystko jest ok, możesz usuwać. No i nieco przerób skrypt, by admina pod kątem praw nie sprawdzało

On może usuwać wszystko. O co mi mnie więcej chodzi?
//tutaj pobranie z GET id zdjęcia i jego oczyszczanie (ctype_digit, filter_var czy co tam chcesz)
//ja tego nie piszę tylko przejdę od razu do schematu...
$check_sql = 'SELECT path FROM photos WHERE id = '.$_GET['photo_id'];
if( !$_SESSION['admin'] )
$check_sql .= ' AND owner = '.$_SESSION['user_id'];
$check_sql .= ' LIMIT 1';
//tutaj usuwanie z bazy wpisu
//dopiero gdy się usuwanie z bazy POWIEDZIE (mysql_affected_rows dla DELETE zwróci liczbę większą od 0)
//usuń zdjęcie fizycznie z serwera
} else {
//wywal komunikat do zmiennej lub prosto na ekran w stylu 'Sorry Batory, ale serwer leży albo próbujesz usunąć nie swoje zdjęcie."
}
EdIT: O co mi chodzi ze sprawdzeniem powodzenia usuwania zdjęcia z bazy? Może dojść do sytuacji, że w bazie wpis o zdjęciu zostanie, ale zostanie zdjęcie usunięte fizycznie z serwera. lub na odwrót. Zdjęcie zostanie, choć baza będzie wskazywać, że zostało usunięte. I tak źle i tak niedobrze. Stąd uzależnienie kasowanie zdjęcia z dysku w sytuacji gdy już zostało ono wywalone z bazy, jest znacznie bezpieczniejszym rozwiązaniem. Choć z dwojga złego lepiej jeśli ono jest na dysku serwera, nawet jeśli baza o nim nie wie, niż na odwrót

Samo podejście to mała zmiana mojego powyższego kodu. Popatrz jak tworzę $check_sql i co robię oraz podobnie zrób dla DELETE, tylko zamiast mysql_num_rows użyj mysql_affected_rows.
A co do komunikatów to możesz także posłużyć się zmienną sesyjną

Do sesji wysyłasz sobie komunikaty w jakiejś określonej postaci i w określonych miejscach strony sprawdzasz, czy sesja dla komunikatów jest pusta. Jeśli nie to wyświetlasz te komunikaty i czyścisz zmienną sesyjną, by po przeładowaniu strony nie pokazały się one ponownie.