1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE niedzialający formularz :/

Dyskusja w 'WordPress, Joomla!, PHP, HTML, CSS' rozpoczęta przez użytkownika maciejos, 17 Marzec 2018.

  1. maciejos

    maciejos Nowy użytkownik

    Wiadomości:
    4
    Docenione treści:
    2
    Cześć
    Mam problem z działaniem formularza na swojej stronie. Skrypt wziąłem od darmowego szablonu strony - zawartośc pliku php poniżej:

    <?php

    // Replace this with your own email address
    $siteOwnersEmail = 'tu wpisałem swój adres';


    if($_POST) {

    $name = trim(stripslashes($_POST['contactName']));
    $email = trim(stripslashes($_POST['contactEmail']));
    $subject = trim(stripslashes($_POST['contactSubject']));
    $contact_message = trim(stripslashes($_POST['contactMessage']));

    // Check Name
    if (strlen($name) < 2) {
    $error['name'] = "Podaj swoje imię i nazwisko.";
    }
    // Check Email
    if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
    $error['email'] = "Podaj poprawny adres email.";
    }
    // Check Message
    if (strlen($contact_message) < 15) {
    $error['message'] = "Wpisz swoją wiadomość. Musi zawierać co najmniej 15 znaków.";
    }
    // Subject
    if ($subject == '') { $subject = "Wpisz temat wiadomości"; }


    // Set Message
    $message .= "Email from: " . $name . "<br />";
    $message .= "Email address: " . $email . "<br />";
    $message .= "Message: <br />";
    $message .= $contact_message;
    $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />";

    // Set From: header
    $from = $name . " <" . $email . ">";

    // Email Headers
    $headers = "From: " . $from . "\r\n";
    $headers .= "Reply-To: ". $email . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    if (!$error) {

    ini_set("sendmail_from", $siteOwnersEmail); // for windows server
    $mail = mail($siteOwnersEmail, $subject, $message, $headers);

    if ($mail) { echo "OK"; }
    else { echo "Upps, coś poszło nie tak..."; }

    } # end if - no validation error

    else {

    $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
    $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
    $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;

    echo $response;

    } # end if - there was a validation error

    }

    ?>

    Czy ktoś z Was wie, czemu nie działa? Z gory dzięki za pomoc.
    Pozdro
    M.
     
  2. casar

    casar Ekspert

    Wiadomości:
    364
    Docenione treści:
    109
    W zmiennej $from musisz wstawiać adres e-mail, który musi byc założony na serwerze w home, na ktorym stoi strona.

    Wysłane z mojego PLUS przy użyciu Tapatalka
     
  3. maciejos

    maciejos Nowy użytkownik

    Wiadomości:
    4
    Docenione treści:
    2
    Którą linijkę masz na myśli? Czy
    $from = $name . " <" . $email . ">";

    A jeśli tak, to jak powinienem wpisać?
     
  4. LorK

    LorK Pogromca Beta-tester

    Wiadomości:
    939
    Docenione treści:
    84
    przeczytaj jeszcze raz to co napisał @casar bo mam wrażenie, że nie zrozumiałeś jego wypowiedzi.
    PS. podobny wątek był już nie raz na forum
     
  5. casar

    casar Ekspert

    Wiadomości:
    364
    Docenione treści:
    109
    Tak, dokładnie. Musisz u na sztywno mieć wstawiony adres e-mail działający na serwerze.
     
    maciejos lubi to.
  6. maciejos

    maciejos Nowy użytkownik

    Wiadomości:
    4
    Docenione treści:
    2
    @casar - super, działa - bardzo dziękuję za pomoc. A wiesz może, czemu w wiadomości nie ma polskich znaków?
     
  7. casar

    casar Ekspert

    Wiadomości:
    364
    Docenione treści:
    109
    Zamień testowo linijkę:
    PHP:
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    na
    PHP:
    $headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
    i wtedy sprawdź.
     
    Mariusz, maciejos oraz LorK lubią to.
  8. maciejos

    maciejos Nowy użytkownik

    Wiadomości:
    4
    Docenione treści:
    2
    Zmieniłem tylko kodowanie na UTF-8, zostawiłem HTML i działa. Jeszcze raz dziękuję.
     
    casar i Mariusz lubią to.

Poleć forum znajomym