Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CSS][HTML][PHP]Wysłane maile nie trafiają do skrzynki
oyster
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


Witam,

Mam problem ze skryptem PHP, który ma za zadanie wysyłać maile. Gdy wypełnię formularz i klikam ?Wyślij? to maile nie dochodzą na moją skrzynkę. Kod PHP wygląda tak:

CODE
<?php

if(isset($_POST['url']) && $_POST['url'] == '' && $_POST['message'] != ''){


$youremail = 'przykladowyemail@poczta.pl';

$body = "Formularz kontaktowy:
Imię: $_POST[firstname]
Nazwisko: $_POST[lastname]
E-Mail: $_POST[email]
Wiadomość: $_POST[message]";


if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
$headers = "From: $_POST[email]";
} else {
$headers = "From: $youremail";
}

mail($youremail, 'Kontakt', $body, $headers );

}


header('http://www.mojastrona.pl/');
exit('http://www.mojastrona.pl/');

?>


Kod HTML wygląda tak:

CODE
<label for="fname">Imię</label>

<input type="text" name="firstname" placeholder="Twoje imię">

<label for="lname">Nazwisko</label>

<input type="text" name="lastname" placeholder="Twoje nazwisko">

<label for="lname">Email</label>

<input type="text" name="email" placeholder="Twój email">

<label for="message">Wpisz swoją wiadomość</label>

<textarea id="message" name="message" placeholder="Treść wiadomości..." style="height: 200px"></textarea>

<input type="submit" value="Wyślij">

<p class="antispam">Zostaw to pole puste - ochrona przed spamem

<br /><input name="url" /></p>


Kod CSS:

CODE
.antispam { display:none;}

input[type=text], select, textarea {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
margin-top: 6px;
margin-bottom: 16px;
resize: vertical
}

input[type=submit] {
background-color: grey;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
}

input[type=submit]:hover {
background-color: grey;
}

.contact {
border-radius: 5px;
background-color: #f4f4f4;
padding: 20px;
}


Oryginalny skrypt pochodzi z tego linka i mimo że robię wszystko zgodnie z instrukcją to nie działa - https://www.nfriedly.com/techblog/2009/11/h...thout-captchas/

W czym tkwi problem? Będę wdzięczny za pomoc (IMG:style_emoticons/default/smile.gif)

Ten post edytował oyster 12.02.2021, 21:58:43
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
dublinka
post
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Input name=url ma byc przed submit i zawierac typ pola
Go to the top of the page
+Quote Post
oyster
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


czy tak to ma wyglądać? bo kombinuję z różnymi wariantami i tak nie działa...

CODE
<div class="contact">

<form action="submit.php">

<label for="fname">Imię</label>

<input type="text" name="firstname" placeholder="Twoje imię">

<label for="lname">Nazwisko</label>

<input type="text" name="lastname" placeholder="Twoje nazwisko">

<label for="lname">Email</label>

<input type="text" name="email" placeholder="Twój email">

<label for="message">Wpisz swoją wiadomość</label>

<textarea id="message" name="message" placeholder="Treść wiadomości..." style="height: 200px"></textarea>

<p class="antispam">Zostaw to pole puste - ochrona przed spamem

<br /><input name="url" type="text"></p>

<input type="submit" value="Wyślij">

</form>

</div>
Go to the top of the page
+Quote Post
dublinka
post
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Wysylasz to z locala ? Wlączyles raportowanie bledow....?
Formularz ma miec metode słania danych.
Po kolejne.
Zmienna $body ktora zawiera tablice post. Kazda z nich ma miec znaki ' i ' pomiedzy nazwami. Czyli $_POST['name'] a nie $_POST[name]

Ten post edytował dublinka 12.02.2021, 23:36:52
Go to the top of the page
+Quote Post
oyster
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


ok, tak to teraz wygląda - HTML:

CODE
<form action="submit.php" name="Kontakt" method="post">

<label for="fname">Imię</label>

<input type="text" name="firstname" placeholder="Twoje imię">

<label for="lname">Nazwisko</label>

<input type="text" name="lastname" placeholder="Twoje nazwisko">

<label for="lname">Email</label>

<input type="text" name="email" placeholder="Twój email">

<label for="message">Wpisz swoją wiadomość</label>

<textarea id="message" name="message" placeholder="Treść wiadomości..." style="height: 200px"></textarea>

<p class="antispam">Ochrona przed spamem <input type="text" name="url" /></p>

<input type="submit" value="Wyślij">

</form>


PHP:

CODE
<?php

