gnz Opublikowano 23 Lutego 2010 Zgłoś Opublikowano 23 Lutego 2010 (edytowane) Zadanie: na stronie chce umieścic formularz z kilkoma danymi i żeby wyniki wysłał mi na maila Problem: wysyłanie wiąże się z klientem pocztowym po stronie wysyłającego Cel: ominąć konieczność konfigurowania klienta Pytanie: da się ? :) Wiem że można by utworzyć prostą baze danych mysql + php i wyniki same wskakują ale pytanie brzmi czy da się z formularza html wysłac wyniki na maila ? znalazłem info w necie że właśnie przy użyciu php i serwerowej funkcji "mail" jest to możliwe - kod prezentuje się następująco: <?phpif (count($_POST)){ $email = 'mail@gmail.com'; $subject = 'tytul'; $message = 'Dziękujemy za wysłanie formularza'; $error = 'Wystąpił błąd podczas wysyłania formularza'; $charset = 'iso-8859-2'; $head = "MIME-Version: 1.0\r\n" . "Content-Type: text/plain; charset=$charset\r\n" . "Content-Transfer-Encoding: 8bit"; $body = ''; foreach ($_POST as $name => $value) { if (is_array($value)) { for ($i = 0; $i < count($value); $i++) { $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n"; } } else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n"; } echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;}else{?><form action="mailto:mail@gmail.com?subject=tytul" method="post">Imie <input type="text" name="imie" /><br>Nazwisko <input type="text" name="nazwisko" /><br>PESEL <input type="text" name="pesel" /><br>Pytanie ?<input type="radio" name="odpowiedz" value="tak" checked>TAK <input type="radio" name="odpowiedz" value="nie">NIE<br><input type="submit" value="Wyslij">  <input type="reset" value="Wyczysc"></form><?php}?> mi to cosik nie działa - nadal dopytuje o klienta (w operze) i nawet jak coś wybiore to nie wysyła sie w IE sam chce wysłać z podejrzeniem o wirusa - ale pomimo to nie wysyła może ktoś naprawi tak by działało :) thx Edytowane 23 Lutego 2010 przez gnz Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
stivo Opublikowano 23 Lutego 2010 Zgłoś Opublikowano 23 Lutego 2010 IMO samo action="mailto:.." już zmusza przeglądarkę do wywołania programu mailowego. Ja użyłem kiedyś tego modułu i poszło bez problemu. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
gnz Opublikowano 23 Lutego 2010 Zgłoś Opublikowano 23 Lutego 2010 ok już nieaktualne - znalazłem inny kod który działa :) może komus sie przyda: <?php // sprawdzamy, czy zmienna $submit jest pusta if (empty($_POST['submit'])) { // wyświetlamy formularz echo "<table border=\"0\"><form method=\"post\"> <tr> <td>Treść wiadomości</td> <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td> </tr> <tr> <td>Imię, nazwisko lub nick</td> <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td> </tr> <tr> <td>Adres e-mail</td> <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td> </tr> <tr> <td> </td> <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\"> <input type=\"reset\" value=\"Od nowa\"></td></form> </tr> </table>"; } // sprawdzamy, czy zmienne przesłane z formularza nie są puste elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) { // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość // zmienna $message zawiera treść wiadomości $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]"; // zmienna $header zawiera przede wszystkim adres zwrotny $header = "From: $_POST[imie] <$_POST[email]>"; // funkcja mail() za pomocą której wiadomość zostanie wysłana @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header") or die('Nie udało się wysłać wiadomości'); // wyświetlenie komunikatu w przypadku powodzenia echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>"; } // lub w przypadku nie wypełnienia formularza do końca else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>"; ?> http://www.kess.snug.pl/?sid=10&pid=17 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...