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
^(-.-)^
post
Post #2





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

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


No rozumiem ze trzeba ciezko sie napracowac zeby cos osiagnac. (IMG:style_emoticons/default/smile.gif) zgadzam sie z toba.

Ok, moja zabawa z kodami nadal trwa i zrobilem cos prostego, bardzo prosty skrypt ktory dziala, wysyla email ale nie do konca poprawny mysle. Oto jak kod wyglada:

  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.  
  10.  
  11. <div id="content2">
  12. <?php
  13.  
  14. $ip = $_POST['ip'];
  15. $httpref = $_POST['httpref'];
  16. $httpagent = $_POST['httpagent'];
  17. $topic=$_POST['temat'];
  18. $imie=$_POST['imie'];
  19. $mail=$_POST['mail'];
  20. $message=$_POST['message'];
  21. $submit=$_POST['submit'];
  22.  
  23. <form id="sendmail" action="'.$_SERVER['PHP_SELF'].'" method="POST">
  24.  
  25.  
  26. <input type="hidden" name="ip" value="<?php echo $ipi ?>" />
  27. <input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
  28. <input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />
  29.  
  30. <p id="contact"><img src="img/kontakt.jpg" alt="kontakt_obrazek" /></p>
  31. <p id="cont">Wszelkie uwagi, problemy i opinie na temat aaa.pl są mile widziane</p>
  32. <p id="m1">Temat: <input id="m2" name="temat" type="text" size="45" maxlength="30" /></p>
  33. <p id="m1">Imię i Nazwisko: <input id="m2" name="imie" type="text" size="45" maxlength="30" /></p>
  34. <p id="m1">E-mail: <input id="m2" name="mail" type="text" /></p>
  35. <p id="m1"><span class="m11">Wiadomość:</span> <textarea id="m3" name="message" type="textarea" cols="60" rows="5"></textarea></p>
  36. <input id="send" name="submit" type="submit" value="" />
  37. </form> ';
  38.  
  39. if (isset($_POST[submit])) {
  40.  
  41. $header = "From: $imie <$mail>";
  42. $topic = "Temat: $_POST[temat]";
  43. mail("mail@gmail.com", "$topic", $_POST[message], "$header")
  44. or die('<p id="error">Nie udało się wysłać wiadomości ;(</p>');
  45. echo '<p id="succes" align="center">Wiadomość została wysłana poprawnie!</p>';
  46.  
  47. }
  48.  
  49. elseif (eregi('http:', $message)) {
  50. die ("Do NOT try that! ! ");
  51. }
  52.  
  53. elseif(!$mail == "" && (!strstr($mail,"@") || !strstr($mail,".")))
  54. {
  55. echo '<p id="error">Proszę podać prawidłowy email</p>';
  56.  
  57. }
  58.  
  59. elseif(empty($imie) || empty($topic)|| empty($mail) || empty($message )) {
  60. echo '<p id="error">Proszę wypełnić wszystkie pola</p>';
  61.  
  62. }
  63. ?>
  64.  
  65. </div>
  66. <?php
  67. include('include/footer.php');
  68. ?>


Problem:
1. mimo to ze zostawiam puste pole w formularzu to skrypt nadal wysyla email. A powinno dac komunikat "Prosze wypelnic wszystkie pole"
2. Skrypt nie weryfikuje wartosc emaila wiec ludzie moga wpisac byle co w pole email a skrypt wciaz wysyla. A powinno byc tak ze jezeli nie ma email w tym pole to skrypt zablokuje mozliwosc wysylania wiadomosci z komunikatem "Proszę podać prawidłowy email"


Narazie tyle potrzebuje. Co do zabezpieczenia strony od SQL injection to pozniej wymysle.

Jakis pomysl co do tych 2 punktow?? Co mam w moim kodzie poprawic?
Pozdro

Ten post edytował ^(-.-)^ 23.08.2009, 23:24:38
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: 6.10.2025 - 21:12