Skocz do zawartości
t9omek

formularz html/css/php nie wysyła wiadomości email

Polecane posty

Witam, chciałbym wrzucić na stronę formularz kontaktowy dla klientów. Wypełniam pola i klikam wyślij, wysyła mnie do "potwierdzenie.php" więc poprawnie, ale kiedy sprawdzam email niema tam żadnych wiadomości

<div id="formularz">
    <input name="name" placeholder="Imię i Nazwisko">
            
    <input name="phone" type="phone" placeholder="Telefon">
	
    <input name="email" type="email" placeholder="E-mail">
	
	 <input name="companyname" type="companyname" placeholder="Nazwa Firmy">
   <label>

		
<select>
    <option value="Wojewodztwo">Województwo</option>
    <option value="mazowieckie">mazowieckie</option>
    <option value="dolnoslaskie">dolnośląskie</option>
	  <option value="kujawsko-pomorskie">kujawsko-pomorskie</option>
    <option value="lubelskie">lubelskie</option>
	  <option value="lubuskie">lubuskie</option>
    <option value="lodzkie">łódzkie</option>
	  <option value="malopolskie">małopolskie</option>
    <option value="opolskie">opolskie</option>
	  <option value="podkarpackie">podkarpackie</option>
    <option value="podlaskie">podlaskie</option>
	  <option value="pomorskie">pomorskie</option>
    <option value="slaskie">śląskie</option>
		  <option value="swietokrzyskie">świętokrzyskie</option>
    <option value="warminsko-mazurskie">warmińsko-mazurskie</option>
		  <option value="wielkopolskie">wielkopolskie</option>
    <option value="zachodniopomorskie">zachodniopomorskie</option>
</select></label>

            
    <input id="submit" name="submit" type="submit" value="Wyślij"></div>
	<div id="cb">
	
        <label><input type="checkbox">  Mam 18 lat i akceptuję warunki promocji.</label></br> </br>
		
</form></div></div>
<?php

// Tworzymy zmienną dla imienia i nazwiska
$name = $_POST['name'];

// Tworzymy zmienną dla adresu email
$email = $_POST['email'];

$companyname = $_POST['companyname'];

// Podajesz adres email z którego ma być wysłana wiadomość
$odkogo = "biuro@1.pl";

// Podajesz adres email na który chcesz otrzymać wiadomość
$dokogo = "tk@g.com";

// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz kontaktowy z 3l";

// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Email: " . $email . "\n";
$wiadomosc .= "Wiadomość: " . $message . "\n";

// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>
Edytowano przez t9omek (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chciałbym też aby skrypt wysyłam wiadomość na różne adresy email w zależności od wybranego województwa, wiem że powinienem użyć if else ale niewiem jak miało by to dokładne wyglądać. Podpowie ktoś coś ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chciałbym też aby skrypt wysyłam wiadomość na różne adresy email w zależności od wybranego województwa, wiem że powinienem użyć if else ale niewiem jak miało by to dokładne wyglądać. Podpowie ktoś coś ?

 

Możesz użyć tablicy np. array('mazowieckie' => 'mazowieckie@domena.pl');

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

dalej nie rozumiem czy może mi to ktoś jeszcze przetłumaczyć. Czy ma to wyglądać tak ?

if array('mazowieckie' =>  $dokogo = 'mazowieckie@domena.pl');
if array('wielkopolskie' => $dokogo =  'wielkopolskie@domena.pl');
else  echo "nie wybrano woje";

Co o tym sądzicie ?



if ( SELECTED value="wielkopolskie")
{	
$dokogo = wielkopolskie@as.pl;
}
else if ( SELECTED value="pomorskie" )
{
	$dokogo = pomorskiee@as.pl;
}	

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wywala błąd "Parse error: syntax error, unexpected T_STRING in /home/t9omek/domains/t9omek.gbzl.pl/public_html/kontakt.php on line 16"

<?php

// Tworzymy zmienną dla imienia i nazwiska
$name = $_POST['name'];

// Tworzymy zmienną dla adresu email
$email = $_POST['email'];

$companyname = $_POST['companyname'];

// Podajesz adres email z którego ma być wysłana wiadomość
$odkogo = "biuro@33zl.pl";

// Podajesz adres email na który chcesz otrzymać wiadomość

if ( SELECTED value="mazowieckie")
{	
$dokogo = wielkopolskie@as.pl;
}
else if ( SELECTED value="dolnoslaskie" )
{
	$dokogo = pomorskiee@as.pl;
}	

else if ( SELECTED value="kujawsko-pomorskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="lubelskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="lubuskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="lodzkie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="malopolskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="opolskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="podkarpackie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="podlaskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="pomorskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="slaskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="swietokrzyskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="warminsko-mazurskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="wielkopolskie" )
{
	$dokogo = pomorskiee@as.pl;
}	
else if ( SELECTED value="zachodniopomorskie" )
{
	$dokogo = pomorskiee@as.pl;
}	


// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz kontaktowy z 33zl.pl"l

// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Email: " . $email . "\n";


// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

dalej nie rozumiem czy może mi to ktoś jeszcze przetłumaczyć. Czy ma to wyglądać tak ?

if array('mazowieckie' =>  $dokogo = 'mazowieckie@domena.pl');
if array('wielkopolskie' => $dokogo =  'wielkopolskie@domena.pl');
else  echo "nie wybrano woje";

 

Nie tak..

$adresy = array('mazowieckie' => 'mazowieckie@domena.p1', 'wielkopolskie' => 'wielkopolskie@domena.pl', 'wielkopolskie' => 'wielkopolskie@domena.pl');
	
	if(isset($adresy($_POST['wojewodztwo'])))
		$dokogo = $adresy($_POST['wojewodztwo']);

Uzupełnij tylko do końca tablicę według tego schematu oraz nazwij select z województwami "wojewodztwo" bądź inaczej jednak wtedy zmień powyższy kod.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dużymi literami oznaczamy stałe w php, ciąg znaków bez dolara są brane jaki stałe. Zmienne oznaczamy z dolarem. To się nie wykona, w php porównanie jest == lub ===. nie wiem skąd wziąłeś selected i value

  1. if ( SELECTED value="mazowieckie")

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

 

nie wiem skąd wziąłeś selected i value

Z jednego z poradników z internetu :)

 

