Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Formularz kontaktowy Php wysyłanie wyniku na kilka adresów email

cink9 16 Jun 2011 13:21 3223 2
  • #1
    cink9
    Level 9  
    Chodzi mi o taki formularz który wysyłał by zawartość do kilku adresatów (do określonej grupy ludzi) Chciałbym utworzyć kilka grup odbiorców np. studenci klasa 1, studenci klasa 2 itd. Po wpisaniu treści w formularzu chciałbym zaznaczyć odpowiednią grupę np. studenci kl 1 oraz klasa 2 i po kliknięciu przycisku wyślij żeby tylko grupy wcześniej zaznaczone otrzymały wiadomość. Sprawa jest niby prosta ale jednak trzeba się na tym znać żeby coś takiego zrobić ja niestety się nie znam dlatego szukam pomocy.

    [/b]
  • Helpful post
    #2
    dark_skeleton
    Level 17  
    Wymyśliłem coś takiego:
    Code: php
    Log in, to see the code


    Możesz zadeklarować ile tylko grup chcesz, w każdej dowolną ilość adresów, każda o dowolnej nazwie i wszystkie pojawią się w formularzu.
    Nie robiłem żadnych zabezpieczeń, o nie musisz sam zadbać (np. htmlspecialchars() przed wszystkim, co wypisujesz w oknie przeglądarki a co wcześniej wprowadził użytkownik, czyli przy każdej zmiennej zawartej w funkcji echo
    Oczywiście jeśli korzystasz z własnego serwera www i e-mail, odkomentuj linię mail(), żeby skrypt wysyłał e-maile. W tej wersji tylko wypisuje adresy, na które by wysłał wiadomości (oraz ich treść i temat). Jeśli nie masz własnego serwera, musisz skorzystać z innej funkcji :)

    Hope I helped
  • #3
    cink9
    Level 9  
    Dziękuję za szybką odpowiedź na moje pytanie.
    Niestety nie potrafiłem wykorzystać wcześniej zaprezentowanego kodu formularza. Pewnie ze względu na moją skromną wiedzę w tym temacie. Jednak znalazłem formularz który bardzo dobrze działa i jest w miarę prosty. Jedynym problemem jest to że po wysłaniu formularza do danej grupy oprócz zawartości formularza wysyłane są także pozostałe adresy meilowe. (Po prostu odbiorca w meilu widzi wszystkie adresy gdzie jeszcze była wysłana dana wiadomość) Mam wielką prośbę czy można w jakiś sposób przerobić poniższy kod żeby odbiorca nie widział pozostałych adresów?
    Bardzo proszę o pomoc..


    Code:

    <?php
    if(empty($_POST['submit'])){
    ?>
    <form action="kontakt.php" method="post"> <!--nazwa strony na której znajduje się formularz-->
    [b]Wybierz gdzie wysłać:<br />
    <select name="odbiorca" style="width:300px;">
       
    <option value="adres@1, adres@2, adres@3">studenci grupa 1</option>
    <option value="adres@4, adres@5, adres@6">studenci grupa 2</option>
    <option value="adres@7, adres@8, adres@9">studenci grupa 3</option>

    </select>[/b]
    <br />
    Imię i Nazwisko:<br />
    <input type="text" name="imienazwisko" style="width:300px;"/><br />
    E-Mail:<br />
    <input type="text" name="email" style="width:300px;"/><br />
    Treść wiadomości:<br />
    <textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea><br />
    <input type="submit" name="submit" value="Wyślij formularz"/>
    <input type="reset" value="Wyczyść"/>
    </form>
    <?php
    /*sprawdzenie wypełnienia wszystkich pól*/
    }elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
    /* Funkcja sprawdzająca poprawność E-Maila */
    function SprawdzEmail($email) {
     if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
      return false;
     }
     return true;
    }
    if(SprawdzEmail($_POST['email'])){
    /* Tworzymy szkielet wysyłanej wiadomości */
    $adresemail=$_POST['odbiorca'];
    $ip=$_SERVER['REMOTE_ADDR'];
    /* Wybierz kodowanie znaków usuwając // */
    //$charset = 'iso-8859-2';
    //$charset = 'utf-8';
    $host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
    $nadawca="From: $_POST[email]";
    @mail($adresemail, "Formularz kontaktowy z www.NAZWA_SERWISU.pl", "$wiadomosc", "$nadawca");
    echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";
    }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
    }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; }
    ?>