Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Formularz kontaktowy pytanie z PHP - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Formularz kontaktowy pytanie z PHP (/thread-formularz-kontaktowy-pytanie-z-php)

Strony: 1 2


Formularz kontaktowy pytanie z PHP - Matissen - 09-01-2012

Witam,

Mam problem z kodem w formularzu, ponieważ w wysyłanych mailach otrzymuje krzaczki. Próbowałem już chyba wszystkich znalezionych w sieci rozwiązań, ale żadne nie pomogło. Wrzucę kody ze strony oraz pliku php.

Kod JavaScript
Kod:
$(document).ready(function() {

$("#form1").validationEngine({
    ajaxSubmit: true,
                    ajaxSubmitFile: "ajaxSubmit.php",
                    ajaxSubmitMessage: "Dziękujemy za wiadomość!",
                success :  false,
                failure : function() {}
    })
            

        
});

Kod ze strony html (body)
Kod:
<div id="wrapper">
  <div id="form-div">
    <form class="form" id="form1">
      <p class="name">
        <input name="name" type="text" class="validate[required,custom[onlyLetter],length[0,100]] text-input" id="name" value=""/>
        <label for="name">Imię</label>
      </p><br />
      <p class="email">
        <input name="email" type="text" class="validate[required,custom[email]] text-input" id="email" value=""/>
        <label for="email">e-Mail</label>
      </p><br />
      <p class="web">
        <input type="text" name="web" id="web"/>
        <label for="web">Temat</label>
      </p><br />
      <p class="text">
        <textarea name="text" class="validate[required,length[6,300]] text-input" id="comment"></textarea>
      </p><br />
      <p class="submit">
        <input type="submit" value="Wyślij" />
      </p>
    </form>

  </div>
</div>

oraz z pliku ajaxSubmit.php

Kod:
<?php

$name = $_POST['name']; // contain name of person
$email = $_POST['email']; // Email address of sender
$temat = $_POST['temat']; // Your website URL
$body = $_POST['text']; // Your message
$receiver = "[email protected]" ; // hardcorde your email address here - This is the email address that all your feedbacks will be sent to
if (!empty($name) & !empty($email) && !empty($body)) {
    $body = "Imię:{$name}\n\nTemat :{$web}\n\nTreść:{$body}\n\nMail:{$email}";
    $send = mail($receiver, 'Formularz kontaktowy', $body, "Od: {$email}");
    if ($send) {
        echo 'true'; //if everything is ok,always return true , else ajax submission won't work
    }

}

?>

Strona ma kodowanie UTF-8 i polskie znaki na stronie są. Formularz wysyła normalnie, tylko krzaczy. Pomocy, cały dzień już przy tym spędziłem.

Pozdrawiam,
Matissen


RE: Formularz kontaktowy pytanie z PHP - hieroshima - 09-01-2012

nie masz nagłówka w którym powinieneś dać kodowanie. Dodaj do nagłówka taki kod "Content-type: text/plain; charset=UTF-8" i bedzie gitara


RE: Formularz kontaktowy pytanie z PHP - Matissen - 09-01-2012

(09-01-2012, 12:49)hieroshima napisał(a): nie masz nagłówka w którym powinieneś dać kodowanie. Dodaj do nagłówka taki kod "Content-type: text/plain; charset=UTF-8" i bedzie gitara

Ok. Wstawiłem z cudzysłowami przed <? i nie wysyła, usunąłem też nie wysyła, nawet wstawiłem pod <? to wyskoczyło, że błędne kodowanie utf-8 i też nie wysyła.


RE: Formularz kontaktowy pytanie z PHP - hieroshima - 09-01-2012

<?php
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
mail($to, $subject, $message, $headers);
?>

Przykład z manuala, zobacz gdzie zrobiłeś błąd Wink


RE: Formularz kontaktowy pytanie z PHP - Matissen - 09-01-2012

Zrobiłem coś takiego i dalej nie mam polskich znaków
Kod:
<?php

$name = $_POST['name'];
$email = $_POST['email'];
$temat = $_POST['temat'];
$body = $_POST['text'];
$receiver = "strona@przykładowa.pl" ; //
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
if (!empty($name) & !empty($email) && !empty($body)) {
    $body = "Imię:{$name}\n\nTemat :{$web}\n\nTreść:{$body}\n\nMail:{$email}";
    $send = mail($receiver, 'Formularz kontaktowy', $body, "Od: {$email}", $headers);
    if ($send) {
        echo 'true';
    }

}

?>



RE: Formularz kontaktowy pytanie z PHP - hieroshima - 10-01-2012

usuń kropkę z pierwszego $headers przed znakiem = i zobacz w manualu jak wygląda funkcja mail i ile parametrów przyjmuje


RE: Formularz kontaktowy pytanie z PHP - Matissen - 10-01-2012

Usunąłem obydwie kropki w headers przed = I dalej nie ma polskich znaków. Dostaje coś takiego:


Imię:Imię

Temat :Książka

Treść:Treść!

Mail:email@przykładowy.pl

Spojrzałem w ten skrypt od Ciebie i nie wiem o co może chodzić, mam wszystkie 4. Otrzymuje wszystkie dane wysłane z formularza, tyle, że krzaki.

Ręce już mi opadajaSad


RE: Formularz kontaktowy pytanie z PHP - hieroshima - 10-01-2012

jedną kropkę miałeś usunąć... kropka to łączenie znaków...

funkcja mail wygląda tak:

mail(do_kogo_wyslac, temat, tresc, naglowki);

czyli w twoim przypadku mail($receiver, $temat, $body, $headers) i spróbuj tak


RE: Formularz kontaktowy pytanie z PHP - Matissen - 10-01-2012

Super! Dzięki wielkie działa! Polskie znaki dają radoścBig Grin A jakbyś jeszcze mógł mi powiedzieć jak mam zrobić, żeby miec imie, temat, treść i adres z maila w nowym wierszu? bo mam w jednym i jest nieczytelne strasznie? Podejrzewam, że <br /> tylko nie wiem gdzie.




RE: Formularz kontaktowy pytanie z PHP - hieroshima - 10-01-2012

$name = $_POST['name'] . '<br />'; z każdą zmienną tak