Hi,
$userdata[0] ist immer die IP plus einen Leerzeichen also frage bitte auch danach in der Form:
if (array_search($ip.' ', $ip_vorhanden)==false)
Das ist mir beim Debuggen auch aufgefallen. Am Besten die Leerzeichen durchgegend weg lassen oder eben trim($userdata) vor dem array_push machen.
Gruß
Danny