przemek980 utworzono 29 stycznia 2010 utworzono 29 stycznia 2010 Mam problem z formularzem kontaktowym. Potrzebuję formularz w którym będzie możliwość wypełnienia kilku pól, wyglądający mniej więcej tak: [b]Imię:[/b] /pole/ [b]Nazwisko:[/b] /pole/ itd. Mam takie pliki: [i]popup.php[/i] [code] <?='<?xml version="1.0" encoding="ISO-8859-2"?>' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang <meta name="generator" content="WebSite PRO 4.3" /> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /> <title>PopUp</title> </head><body><table style="width:100%;" border="0" cellpadding="0" cellspacing="0"><tr><td align="center"> <? $mail = $_POST["mail"]; $tekst = $_POST["tekst"]; echo "<p><b>Dziękujemy za wiadomość!</b></p>"; mail("exaple@example.com","Kontakt", $tekst, "From: $mail"); ?> <p> <a href="javascript:window.close()">Zamknij okno</a> </p> <script type="text/javascript"> <!-- <![CDATA[ setTimeout("window.close()",10000); // ]]> --> </script> </td></tr></table></body></html> [/code] [i]kontakt.php[/i] [code] <script type="text/javascript"> <!-- <![CDATA[ function wyslij(t) { maska = /^[0-9a-z_.-]+@([0-9a-z-]+.)+[a-z]{2,4}$/i; if (maska.test(t.mail.value)==false) { alert("Wpisz poprawny adres e-mail!"); t.mail.focus(); return false; } t.target="odp"; odp = window.open("","odp","width=300,height=300"); odp.moveTo(50, 50) odp.focus(); return true; } // ]]> --> </script> <form action="popup.php" method="post" onsubmit="return wyslij(this);"><div> Wpisz wiadomość:<br /> <textarea name="tekst" rows="6" cols="12" style="width:500px;"></textarea> <br>Wpisz adres e-mail:<br> <input type="text" name="mail" style="width:150px;" /><br><br> <input type="submit" value="Wyślij" /><br><br> </div></form> [/code] Powyższy formularz działa z jednym polem do wypełnienia natomiast z kilkoma polami, wysyła tylko to ostatnie. Jak zmienić go, by wysyłał wszystkie wypełnione pola?
byku komentarz 30 stycznia 2010 komentarz 30 stycznia 2010 W linii [php]$tekst = $_POST["tekst"];[/php] Masz zawarty tekst, który zostanie wysłany jako treść wiadomości. Możesz zrobić na przykład: [php]$tekst = "E-mail: {$_POST['mail']} Tekst: {$_POST['tekst']}";[/php] Co zaowocuje wysłaniem wiadomości w formacie: [quote]E-mail: wpisany@adres.email Tekst: Urna, turpis rhoncus pid augue amet porta vel parturient rhoncus, tempor porta massa! Adipiscing amet augue dolor urna. Sit! Eu adipiscing est diam adipiscing, sagittis etiam, ultrices? Etiam sagittis penatibus, sit nec, massa amet porta pellentesque, aenean a, phasellus in habitasse? Sagittis, in pulvinar porta aliquet turpis mus, in enim ac cursus integer.[/quote] Wartość każdego z pól jest w tablicy $_POST, gdzie nazwa klucza jest nazwą(name="cośtam") pola. Na przykład $_POST['test'] dla pola o name="test". 1
przemek980 komentarz 31 stycznia 2010 Autor komentarz 31 stycznia 2010 (edytowane) Wszystko byłoby dobrze, gdyby jeszcze nie błąd: [quote]Parse error: syntax error, unexpected T_VARIABLE in /var/www/virtual/factorysite.cba.pl/invest-broker/pl/popup.php on line 13[/quote] Linia 13 wygląda następująco: [code]$tekst = $_POST["imię"] $_POST["nazwisko"] $_POST["adres"];[/code] Problem leży w średniku (;). Jeśli dam go zaraz po $_POST["imię"] to wysyła tylko [i]Imię[/i]. Jeśli dam go po $_POST["adres"] to wyskakuje powyższy błąd :( Co więc zrobić?
luq komentarz 31 stycznia 2010 komentarz 31 stycznia 2010 [quote name='djtrojan' date='31 styczeń 2010 - 13:38' timestamp='1264941513' post='963622'] Linia 13 wygląda następująco: [code]$tekst = $_POST["imię"] $_POST["nazwisko"] $_POST["adres"];[/code] [/quote] Trzeba jakość skonkatować te dane do jednej zmiennej prawda? [code]$tekst = $_POST["imię"].' '.$_POST["nazwisko"].' '.$_POST["adres"];[/code] 1
przemek980 komentarz 31 stycznia 2010 Autor komentarz 31 stycznia 2010 Bardzo Wam dziękuję Wszystko działa.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.