if(isset($_POST['url']) && $_POST['url'] == '' && $_POST['message'] != ''){


$youremail = 'test@test.pl';


$body = "
Imię: $_POST['firstname']
Nazwisko: $_POST['lastname']
E-Mail: $_POST['email']
Wiadomość: $_POST['message']";


if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
$headers = "From: $_POST['email']";
} else {
$headers = "From: $youremail";
}


mail($youremail, 'Kontakt', $body, $headers );

}


header('Przenosiny na: https://test.pl');
exit('Przenosiny na https://test.pl');

?>


po wypełnieniu formularza i wysłaniu serwer wyrzuca błąd "HTTP ERROR 500 - Serwer nie może teraz obsłużyć tego żądania."

czy to wina braku kodu PHP tam gdzie jest HTML? nie ogarniam tego (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #6





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


PHP ma problem z pokazywaniem zmiennej tablicy

tak się nie robi bo to nie działa

  1. $headers = "From: $_POST['email']";


przykładowe 2 sposoby jak możesz to zrobić, dotyczy to całego kodu nie tylko tej linijki:

  1. $headers = "From: {$_POST['email']}";


  1. $headers = 'From: '. $_POST['email'];


Ten post edytował LowiczakPL 13.02.2021, 08:08:59
Go to the top of the page
+Quote Post
dublinka
post
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(oyster @ 13.02.2021, 01:54:12 ) *
po wypełnieniu formularza i wysłaniu serwer wyrzuca błąd "HTTP ERROR 500 - Serwer nie może teraz obsłużyć tego żądania."

czy to wina braku kodu PHP tam gdzie jest HTML? nie ogarniam tego (IMG:style_emoticons/default/smile.gif)

Na samej gorze dodaj linijke

error_reporting(E_ALL);

Zbyt ogolnie napisalem o tych tablicach. Tak jak to napisal juz kolega wyzej albo tablice obejmiesz "brack-etami" albo nalezy uzyc kropki jako lacznika stringów.

  1. $body = "
  2. Imię: " . $_POST['firstname'] . "
  3. Nazwisko: ". $_POST['lastname'] . "
  4. E-Mail: " . $_POST['email'] . "
  5. Wiadomość: " . $_POST['message']";
  6.  


Ten post edytował dublinka 13.02.2021, 09:34:58
Go to the top of the page
+Quote Post
oyster
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


dobra, teraz mam tak i dalej jest ten sam błąd:

CODE
<?php

error_reporting(E_ALL);

if(isset($_POST['url'] && $_POST['url'] . " == '' && $_POST['message'] != ''){


$youremail = 'techno1991@o2.pl';


$body = "
Imię: " . $_POST['firstname'] . "
Nazwisko: " . $_POST['lastname'] . "
E-Mail: " . $_POST['email'] . "
Wiadomość: " . $_POST['message']";


if( $_POST ['email'] && !preg_match( "/[\r\n]/", $_POST['email'] ) {
$headers = 'From: ' . $_POST['email'];
} else {
$headers = 'From: $youremail";
}


mail($youremail, 'Kontakt', $body, $headers );

}


header('Przenosiny na: https://pogoda247.000webhostapp.com/wiedza.htm');
exit('Przenosiny na https://test.pl');

?>


czy w tych linijkach też mam coś zmienić?

CODE
if(isset($_POST['url'] && $_POST['url'] . " == '' && $_POST['message'] != ''){


CODE
if( $_POST ['email'] && !preg_match( "/[\r\n]/", $_POST['email'] ) {
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #9





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


Zobacz czy ten kod zadziała:

  1. <?php
  2.  
  3. if (!empty($_POST['firstname']) && !empty($_POST['lastname']) && !empty ($_POST['message'])) {
  4.  
  5. $yourEmail = 'techno1991@o2.pl';
  6. $from = !empty($_POST['email']) ? $_POST['email'] : $yourEmail;
  7.  
  8. $body = "
  9. Imię: {$_POST['firstname']}
  10. Nazwisko: {$_POST['lastname']}
  11. E-Mail: {$_POST['email']}
  12. Wiadomość: {$_POST['message']}
  13. ";
  14.  
  15. mail($yourEmail, 'Kontakt', $body, "From: {$from}");
  16. }
  17.  
  18. exit('Przenosiny na https://test.pl');


Ten post edytował LowiczakPL 13.02.2021, 17:33:38
Go to the top of the page
+Quote Post
oyster
post
Post #10





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


Cytat(LowiczakPL @ 13.02.2021, 17:30:09 ) *
Zobacz czy ten kod zadziała:

  1. <?php
  2.  
  3. if (!empty($_POST['firstname']) && empty($_POST['lastname']) && !empty ($_POST['message'])) {
  4.  
  5. $yourEmail = 'techno1991@o2.pl';
  6. $from = !empty($_POST['email']) ? $_POST['email'] ? $yourEmail;
  7.  
  8. $body = "
  9. Imię: {$_POST['firstname']}
  10. Nazwisko: {$_POST['lastname']}
  11. E-Mail: {$_POST['email']}
  12. Wiadomość: {$_POST['message']}
  13. ";
  14.  
  15. mail($yourEmail, 'Kontakt', $body, "From: {$from}");
  16. }
  17.  
  18. exit('Przenosiny na https://test.pl');


nie działa niestety - dalej wyrzuca komunikat o błędzie...
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #11





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


linia 6

to

  1. $from = !empty($_POST['email']) ? $_POST['email'] : $yourEmail;
Go to the top of the page
+Quote Post
oyster
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


też tak samo jest - HTTP ERROR 500... może poszukam jednak innego skryptu (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #13





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


może problem nie jest w skrypcie

podaj adres gdzie jest ten formularz?

czy formularz ma FORM i metodę typu POST?

https://www.w3schools.com/html/tryit.asp?fi...yhtml_form_text

https://www.w3schools.com/html/tryit.asp?fi...tml_form_submit

https://www.w3schools.com/tags/tryit.asp?fi...orm_method_post

Ten post edytował LowiczakPL 13.02.2021, 17:46:00
Go to the top of the page
+Quote Post
dublinka
post
Post #14





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(oyster @ 13.02.2021, 16:09:47 ) *
dobra, teraz mam tak i dalej jest ten sam błąd:

  1. <?php
  2.  
  3.  
  4. if(isset($_POST['url'] && $_POST['url'] . " == '' && $_POST['message'] != ''){]

W warunkach masz nie robic tego tylko w tej jednej zmiennej $body

1.Zadalem Ci pytanie czy slesz to z locala czy z serwera w necie.

2. Zawsze mozesz sprawdzic sama funkcje mail() czy dziala. Jesli dziala znaczy ze gdzies wczesniej jest blad dlatego miales wstawic linijke o raportowaniu bledow.
Sa jakies pehapeowe warrningi (IMG:style_emoticons/default/questionmark.gif)

3. Olej caly kod i wstaw mail() z argumentami i wywolaj plik.
Jesli to robisz na localu u soebie znaczy ze nie masz skonfigurowanego serwera. Jesli na necie znaczy ze gdzies masz blad

Wstaw sam mail() z argumentami w warunku.


  1. if(mail("adres@asdd.pl", "tytul", "tresc"))
  2. {
  3. echo "ok";
  4. }else{
  5. echo "blad";
  6. }

[/php]

Ten post edytował dublinka 13.02.2021, 18:23:09
Go to the top of the page
+Quote Post
oyster
post
Post #15





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


Cytat(LowiczakPL @ 13.02.2021, 17:41:34 ) *


formularz jest tutaj - http://pogoda247.000webhostapp.com/formularz.htm
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #16





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


nie dostałem 500, ale nie mam info że email został wysłany a

funkcja mail zwraca true lub false, więc dopisz coś takiego


  1.  
  2. $isSend = mail(.....
  3.  
  4. echo $isSend ? 'E-mail został wysłany' : 'E-mail nie wysłany coś poszło nie tak';
  5.  
  6.  


Ten post edytował LowiczakPL 13.02.2021, 18:55:17
Go to the top of the page
+Quote Post
dublinka
post
Post #17





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Masz blad serwera 500.

Header jest wogole w zlym miejscu. Ma byc w warunku tuz za mail() bo teraz byle co soe stanie to bedzie posylac cie na dana strone.
Sprawdz przyklad ktory Ci podalem zeby sprawdzic czy wogole mail wychodzi
Go to the top of the page
+Quote Post
oyster
post
Post #18





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


dobra, poddaję się (IMG:style_emoticons/default/smile.gif) jestem zielony jeśli chodzi o php i kompletnie tego nie ogarniam, także dzięki za pomoc, ale zlecę komuś napisanie tego i już (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dublinka
post
Post #19





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Wystarczy usunac wszystko z tego pliku i dac ten kod co podalem. Wtedy bedziesz wiedzial widzac czy pokazuje ok czy blad.
Go to the top of the page
+Quote Post
oyster
post
Post #20





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.10.2006

Ostrzeżenie: (0%)
-----


tu trzeba cały skrypt od nowa napisać - sprawdziłem tego gotowca od autora zmieniając w nim tylko email na swój i też nic (IMG:style_emoticons/default/smile.gif) szkoda tracić na to czas, także jeszcze raz dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 15:10