Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bledny formularz? [html][php]
Forum PHP.pl > Forum > PHP
GrzesiX
Witam, jestem nowy na tym forum. Mam pewien problem z formularzem mailowym. Zależy mi na tym, by ktoś bo wpisaniu w 2 rubrykach (np. Imię i GG) pewnych danych, wysyłał automatycznie maila na dany adres pocztowy. Wazne jest, by to bylo bezposrednie wyslanie ze strony a nie przy uzyciu programu pocztowego (np. Outlook). W internecie znalazlem jeden wzor owego formularza, zmienilem kilka danych i moj kod wyglada teraz tak:

Plik: index.html (glowna strona, na samym dole jest wlasnie kod formularza)

  1. <div>
  2. <form action="formularz.php" method="post">
  3. <p>Imie:
  4. <input type="text" name="email" size="20" /><br />
  5. GG:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  6. <input type="text" name="email" size="34" /></p>
  7. <p>
  8. <input type="submit" value="Wyslij!" style="font-family: Arial (fantasy); font-weight: bold; padding: 0" /> </p>
  9. </form>
  10. </div>


Plik: formularz.php

  1. <?PHP
  2. $adresat = 'grzesix12@o2.pl'; // pod ten adres zostanie wysłana // wiadomosc
  3. @$email = $_POST['email'];
  4. @$content = $_POST['content'];
  5. $header = "From: Moja Strona \nContent-Type:".
  6. ' text/plain;charset="iso-8859-2"'.
  7. "\nContent-Transfer-Encoding: 8bit";
  8. if (mail($adresat, 'Formularz', $content, $header
  9. echo 'Wyslano!';
  10. else
  11. echo '<p><b>NIE</b> wysłano maila!</p>';
  12. ?>


Po wrzuceniu tych dwoch plikow (formularz.php i index.html) na serwer i wpisaniu tekstu w obu rubrykach (Imie i GG)
i wcisnieciu przyciska Wyslij, owszem, przychodzi na moj e-mail wiadomosc, Od: Moja Strona, Temat: Formularz lecz wiadomosc ta jest pusta... Nie ma tego co jest w srodku, tekstu z rubryk: Imie i GG

Mam jeszcze jedna mniej wazna kwestie. Gdzie i jaki kod mam wrzucic zeby po wcisnieciu Wyslij automatycznie przekierowalo mnie na index.html

Prosze o pomoc!
jurdziol
W formularzu masz zle nazwane pole. Oba pola tekstowe nazwales email - do nazwania pol sluzy 'name' np. name="email".

Pole tekstowe dla imienia nazwij imie (name="imie"), dla gg nazwij gg i bedziesz mial $_POST['imie'] oraz $_POST['gg'];
GrzesiX
Teraz jest lepiej ale nie do konca. Zalozmy ze wpisuje w dwie rubryki jakis tekst. w rubryke Imie (pierwsza) wpisuje 123, a w druga: GG (druga) wposuje 234, mail przychodzi mi z terscia: 234. Nie wiem czemu nie przychodzi tekst z rubryki 1

Obecny kod:

index.html

  1. <div>
  2. <form action="formularz.php" method="post">
  3. <p>Imie:
  4. <input type="text" name="imie" size="20" /><br />
  5. GG:&nbsp;&nbsp;
  6. <input type="text" name="gg" size="34" /></p>
  7. <p>
  8. <input type="submit" value="Wyslij!" style="font-family: Arial (fantasy); font-weight: bold; padding: 0" /> </p>
  9. </form>
  10. </div>


formularz.php

  1. <?PHP
  2. $adresat = 'grzesix12@o2.pl'; // pod ten adres zostanie wysłana
  3.  
  4. // wiadomosc
  5. @$email = $_POST['imie'];
  6. @$content = $_POST['gg'];
  7. $header = "From: ktos@serwer.pl \nContent-Type:".
  8. ' text/plain;charset="iso-8859-2"'.
  9. "\nContent-Transfer-Encoding: 8bit";
  10. if (mail($adresat, 'List ze strony', $content, $header))
  11. echo '<p>Ze niby dziala haha.gif</p>';
  12. else
  13. echo '<p><b>NIE</b> wysłano maila!</p>';
  14. ?>
Blame
To dlatego że do zmiennej content przypisujesz jedynie wartość pola gg w pliku formularz.php. Powinno być np. tak:
  1. <?PHP
  2. $adresat = 'grzesix12@o2.pl'; // pod ten adres zostanie wysłana
  3.  
  4. // wiadomość
  5.  
  6. @$email = $_POST['imie'];
  7. @$gg = $_POST['gg'];
  8. @$content = "$email \n $gg";
  9. $header = "From: ktos@serwer.pl \nContent-Type:".
  10. ' text/plain;charset="iso-8859-2"'.
  11. "\nContent-Transfer-Encoding: 8bit";
  12. if (mail($adresat, 'List ze strony', $content, $header))
  13. echo '<p>Ze niby dziala haha.gif</p>';
  14. else
  15. echo '<p><b>NIE</b> wysłano maila!</p>';
  16. ?>
GrzesiX
Nadpisalem moj kod twoim, wgralem na server plik i:

po wcisnieciu Wyslij:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/uzytkownik/domains/mojastrona.pl/public_html/formularz.php on line 8

Kto pomoze? dam reputa
Blame
Poprawiłem, teraz powinno działać.
GrzesiX
Faktycznie, dziala... Wielkie dzieki winksmiley.jpg Oczywiscie dalem Ci reputka...

a, jeszcze pytanko: jaki kod i gdzie mam wrzucic zeby po wcisnieciu wyslij przekierowywal mnie na strone glowna (index.html)

wiem, ze w formularz.php i ze za $header, ale dokladnie nie wiem jaki kod i za ktorym header'em ;P
Blame
Po:
  1. if (mail($adresat, 'List ze strony', $content, $header))
  2.  
  3. echo '<p>Ze niby dziala haha.gif</p>';

dajesz sobie:
  1. header('Location: adres_strony);
GrzesiX
  1. if (mail($adresat, 'List ze strony', $content, $header))
  2. echo '<p>Ze niby dziala haha.gif</p>';
  3. header('Location: <a href="http://www.guildtibia.unl.pl);" target="_blank">http://www.guildtibia.unl.pl);</a>
  4. else
  5. echo '<p><b>NIE</b> wysłano maila!</p>';


I pisze ze wlasnie w tej linijce 16 jest blad
Blame
Poczytaj sobie więcej o funkcji header.
GrzesiX
Juz wszystko dziala jak trzeba, taki kod:

  1. <?PHP
  2. $adresat = 'grzesix12@o2.pl'; // pod ten adres zostanie wysłana
  3.  
  4. // wiadomość
  5.  
  6. @$email = $_POST['imie'];
  7. @$gg = $_POST['gg'];
  8. @$content = "$email \n $gg";
  9. $header = "From: ktos@serwer.pl \nContent-Type:".
  10. ' text/plain;charset="iso-8859-2"'.
  11. "\nContent-Transfer-Encoding: 8bit";
  12. if (mail($adresat, 'List ze strony', $content, $header))
  13. header("Location: <a href="http://www.mojastrona.pl&quot%3b%29;" target="_blank">http://www.mojastrona.pl");</a>
  14. ?>
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.