Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]Formularz PHP
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
Marion
Czy ktoś zachciałby napisać dla mnie formularz, który wysyłałby do mnie e-mail z wpisanymi danymi? Może ktoś hobbystycznie zajmuje się pisaniem formularzy...?
Sama się z tym męczę już trzeci dzień, a nie mogę osiągnąć zamierzonego efektu =\
Narazie udało mi się stworzyć prosty formularz, ale to nie jest to czego potrzebuję.
Jeśli jest ktoś chętny to podam co powinien zawierać ten formularz.
krispak
Pokaz co juz masz a pomyslimy co da sie z tym zrobic
fander
html -> form
php -> $_POST -> mail()

Napisz co chcesz mieć w tym formularzu, jeśli to nie jakieś cuda na kiju to się z palca napisze smile.gif, akurat wychodzę za 2 h z pracy to się pośpiesz tongue.gif
Marion
A więc tak... ściągnęłam jakiś prosty formularz kontaktowy z tej strony http://websta.pl/download/php-formularz-ko...wysylania-maili
Próbowałam go edytować, ale nie idzie ^^'' Chciałabym żeby formularz był bardziej zaawansowany.
Gram w pewną grę mmorpg i jestem tam leder'em jednego z klanów.
Chciałabym stworzyć taki formularz, że każdy kto zechciałby do nas dołączyć mógł wysłać swoje zgłoszenie przez oto taki formularz.

Schemat formularza miałby być następujący:

IGN (tzn nick i to pole musi być obowiązkowe, min 3 znaki):
Element (obowiązkowe pole wyboru z tylko jedną możliwą opcją):
- Earth
- Fire
- Water
- Wind
Job (obowiązkowe pole wyboru z tylko jedną możliwą opcją):
- Killer
- Warrior
- Knight
- Wit
- Priest
- Seer
LVL (obowiązkowe, tak żeby można było wpisywać tylko cyfy i max liczba cyfr to 3):
Country (obiwiązkowe, min 3 znaki):
Pytanie 1 (pytań jeszcze nie wymyśliłam, ale powiedzmy, że będzię to linijka textu na odpowiedź i obowiązkowe pole):
Pytanie 2 (obowiązkowe pole):
Pytanie 3 (obowiązkowe pole):
Message (kilka linijek textu i pole nieobowiązkowe):

I żeby oto taki formularz wysłał się do mnie na e-mail no i by na dać temu jakiś ładny wygląd =3
Będę widzięczna za pomoc! <3
BaN
Kiedyś też grałem smile.gif i też potrzebowaliśmy formularz zgłoszeń, więc ten co kiedyś zrobiłem dostosowałem do Twoich wymagań.
Plik możesz pobrać z http://gist.github.com/597327
Wymagania:
- PHP >= 5
- włączona funkcja mail() na serwerze
- zmień adres e-mail na Twój w wierszu 92
Nad wyglądem sama popracuj, powodzenia w grze smile.gif
Marion
Dzięki za odp ^^
Utworzyłam plik form.php i wkleiłam twój kod, wypełniłam dane i e-mail doszedł, ale bez danych o.O

Coś pewnie nie tak zrobiłam blinksmiley.gif
BaN
Nie to ja zrobiłem błąd smile.gif, nie testowałem po zapisaniu

W wierszu 88 zamiast:
  1. $message .= strtoupper($v) . ":\n {$v}\n";

ma być:
  1. $message .= strtoupper($v) . ":\n {$value}\n";
Marion
Działa, działa! Prawie.
Dochodzą dane poza message

