ďťż
Podstrony
|
telcocafeWitam,Musze zrobic formularz, ktory bedzie zawieral takie pola tekstowe: - imie (tylko litery) - nazwisko (tylko litery) - adres (raczej bez ograniczen) - e-mail (at) - numer telfonu (tylko cyfry) - odpowiedz (bez ograniczen) I to wszystko po wcisnieciu przycisku wyslij pasuje zeby zostalo wyslane pod dany adres e-mail w jednym liscie mailowym. Stworzylem oto cos takiego: test.html <FORM ACTION="send_answer.php" METHOD=POST> <table> <tr> <td>Imie:</td> <td><INPUT TYPE="TEXT" NAME="imie" SIZE=30></td> </tr> <tr> <td>Nazwisko:</td> <td><INPUT TYPE="TEXT" NAME="nazwisko" SIZE=30></td> </tr> <tr> <td>Adres zamieszkania:</td> <td><TEXTAREA ROWS=4 COLS=25 NAME="adres">Wprowadz adres</TEXTAREA></td> </tr> <tr> <td>Adres e-mail:</td> <td><INPUT TYPE="TEXT" NAME="email" SIZE=30></td> </tr> <tr> <td>Numer telefonu:</td> <td><INPUT TYPE="TEXT" NAME="telefon" SIZE=20></td> </tr> <tr> <td>Gadu-Gadu:</td> <td><INPUT TYPE="TEXT" NAME="gg" SIZE=10></td> </tr> <tr> <td>Odpowiedz:</td> <td><TEXTAREA ROWS=4 COLS=25 NAME="odpowiedz">Wprowadz odpowiedz</TEXTAREA></td> </tr> </table> <INPUT TYPE="SUBMIT" VALUE="Wyslij"> </form> i plik send_answer.php <?php $body = "Te dane zostaly wyslane za pomoca strony WWW\n\n"; foreach($_POST as $field => $value) { $body .= sprintf("%s = %s\n", $field, $value); } mail("konkurspim@gmail.com", "Dane konkursowel", $body, 'From: "DanePI" <konkurspim_dane@gmail.com>'); ?> <p>Twoje dane wezma udzial w losowaniu</p> Sprawdzalem to na localhoscie. Wchodze sobie w test.html wypelniam formularz i klikam na wyslij. Wyswietla mi sie nastepujacy komunikat Cytat: Warning: mail(): SMTP server response: 554 <pa167.kolobrzeg.sdi.tpnet.pl[217.96.210.167]>: Client host rejected: Access denied in c:\usr\krasnal\www\formularz\send_answer.php on line 10 Prosze o pomoc, czy to co napisalem ma prawo w ogole dzialac? No i co zrobic zeby dzialalo, i jak wprowadzic te ograniczenia, ze wszystkie pola powinny byc wypelnione, albo wszystkie oprocz adresu? może ie maszs skonfigurowanego serwera FTP wrzuć to na jakiegoś serwa :) Co do sprawdzania czy są podane wykorzystaj funkcje : empty - sprawdza czy ciag jest pusty is_numeric - sprawdza czy jest to liczba eregi('^[a-zA-z0-9_]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\-\.]+$', $mail) - sprawdza czy podano prawidłowy adres email. Co do błędu to nie masz skonfigurowanego serwera SMTP, wysyłasz zdaje sie z własnego kompa, na krasnalu. Zainstaluj jego najnowszą wersję wraz z SMTP. A gdy będziesz wybierał serwer na stronę sprawdź wpierw czy umożliwia on wysyłanie maili w ten sposób, czyli funkcją mail(). wrzuć to na jakiegoś serwa :) Na localhoście nie dziaa mail. Więcej http://www.70.pl/mai...1&ktory_art=114 Fakt, na serwerze działa ;) A szczerze mowiac nie bardzo wiem jak uzyc tych funkcji sprawdzajacych poprawnosc danych, prosilbym tu o wiecej danych ;) Sprawdzanie czy zmienna jest pusta: if (empty($imie)) { echo 'Brak imienia - spróbuj jeszcze raz!'; } Sprawdzenie numeruif(!is_numeric($telefon)) echo 'Zły telefon'; Mail:if (!eregi('^[a-zA-z0-9_]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\ -\.]+$', $mail) echo 'Zły email'; Użytkownik mmatheww edytował ten post 24 maj 2006, 19:02 A w ktorym miejscu send_ansewer.php mam to wrzucic ;) ? To ty nie znasz nic z php? $body = "Te dane zostaly wyslane za pomoca strony WWW\n\n"; if (empty($_POST['imie'])) { echo 'Brak imienia - spróbuj jeszcze raz!'; } else if (empty($_POST['nazwisko'])) { echo 'Brak nazwisko - spróbuj jeszcze raz!'; } else if (empty($_POST['adres'])) { echo 'Brak nazwiska - spróbuj jeszcze raz!'; } else if (!eregi('^[a-zA-z0-9_]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\ -\.]+$', $_POST['email']) echo 'Zły email'; else if(!is_numeric($telefon)) echo 'Zły telefon'; else if (empty($_POST['odpowiedz'])) { echo 'Brak odpowiedzi - spróbuj jeszcze raz!'; } else { foreach($_POST as $field => $value) { $body .= sprintf("%s = %s\n", $field, $value); } mail("konkurspim@gmail.com", "Dane konkursowel", $body, 'From: "DanePI" <konkurspim_dane@gmail.com>'); ?> <p>Twoje dane wezma udzial w losowaniu</p> } Że zadziała nie gwarantuję, może wymagać modyfikacji, ale podstawę masz :D |
|||
Sitedesign by AltusUmbrae. |