• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wysyłanie maila PHP

VPS Starter Arubacloud
0 głosów
490 wizyt
pytanie zadane 28 lutego 2019 w PHP przez zerakot Obywatel (1,870 p.)

Witajcie,

Wie ktoś dlaczego mój kod wysyłający maila nie wysyła maila?

HTML:

<div id="mail">
			<form action="" method="post">
					<input type="text" name="do" value="iktorn2006@wp.pl" disabled />
					<input type="text" name="od" placeholder="Twój E-mail" />
					<input type="text" name="wiadomosc" placeholder="Treść zamówienia*"/>
					<input type="submit" name="wyslijmaila" value="WYŚLIJ" action="mail.php"/>
					<div id="wyjasnienie" onmouseover="pokazzasady()" onmouseout="ukryjzasady()">*</div>
			</form>
			</div>

PHP:

<?php
if(isset($_POST['do']) & (isset($_POST['od']) & (isset($_POST['wiadomosc']))
{
	$do = $_POST['do'];
	$od = $_POST['od'];
	$wiadomosc = $_POST['wiadomosc'];
	mail($do, $od, $wiadomosc);
}
	

?>

 

1 odpowiedź

0 głosów
odpowiedź 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
dlaczego action dla forma jest puste, a dałeś action dla inputa? Jeśli chciałbyś nadpisać action z forma to musiałbyś użyć atrybutu formaction (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/submit#formaction) ale to nie jest zbyt dobre rozwiązanie i jeszcze nie spotkałem się z koniecznością jego użycia...
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)

O, nie zauważyłem. Teraz po naciśnięciu enter wyskakuje:

Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\sklep\mail.php on line 4

komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
a operator AND to nie & tylko && :)

http://php.net/manual/en/language.operators.logical.php

Ty użyłeś operatora binarnego.
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
No właśnie chciałem użyć &&, ale na internecie widziałem &. Ale i tak pokazuje błąd.
komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
to co dałeś wyżej to cały plik mail.php ?
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
Tak
komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
jestem na mobile więc ciężko mi czytać te bloczki kodu, ale wydaje mi się, że brakuje Ci jednego nawiasu ")" na końcu warunków IF.
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
Nie, nie brakuje żadnego.
komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)

ehh no weź popatrz... :) zmuszasz mnie do włączenia lapka :)

spróbuj tak:

if(isset($_POST['do']) && isset($_POST['od']) && isset($_POST['wiadomosc']))
{
    $do = $_POST['do'];
    $od = $_POST['od'];
    $wiadomosc = $_POST['wiadomosc'];
    mail($do, $od, $wiadomosc);
}

 

komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
Aaaaa sorki, że musiałeś się "fatygować" ;). Działa, dziękuję za pomoc.
komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
a tak swoją drogą to polecam korzystać z jakiegoś lepszego edytora, np. VSC, NetBeans, Intelii itp. to od razu by Ci wykryło takie błędy :)
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)

@Tomek Sochacki,
No jeden problem z głowy, ale wygląda na to, że jest jeszcze drugi. crying

komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
Może coś w funkcji mail źle wpisałem?
komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
ale jaki problem, coś pokazuje się z jakiś logach czy coś? Jakie błędy rzuca? Patrzyłeś czy nie poszło do spamu na skrzynce itp.?
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
W logach wszystko dobrze, a w spamie nima
komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
http://php.net/manual/en/function.mail.php

z tego co widzę to funkcja mail zwraca boolean, więc przypisz sobie to do jakieś zmiennej i wyśli zwrotnie na clienta np. vadumpem czy echo, zobaczymy bo może metoda zwraca false? Jeśli tak to warto by zdebugować co sieci w tych zmiennych.
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)

Zmieniłem kod na tako o:

<?php
if(isset($_POST['od']) && isset($_POST['wiadomosc']))
{
    $do = "email@wp.pl";
    $od = $_POST['od'];
    $wiadomosc = $_POST['wiadomosc'];
    $menu = mail($do, $od, $wiadomosc);
	echo $menu;
}
	//header("location: przegladaj.php")
	

?>

I pokazuje mi:


Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\sklep\mail.php on line 7

komentarz 28 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
no przecież masz jasno napisane - próbujesz wysłać coś z localhosta a pewnie nie masz postawionego serverka poczty. Ja już parę lat nie pisałem w PHP i nie pomogę Ci w zakresie stawiania serverka, nie wiem nawet co tam obecnie jest zalecane itp. Ale dam sobie rękę uciąć że gdybyś po prostu ten błąd dał do googla to znajdziesz coś np. na SO... próbowałeś chociaż :) ?
komentarz 28 lutego 2019 przez zerakot Obywatel (1,870 p.)
Nie, ale spróbuję.

Podobne pytania

0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 20 czerwca 2018 w PHP przez SoDoIt Obywatel (1,190 p.)
0 głosów
1 odpowiedź 263 wizyt
pytanie zadane 25 marca 2021 w C# przez disaster Bywalec (2,120 p.)
0 głosów
0 odpowiedzi 382 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...