hallo,
$user = new user(DB_HOST, DB_USER, DB_PASS, DB_NAME);
Achne, wieder einer, der DB-Credentials in Konstanten umsetzt. Trenne die besser sauber vom Code, Credentials sind Konfiguration, in den Code hingegen gehört das DB-Handle.
Reloadsprerre: Du kannst verhindern, dass ein Formular mehrfach submitted wird, indem Du dem Formular eine eindeutige ID vergibst und diese ID gleichzeitig auf dem Server speicherst. Lösche diese ID beim Submit, das Löschen geht nur einmal, fertig.
IP speichern? Bedenke, dass die IP keine personenbezogene Kennung darstellt und überdies veränderlich ist: Mit einer geeigneten Proxy-Konfiguration könnte jeder Submit mit einer anderen IP-Adresse daherkommen.
Eine personenbezogene Reloadsperre, etwa für 30 Minuten, ist nicht möglich. Du könntest vielleicht einen Cookie setzen, aber der kann vom Benutzer auch gelöscht bzw. gar nicht erst gesendet werden.
Gus