IMO

"For" is optional in both cases.

"Have" is not. The sentence is grammaticallly incorrect without it.