Cytat(Turson @ 13.04.2014, 23:37:11 )

Co do daty - kolumna typu tekst więc się nie dziw, że można wrzucić tam co się chce.
Możliwości poprawienia:
- zmiana na np. datetime i narzucenie użytkownikowi, że może wrzucić datę tylko w tym formacie (walidacja)
- jeżeli dopuszczasz różne typy daty, to wybierz kilka możliwych i filtruj
Zmień mysql_ na PDO, bo używasz już dinozaura, który oficjalnie został uznany za przestarzały i zostanie wycofany z użytku.
PDO to przerost formy nad treścią, używaj mysqli, prostsza składnia (niemal to samo co mysql) i wygodniejsza w używaniu.
Co do problemu to pole data zmień na tym datetime to pierwsza rzecz.
Druga jeżeli pole ma zawsze dzisiejszą datę to po czorta ładujesz ją tutaj a nie w samym zapytaniu bezpośrednio?
To samo z adresem API. Przecież to adres serwera to po czorta przekazywać to z formularza

Poniżej gotowiec.
Przykład:
$m = new mysqli("localhost" , "root" , "pass", "dbName");
$m->query("INSERT INTO slowo SET cytat='".$m->real_escape_string($cytat)."', autor='".$m->real_escape_string($autor)."', ip='".$_SERVER['REMOTE_ADDR']."', data='".date("Y-m-d H:i:s")."'");
Sam sobie tym przekazywaniem robisz krzywdę. Dziwie się że jeszcze portal stoi bo zrobić na tym SQL INJECTION to dziecinada

Staraj się dane parsować zawsze przez funkcję real_escape_string o której poczytasz sobie w manualach i która jest podstawą zabezpieczenia przed SQL INJECTION.

Ps. Jeżeli ten formularz leci spoza Twojego serwera to zamiast IP wysyłaj link wysyłającego czyli Refere $_SERVER['HTTP_REFERER']; Ta zmienna zwraca Ci skąd ktoś przyszedł do Ciebie

Zasada jak wyżej z adresem IP