69761 Formularz PHP, Ajax

Anulowany Opublikowano Dec 26, 2010 Płatność przy odbiorze
Anulowany Płatność przy odbiorze

[Plik [url removed, login to view] opisany w aukcji zawiera przykład i opis tabelki bazy danych, np. INSERT. Będzie dostarczony zwycięzcy aukcji]

Zlecę zaprogramowanie formularza PHP z UTF-8 z wykorzystaniem AJAX, który bedzie dodawał do istniejącej bazy następujące dane (po submit, ajax sprawdza jedynie poprawność wypełnienia):

- Kategoria (combobox, domyślny tekst: \"Wybierz dział...\", pole wymagane)

- adres e-mail (weryfikacja poprawności, pole wymagane)

- Tytuł (pole wymagane)

- Treść (pole wymagane)

- Zdjęcia (weryfikacja - wymagane przynajmnije jedno)

+ Przyciski wyślij, dodaj zdjęcia, wyczyść.

Wszelkie informacje są sprawdzane, czy zostały uzupełnione poprzez ajax, by nie odświeżać strony. Musi to działać także przed botami, które uzupełniają danymi i spamują (gdzie np. przez skrypty JS najczęściej przechodzą). U nas będzie bez żadnego kodu weryfikującego jako że przynajmniej jedno zdjęcie jest zawsze wymagane (czego boty najczęściej nie przesyłają). Po kliknięciu Wyślij przy błędzie, pole zostanie oznaczone jako błąd (ikonka, tekst, być może znaznaczenie pola).

Można dodać przynajmniej jedno zdjęcie, nie więcej jak 30. Każde dodane zdjęcie znajdzie się na liście (na stronie), z możliwością usuniecia z niej (fizyczne kasowanie) (X przy zdjęciu - kasowanie) - dodanie zdjęcia to upload (do folderu \"img-temp\") wraz z paskiem postępu.

Skrypt przed uploadem zdjęć / zdjęcia (mozna zaznaczyć kilka lub jedno w browse boxie z obsługiwanymi formatami: jpg, jpeg, png, gif):

- sprawdzi, czy format jest obsługiwany (jpeg, jpg, png, gif) (jeśli nie to napisze błąd i dlaczego; pozostałe doda)

- czy pojedynczy plik nie jest większy jak 300kb (jeśli nie to napisze błąd i dlaczego; pozostałe doda)

- czy pojedynczy plik ma rozdzielczość nie większą jak w x: 2000 i y: 2000 (jeśli nie to napisze błąd i dlaczego; pozostałe doda)

- pokaże na liście nazwy plików, wielkość każdego pliku, przycisk do usuwania pojedynczego pliku (usuwanie odbedzie się dynamicznie)

- jeśli x lub y zdjęcia uplodowanego przez użytkownika jest mniejsze niż 300px to zostanie wyświetlony komunikat o zbyt małym zdjęciu (reszta plików wgra się oczywiście prawidłowo)

2. Po kliknięciu wyślij:

- zostaną zweryfikowane dane - czy wszystkie pola zostały wpisane, czy mail jest prawidłowy, czy przynamjniej jeden obrazek został dodany. Jeśli tak, wyświetli się dialogbox, jakiś ajaxowy, cieniujący resztę strony z informacją o problemie.

- tytuł zostanie sprawdzony w bazie, czy już taki istnieje. Jeśli tak, wyświetli się dialogbox, jakiś ajaxowy, cieniujący resztę strony z informacją, że podany wpis już istnieje w bazie. ([url removed, login to view])

- tytuł, e-mail, artykuł zostanie dopisany do trzech baz równocześnie. W jednej z nich, w artykule zostanie wprowadzony dodatkowy kod html, który bedzie zawierał lokalizację i nazwy wszystkich dodanych zdjęć. ([url removed, login to view])

ZDJĘCIA:

- każdy plik zostanie utworzony w 3 wersjach (3 wielkości plików), skopiowany do innego folderu na www i wszystkie z nich będą konwertowane do jpg z jakością 90% (konwersja dla png>jpg, gif>jpg, jpeg>jpg). Wielkość podana w [url removed, login to view]

- każdy z tych 3 plików otrzyma własną nazwę ([url removed, login to view])

- e-mail zostanie oddzielnie dodany do innej bazy [4tej] danych [newsletter] (+spr czy istnieje)

- podczas tej konwersji/kopiowania/dodawania powinien zostać wyświetlony progressbar o statusie. Wszelkie rzeczy działyby się już po stronie serwera więc przerwanie tego skryptu (wyłączenie przeglądarki nie powinno wpłynąć na ostateczne dodanie).

- po zakończeniu wysyłania:

a) pliki przesłane z formularza zostaną skasowanę z folderu \"img-temp\" (ten folder, ze wstępnego uploadu)

b) formularz zostanie wyczyszczony

c) zostanie wyświetlony komunikat o statusie realizacji (pomyślnie dodano / napotkano problemy)

W konfiguracji na samej górze będą znajdowały się wszelkie ustawienia dla kodu:

- do połączeń baz

- do ustalenia w których z tych trzech baz mają zostać dodane dane a do których nie, np. baza1=1, baza2=1, baza3=1, newsletter=1 (dotyczy także kopiowania plików i skalowania w odpowiednie foldery). (1 - wyślij, 0 - zignoruj).

Można użyć jakiegoś dobrego skryptu, który obsłuży (w jak najmniej zużywający zasoby CPU) akcje pomniejszania, konwersji i sprawdzania wielkości zdjęcia. Skrypt powinien być odporny na błedy (problemy z formatem pliku, konwersją, zmianą rozmiaru, zapisem, wymaganymi polami do uzupełnienia, botami i spamem). Musi być zabezpieczony przed injections. Jeśli się pojawią w fazie po wyślij, skrypt powinien być kontynuowany, ale powinien istnieć komunikat co się stało wraz z prośbą o kontakt. (podany mail administratora) Jeśli import pliku częściowy to całkowite usunięcie (np. przerwane połączenie).

INNE:

Przy zapisywaniu treści:

- wszelkie specjalne znaki utf (tytuł,treść) powinny zostać zastąpione zwykłymi, np:

$a1 = array(\"–\", \"—\", \"“\", \"”\", \"„\", \"\", \"™\", \"‘\", \"’\", \"‚\", \"…\");

$b1 = array(\"-\", \"-\", \"\'\", \"\'\", \"\'\", \"-\", \" (TM)\", \"\'\", \"\'\", \"\'\", \"...\");

$tytul = str_replace( $a1, $b1, $tresc ) + inne, jakie?

- treść ma zostać zapisana w HTML, więc wszelkie \"entery\" powinny zostać zamienione w <BR\'y>. Jeśli enterów jest więcej pod rząd, to zostanie zrobiony z tego jeden. Jeśli enter był też na samym początku to też zostanie skasowany.

- wszelkie inne kody html (injections) powinny być skasowane, zabezpieczone. Usunięcie zbędnych klamr : \"<\"

Kontakt: dex10 @ [url removed, login to view]

Preferowana cena za zlecenie: do 200zł

CSS Projekty graficzne HTML PHP Projektowanie stron www

Numer ID Projektu: #5642873

O projekcie

Zdalny projekt Aktywny Dec 7, 2015