IGN:Talmidah ELEMENT:Earth JOB:Warrior LVL:134 Q1:Moja odp Q2:nie mam pojecia Q3:haha MESSAGE:q3
Tam gdzie powinna być wiadomość jest q3 o.O

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
  4. <title>Form</title>
  5. <style type="text/css">
  6. html,body{margin:0;padding:0}
  7. body{background:#eee; color:#000; font:11px/16px verdana,sans-serif}
  8. form{margin:10px; padding:0}
  9. .class1 dt,.class1 dd{display:block; float:left; margin:0; padding:10px 0 0 0}
  10. .class1 dt{width:8em; clear:left}
  11. .class2 dt,.class2 dd{display:block; margin:0; padding:0; clear:left}
  12. .class2 dt{padding-top:10px}
  13. .clear{clear:both}
  14. </style>
  15. <script type="text/javascript">
  16. //<![CDATA[
  17. function trim(s){return s.replace(/^\s*|\s*$/g,'');}
  18. function test_form(f){
  19. var i,n,r,s='Please enter ',e=f.elements,fe=[
  20. {name:'ign', pattern:".{3,}", msg:s+'correct IGN (nick), at least 3 characters'},
  21. {name:'lvl', pattern:"^\\d{1,3}$", msg:s+'proper level, 0-999'},
  22. {name:'q1', pattern:".+", msg:s+'answer'},
  23. {name:'q2', pattern:".+", msg:s+'answer'},
  24. {name:'q3', pattern:".+", msg:s+'answer'}
  25. ];
  26. for (i=0, n=fe.length; i < n; ++i) {
  27. r = new RegExp(fe[i].pattern, 'g');
  28. if (!r.test(trim(e[fe[i].name].value))) {
  29. alert(fe[i].msg);
  30. f.elements[fe[i].name].focus();
  31. return false;
  32. }
  33. }
  34. r = false;
  35. for (i=e['element'].length-1; i >= 0; --i) {
  36. if (e['element'][i].checked) {r = true; break;}
  37. }
  38. if (!r) {alert('Please select element'); return false;}
  39. r = false;
  40. for (i=e['job'].length-1; i >= 0; --i) {
  41. if (e['job'][i].checked) {r = true; break;}
  42. }
  43. if (!r) {alert('Please select job'); return false;}
  44. return true;
  45. }
  46. //]]>
  47. </script>
  48. </head>
  49. <body>
  50. <?php
  51. class Request {
  52. private static function _processArray(&$array) {
  53. $array = self::_stripslashesDeep($array);
  54. }
  55.  
  56. private static function _stripslashesDeep($value) {
  57. static $magic_quotes = null;
  58. if (is_null($magic_quotes)) {
  59. $magic_quotes = (function_exists('get_magic_quotes_gpc') && (get_magic_quotes_gpc() === 1));
  60. }
  61. return is_array($value) ? array_map(array('Request', '_stripslashesDeep'), $value)
  62. : ($magic_quotes ? trim(stripslashes($value)) : trim($value));
  63. }
  64.  
  65. static function getPost($name) {
  66. static $called = false;
  67. if (!$called) {
  68. self::_processArray($_POST);
  69. $called = true;
  70. }
  71. return isset($_POST[$name]) ? $_POST[$name] : null;
  72. }
  73.  
  74. static function getRequestMethod() {
  75. return isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '';
  76. }
  77.  
  78. }
  79. if (strcmp(strtolower(Request::getRequestMethod()), 'post') == 0) {
  80. $error_msg = $message = '';
  81. foreach (array('ign', 'element', 'job', 'lvl', 'q1', 'q2', 'q3') as $v) {
  82. $value = Request::getPost($v);
  83. if (strlen((string)$value) === 0) {
  84. $error_msg .= "<br />\n- no value for '{$v}'";
  85. }
  86. else {
  87. $message .= strtoupper($v) . ":\n {$value}\n";
  88. }
  89. }
  90. if (strlen($error_msg) === 0) {
  91. $message .= "MESSAGE:\n {$v}\n";
  92. if (@mail('celcia@windowslive.com', 'application', $message, "MIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n")) {
  93. echo '<div style="border:1px solid green;margin:10px;padding:10px">Your request has been sent</div>';
  94. }
  95. else {
  96. echo '<div style="border:1px solid red;margin:10px;padding:10px">There was an error when sending mail</div>';
  97. }
  98. echo '</body></html>';
  99. exit();
  100. }
  101. else {
  102. echo '<div style="border:1px solid red;margin:10px;padding:10px">Errors in the form: ' . $error_msg . '</div>';
  103. }
  104. }
  105. ?>
  106. <form method="post" action="form.php" onsubmit="return test_form(this)">
  107. <dl class="class1">
  108. <dt>IGN:</dt>
  109. <dd><input type="text" name="ign" size="20" value="<?php echo htmlspecialchars(Request::getPost('ign')); ?>" /></dd>
  110. <dt>Element:</dt>
  111. <dd><label><input type="radio" name="element" value="Earth" /> Earth</label><br />
  112. <label><input type="radio" name="element" value="Fire" /> Fire</label><br />
  113. <label><input type="radio" name="element" value="Water" /> Water</label><br />
  114. <label><input type="radio" name="element" value="Wind" /> Wind</label></dd>
  115. <dt>Job:</dt>
  116. <dd><label><input type="radio" name="job" value="Killer" /> Killer</label><br />
  117. <label><input type="radio" name="job" value="Warrior" /> Warrior</label><br />
  118. <label><input type="radio" name="job" value="Knight" /> Knight</label><br />
  119. <label><input type="radio" name="job" value="Wit" /> Wit</label><br />
  120. <label><input type="radio" name="job" value="Priest" /> Priest</label><br />
  121. <label><input type="radio" name="job" value="Seer" /> Seer</label></dd>
  122. <dt>LVL:</dt>
  123. <dd><input type="text" name="lvl" size="3" maxlength="3" value="<?php echo htmlspecialchars(Request::getPost('lvl')); ?>" /></dd>
  124. </dl>
  125. <dl class="class2">
  126. <dt>Question 1?</dt>
  127. <dd><input type="text" name="q1" size="100" value="<?php echo htmlspecialchars(Request::getPost('q1')); ?>" /></dd>
  128. <dt>Question 2?</dt>
  129. <dd><input type="text" name="q2" size="100" value="<?php echo htmlspecialchars(Request::getPost('q2')); ?>" /></dd>
  130. <dt>Question 3?</dt>
  131. <dd><input type="text" name="q3" size="100" value="<?php echo htmlspecialchars(Request::getPost('q3')); ?>" /></dd>
  132. <dt><br />Your message:</dt>
  133. <dd><textarea name="message" cols="80" rows="5"><?php echo htmlspecialchars(Request::getPost('message')); ?></textarea></dd>
  134. </dl>
  135. <p class="clear">Almost all fields are required<br />
  136. <input type="submit" value="Submit" /></p>
  137. </form>
  138. </body></html>
BaN
Przepraszam, tak to jest jak się nie testuje smile.gif
W wierszu 91 zamiast:
  1. $message .= "MESSAGE:\n {$v}\n";

ma być:
  1. $message .= "MESSAGE:\n" . Request::getPost('message') . "\n";
Marion
Działa! Jesteś wielki. Nie zawacham się użyć stwierdzenia - boski Rkingsmiley.png
Dziękuję za pomoc ^^ Powinnam Cię zalinkować pod tym formularzem.
Jak chcesz link do swojej strony czy mail'a to mi napisz.
Dziękuję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.