ďťż

[php] formularz i mail

       

Podstrony


telcocafe

Witam,
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

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.