Skocz do zawartości
sh4kr

Prosta rzecz na stronie w PHP.

Polecane posty

Cześć!

 

Potrzebuję pomocy. Poszukuję skryptu, który pozwoli wykonać pewną rzecz. Mianowicie mam na stronie pole "Podaj e-mail" po podaniu uzupełnieniu tego pola i kliknięciu "Wyślij" chciałbym, aby na ten e-mail została wysłana wiadomość (stała - czyli taka sama dla każdego kto podaje email).

 

Czy ktoś powie mi jak to zrobić? Albo czego szukać w Google?

 

Dzięki za pomoc! :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość l3szcz


<?php
if(!isset($_POST['submit'])) // sprawdzamy czy formularz nie wysłany
{
?>
<form method="POST" action="">
<label for="email">Podaj adres E-Mail:
<input type="email" name="email" placeholder="jankowalski@mail.com">
<input type="submit" name="submit" value="Wyślij">
</form>
<?php
} else if(isset($_POST['submit'])) { // jeśli wysłano przechodzimy dalej
$email = $_POST['email'];
if(empty($email) {
echo "Podaj adres E-mail!"; // brak adresu e-mail
}
$check = filter_var($email, FILTER_VALIDATE_EMAIL);
if($check) { // email poprawny
mail($email, "Tytuł wiadomosci", "wiadomosc"); // nie zapomnij o dodaniu headerów, te znajdziesz w linku Filipsia
} else {
echo "Adres E-mail niepoprawny!";
}
}
?>

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
<?php
if(!isset($_POST['submit'])) // sprawdzamy czy formularz nie wysłany
{
?>
<form method="POST" action="">
<label for="email">Podaj adres E-Mail:
<input type="email" name="email" placeholder="jankowalski@mail.com">
<input type="submit" name="submit" value="Wyślij">
</form>
<?php
} else if(isset($_POST['submit'])) { // jeśli wysłano przechodzimy dalej
$email = $_POST['email'];
if(empty($email) {
echo "Podaj adres E-mail!"; // brak adresu e-mail
} 
$check = filter_var($email, FILTER_VALIDATE_EMAIL);
if($check) { // email poprawny
 mail($email, "Tytuł wiadomosci", "wiadomosc"); // nie zapomnij o dodaniu headerów, te znajdziesz w linku Filipsia
} else {
 echo "Adres E-mail niepoprawny!";
} 
}
?>

Dzięki za kod. :)

 

Wrzuciłem to do pliku index.php i wyrzuca mi błąd w linii if(empty($email) {

 

O co chodzi z tymi headerami? Sorry, troche jestem zielony w te kolcki. :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość l3szcz

Mój bład. Dodaj jeszcze jedno ) na końcu

czyli: if(empty($email))

Headery są ważne jeśli chcesz wysyłać wiadomości z polskimi znakami czy też ostylowane w html.

Nie chce mi się teraz szukać ale masz tak mniej więcej opisane w linku Filipsia. English wymagany :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Teraz jest ok, nie wyrzuca błędu. Jednak po wpisaniu maila, nie dostaje nic na maila. :( Zastanawiam się czy nie trzeba tam gdzieś jeszcze dopisać z jakiego maila to ma być przesłane.

 

EDIT: Bo wychodzi jakbym sobie sam maila wysłał, ze swojego maila tylko przez formularz na zewnętrznej stronie.

Edytowano przez sh4kr (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Filip Nowacki

Dodane nagłówki na szybko

<?php
if(!isset($_POST['submit'])) // sprawdzamy czy formularz nie wysłany
{
?>
<form method="POST" action="">
<label for="email">Podaj adres E-Mail:
<input type="email" name="email" placeholder="jankowalski@mail.com">
<input type="submit" name="submit" value="Wyślij">
</form>
<?php
} else if(isset($_POST['submit'])) { // jeśli wysłano przechodzimy dalej
$email = $_POST['email'];
if(empty($email)) {
echo "Podaj adres E-mail!"; // brak adresu e-mail
} 
$check = filter_var($email, FILTER_VALIDATE_EMAIL);
if($check) { // email poprawny
$headers = 'From: no-reply@mydomain.com' . "\r\n" .
    'Reply-To: no-reply@mydomain.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($email, "Tytuł wiadomosci", "wiadomosc", $headers);
} else {
 echo "Adres E-mail niepoprawny!";
} 
}
?>
Edytowano przez Filipsiu (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Rafiki

tytuł wiadomości warto kodować w base64 aby wszędzie wyświetlał się prawidłowo (tj. bez krzaków)

$temat= "=?UTF-8?B?".base64_encode("Polskie znaki ęóąśłżźćń")."?=";

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×