Nazwanie selekt wojewodztwo miało wyglądać tak ?

<select name="wojewodztwo">
    <option value="Wojewodztwo">Województwo</option>
    <option value="mazowieckie">mazowieckie</option>
    <option value="dolnoslaskie">dolnośląskie</option>
	  <option value="kujawsko-pomorskie">kujawsko-pomorskie</option>
    <option value="lubelskie">lubelskie</option>
	  <option value="lubuskie">lubuskie</option>
    <option value="lodzkie">łódzkie</option>
	  <option value="malopolskie">małopolskie</option>
    <option value="opolskie">opolskie</option>
	  <option value="podkarpackie">podkarpackie</option>
    <option value="podlaskie">podlaskie</option>
	  <option value="pomorskie">pomorskie</option>
    <option value="slaskie">śląskie</option>
		  <option value="swietokrzyskie">świętokrzyskie</option>
    <option value="warminsko-mazurskie">warmińsko-mazurskie</option>
		  <option value="wielkopolskie">wielkopolskie</option>
    <option value="zachodniopomorskie">zachodniopomorskie</option>
</select>
            

bo wywala błąd

" Fatal error: Can't use function return value in write context in /home/t9omek/domains/t9omek.gbzl.pl/public_html/kontakt.php on line 17"

17 linijka to: if(isset($adresy($_POST['wojewodztwo'])))

<?php

// Tworzymy zmienną dla imienia i nazwiska
$name = $_POST['name'];

// Tworzymy zmienną dla adresu email
$email = $_POST['email'];

$companyname = $_POST['companyname'];

// Podajesz adres email z którego ma być wysłana wiadomość
$odkogo = "biuro@3.pl";

// Podajesz adres email na który chcesz otrzymać wiadomość
$adresy = array('mazowieckie' => 'mazowieckie@domena.p1', 'dolnoslaskie' => 'd@domena.pl', 'kujawsko-pomorskie' => 'kp@domena.pl');
	
	if(isset($adresy($_POST['wojewodztwo'])))
		$dokogo = $adresy($_POST['wojewodztwo']);

// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz kontaktowy z 33.pl"l

// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Email: " . $email . "\n";


// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>
Edytowano przez t9omek (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

to wiem to dwa równe pliki

php

<?php

// Tworzymy zmienną dla imienia i nazwiska
$name = $_POST['name'];

// Tworzymy zmienną dla adresu email
$email = $_POST['email'];

$companyname = $_POST['companyname'];

// Podajesz adres email z którego ma być wysłana wiadomość
$odkogo = "biuro@wp.pl";

// Podajesz adres email na który chcesz otrzymać wiadomość
$adresy = array('mazowieckie' => 't9omek@gmail.com', 'dolnoslaskie' => 't9omek@gmail.com', 'kujawsko-pomorskie' => 't9omek@gmail.com');
	
	if(isset($adresy($_POST['wojewodztwo'])))
		$dokogo = $adresy($_POST['wojewodztwo']);

// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz kontaktowy z "l

// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Email: " . $email . "\n";


// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>

część html odpowiedzialna za formularz

 <div id="formularz">
    <input name="name" placeholder="Imię i Nazwisko">
            
    <input name="phone" type="phone" placeholder="Telefon">
	
    <input name="email" type="email" placeholder="E-mail">
	
	 <input name="companyname" type="companyname" placeholder="Nazwa Firmy">
   <label>
<select>
    <option value="Wielkosc_firmy">Wielkość Firmy</option>
    <option value="do_10_pracownikow">do 10 pracowników</option>
    <option value="od_11_do_50_pracowników">od 11 do 50 pracowników</option>
	 <option value="od_51_do_250_pracowników">od 51 do 250 pracowników</option>

</select>
		
<select name="wojewodztwo">
    <option value="Wojewodztwo">Województwo</option>
    <option value="mazowieckie">mazowieckie</option>
    <option value="dolnoslaskie">dolnośląskie</option>
	  <option value="kujawsko-pomorskie">kujawsko-pomorskie</option>
    <option value="lubelskie">lubelskie</option>
	  <option value="lubuskie">lubuskie</option>
    <option value="lodzkie">łódzkie</option>
	  <option value="malopolskie">małopolskie</option>
    <option value="opolskie">opolskie</option>
	  <option value="podkarpackie">podkarpackie</option>
    <option value="podlaskie">podlaskie</option>
	  <option value="pomorskie">pomorskie</option>
    <option value="slaskie">śląskie</option>
		  <option value="swietokrzyskie">świętokrzyskie</option>
    <option value="warminsko-mazurskie">warmińsko-mazurskie</option>
		  <option value="wielkopolskie">wielkopolskie</option>
    <option value="zachodniopomorskie">zachodniopomorskie</option>
</select></label>

            
    <input id="submit" name="submit" type="submit" value="Wyślij"></div>
	<div id="cb">
	
        <label><input type="checkbox">  Mam 18 lat i akceptuję warunki promocji.</label></br> </br>
		
		  
</form></div></div>
		
  </div>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

MicroVPS.pl popełnił błąd, zapewne z pośpiechu, przez nieuwagę.

A Ty nie znając dobrze składni PHP go powieliłeś.

 

Nawiasy kwadratowe, nie okrągłe. To ta różnica tablica / funkcja, o której mówi Viperoo.

    if(isset($adresy($_POST['wojewodztwo'])))
        $dokogo = $adresy($_POST['wojewodztwo']);

==>

    if(isset($adresy[$_POST['wojewodztwo']]))
        $dokogo = $adresy[$_POST['wojewodztwo']];

Dodałbym jeszcze jakiś domyślny adres na wypadek, gdyby nie istniał adres dla określonego województwa lub klient podał inną, nieprzewidzianą wartość w tym polu.

 

 

    if(isset($adresy[$_POST['wojewodztwo']]))
        $dokogo = $adresy[$_POST['wojewodztwo']];
    else
        $dokogo = 'domyślny.adres.na.nieprzewidziane.przypadki@example.com';
Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

nie wywala już żadnego błędu z php, ale nie wysyła email i wyświetla zawartość "error,html"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

kiedy źle wpisze adres email wyskakuje mi bardzo ładne okienko a2ea9d3eb2e72.png

jak mógł bym dodać takie okna do innych pól "np nie zaznaczono zgody (do checkbox), lub numer powinien się składać z 9 znaków)


te jest jakby automatyczne bo sam go nie dodałem

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

niestety nie współpracuje on z rozwijaną listą, czy da się coś zrobić aby wybranie któregoś z elementów listy było konieczne ( jeśli użytkownik nie wybierze wyskoczy pole "wybierz jakąś opcje ..."

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz to napisać w javascript bądź zrobić warunek w php.

if(!isset($_POST['18lat']) OR empty($_POST['18lat']))
	$error = 'Proszę zaakceptować warunek wiekowy...';

	if(!isset($error))
	{
		// dalsza część kodu, który ma się wykonywać jeśli wszystkie warunki zostaną spełnione.
	}

Do checkboxa dodaj

name="18lat" value="true"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak na marginesie dodałbym, że nie "javascript bądź PHP", a "javascript i PHP". Podobnie z tym atrybutem "required" w formularzu HTML, też uzupełniłbym to dodatkowo sprawdzeniem po stronie serwera w PHP: po pierwsze, nie każda przeglądarka obsługuje ten atrybut, a po drugie nigdy nie można ufać klientowi, że wyśle w formularzu to co zakładamy, że wysłać powinien.

 

 

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ę


×