Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]E-mail Formularz (Prosze o pomoc)
^(-.-)^
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.09.2008

Ostrzeżenie: (20%)
X----


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:

  1. <?php
  2. include('include/header.php');
  3. ?>
  4.  
  5. <span class="content_bg"></span>
  6. <span class="content_bg2"></span>
  7. <span class="content_bg3"></span>
  8.  
  9. <div id="content2">
  10. <form id="sendmail" action="contact.php" method="POST" >
  11.  
  12.  
  13. <input type="hidden" name="ip" value="<?php echo $ipi ?>" />
  14. <input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
  15. <input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />
  16.  
  17. <p id="contact"><img src="img/kontakt.jpg" alt="kontakt_obrazek" /></p>
  18. <p id="cont">Wszelkie uwagi, problemy i opinie na temat.... są mile widziane</p>
  19. <p id="m1">Temat: <input id="m2" name="temat" type="text" size="45" maxlength="30" /></p>
  20. <p id="m1">Imię i Nazwisko: <input id="m2" name="imie" type="text" size="45" maxlength="30" /></p>
  21. <p id="m1">E-mail: <input id="m2" name="mail" type="text" /></p>
  22. <p id="m1"><span class="m11">Wiadomość:</span> <textarea id="m3" name="message" type="textarea" cols="60" rows="5"></textarea></p>
  23. <input id="send" name="submit" type="submit" value="" />
  24.  
  25. <?php
  26. $ip = $_POST['ip'];
  27. $httpref = $_POST['httpref'];
  28. $httpagent = $_POST['httpagent'];
  29. $temat=$_POST['temat'];
  30. $imie=$_POST['imie'];
  31. $mail=$_POST['mail'];
  32. $message=$_POST['message'];
  33. $submit=$_POST['submit'];
  34. ?>
  35.  
  36. </form>
  37. </div>
  38.  
  39. <?php
  40. include('include/footer.php');
  41. ?>


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
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 i mój pobieżny kod robi to o czym mówisz (IMG:style_emoticons/default/smile.gif)
Jeśli wejdziesz po raz pierwszy - wszystko będzie puste,
Jeśli walniesz byka - wywali info o błędach, a gdzie je umieścisz to już Twoja sprawa.
Jedyna różnica to tyle, że w razie poprawnego wpisania nie zrobisz przejścia do innej strony, tylko puszczasz to dalej i na początku wyświetlania formularza dodasz linijkę:
  1. if( $error['success'] == 1 ) echo $komunikat_o_powodzeniu;


O walidacji e-mail tez napisałem już pod kątem wyrażeń regularnych, a nie porównywania z bazą. Do puszczenia wyrażenia regularnego na stringu nie jest ona potrzebna. Efekt jaki chcesz uzyskać jest podstawami znajomości obsługi php i jeśli sobie z tym już na tym etapie nie radzisz, to później będziesz miał jeszcze gorzej. Uwierz, że napisanie tego formularza mającego zaledwie kilka pól, z pełną walidacją, zabezpieczaniem przed sql injection, XSS itp, w czystym php to zadanie na góra 10 minut (jeśli człowiek jest śpiący i już kompletnie nie myśli ), a z pomocą frameworka jeszcze szybciej. Tyle, że pomoc - pomocą, wskazówki - wskazówkami, ale forum jest po to by uczyć JAK coś zrobić a nie tylko dawać gotowce.
Ze swojej strony podałeś kod jaki masz jako gotowiec skądś i liczysz, że teraz oddamy Ci go już poprawionego do formy jakiej oczekujesz. Osoby tutaj piszące w temacie dały już tyle wskazówek i podpowiedzi, że osobiście byłoby mi już wstyd, że nie skorzystałem z choćby części i nie spróbowalem sam tego poprawić, stosując się do nich.
Zauważ, że nie zamieszczono tutaj niczego, co wskazywałoby na Twój własny wkład w poprawienie go. Rzucono temat, rzucono wymagania i czekasz teraz aż ktoś Ci da gotowe rozwiązanie i jeszcze w odczuciu wielu osób zapewne dyrygujesz, choć jak napisalem wyżej, mój post poprzedni dał Ci niemal gotowca, którego już tylko trochę trzeba dostosować do tego co masz. A to tylko pokazuje, że nawet nie masz pojęcia o tym co do Ciebie piszemy i nie rozumiesz naprawdę podstaw. Widzisz tylko obrazki i jak ma to wyglądać, ale kod za tym stojacy jest dla Ciebie abstrakcją. Może i rozumiesz html czy css, tyle że php już najprawdopodobniej nie. I to nie jest przytyk by Cię obrazić, ale realne spojrzenie na możliwości. Naprawdę zacznij od zrozumienia języka, poczytania tutoriali, helpów, bo inaczej nawet z instalacją nieco bardziej skomplikowanych wtyczek do serwisu sobie nie poradzisz. A co dopiero mówić o poprawianiu kodu autora do własnych potrzeb.

By było jeszcze bardziej dołująco... Przez czas pisania tego posta do Ciebie, wielu z tu siedzących (w ty i ja) napisało by przynajmniej kilka razy ten kod już włącznie z deklaracjami stylu, stworzeniem grafiki i przetestowaniem na najpopularniejszych przeglądarkach tak, by jedynie śpiewać i tańczyć nie potrafił (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 07:02