![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
Witajcie moi drodzy,
A wiec jestem poczatkujacym koderem jezeli chodzi o PHP i teraz mam male zamieszanie. A mianowicie chce zrobic formularz email do mojej strony pod nazwa contact.php. Napisalem 1/5 kodu php ale pozniej nie za bardzo wiem za co sie wziac pierwszy. Moze ktos mi pomoze. To jest moj kod:
Co ja chce robic? 1. Chce robic formularz zeby uzytkownicy mojej strony moga wysylac do mnie email. jako action chce zeby byla ta sama strona co zakladka czyli contact.php. 2. Chce zeby kazde komunikaty dotyczace wysylaniem email oraz bledy sa wyswietlone nad formularzem (Juz zrobilem CSS do tego). 3. Chce zeby wszystkie pole byly uwzglednione czyli jezeli 1 z tych pol bedzie pusty to bedzie komunikat jak "Wszystkie pole sa obowiazkowe" 4. Chce zabiezpieczyc sie przed spamerami (ustawic tak zeby usery mogli napisac email w odstepie 30 mn np) - przyda sie tez poprawnosc emaila podane przez usera. To wszystko czego bym sobie zyczyl. Mam nadzieje ze duzo nie prosilem. I bede bardzo wdzieczny jezeli ktos mi w tym pomoze. A mianowicie bym sie nauczyc i czegos wiecej sie dowiedzial bo ucze sie php wlasnie i potrzebuje mala pomoc. Pozdrawiam serdecznie Johny |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
No... nareszcie coś od siebie (IMG:style_emoticons/default/biggrin.gif)
Motasz za bardzo z warunkami. Najlepiej podziel sobie to ładnie na część "logiki" i część "prezentacji" bez mieszania ich ze sobą, tak jak to zrobiłem w jednym ze swoich postów tutaj. Przemyśl na przykład coś takiego
Tu jest maksymalnie chyba rozdzielone obie warstwy o jakich wspominałem, ale to tylko szkic, bo można to zrobić inaczej i powinno to być poprawione, gdyż walidacja jest w szczątkowej wersji i brak sprawdzania danych przesłanych postem by uniknąć XSS, SQL injection i błędów wynikających ze znaków specjalnych. Ale ogólnie od tego do poprawnego kodu działającego już tylko kroczki małe. Jeśli teraz już nie będziesz sam mógł dalej pchnąć to nie wiem co jeszcze może być trudnego. Każdy tu chyba piszący by to przerobił w chwilkę na pełnoprawny kod. Zauważ, że formularz wyświetlam tylko raz, odpowiednio uzupełniwszy danymi. I tak właśnie szablon tego co chcesz zrobić powinien wyglądać. A tak całość formularza uzależniasz od warunków, które niekoniecznie muszą być prawidłowe. Przerobienie tego na MVC jakiego używa wiele stron i frameworków jest chwilką. Dziala to tak... Jeśli jest to pierwsze wejście - wyświetla wartości puste, jakie ustawiłem na samym początku. Jeśli ktoś już coś wypełnił to sprawdza czy są błędy i odpowiednio ustawia komunikaty błędów dla konkretnych pól oraz zmienna oznaczająca sukces ustawia się na sukces lub porażka w zależności od tego czy błędy były. Jeśli po wstępnej walidacji był sukces to wysyłamy maila. Do zmiennej z polami formularza, w razie gdy ktoś dał submit,wpisujemy dane z POST, niezależnie czy wynik był prawidłowy czy nie, bo inaczej te dane "zgubimy". Jest to ważne w razie błędów, bo dzięki temu user nie będzie musiał wypełniać pól od nowa. No i na koniec wyświetlamy informację w zależności od flagi sukcesu 0 - błędy, 1 - mail wysłano. Do tego z tabeli errors możemy wypisać dokładnie jakie błędy były. No i wyświetlamy formularz uzupełniając go danymi z tablicy form. Czasem są one puste, ale jeśli było coś w post to nimi się formularz sam uzupełni. Prościej już chyba nie da się wytłumaczyć... Prostszy już byłby tylko gotowiec, a taki miły nie jestem (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 10:59 |