Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]brak wiadomośći w otrzymanym e-mail
Forum PHP.pl > Forum > Przedszkole
red_car
Witam,
jestem blady w php i nie łapie owego języka. Mam problem z formularzem kontaktowym. Na początku nie przychodziły mi wiadomości w ogóle mimo, że robiłem wszystko zgodnie z instrukcją. Po którymś tam razie się udało, a teraz jak przychodzą to jest napisane tylko od kogo i tyle. Nie ma tego co najważniejsze czyli zapytania. Pół nocy szukałem rozwiązania i nic nie znalazłem. Analizowałem ten kod krok po kroku z innymi itd ale do niczego nie doszedłem. Tutaj kod:
Kod
<STYLE type="text/css">    
/* FORMS */
input[type=submit], input[type=text], textarea {
    background-image: -moz-linear-gradient(top,  rgba(255,255,255,0.2) 30%, rgba(251,251,251,0.2) 31%, rgba(0,0,0,0.1) 100%);
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(30%,rgba(255,255,255,0.2)), color-stop(31%,rgba(251,251,251,0.2)), color-stop(100%,rgba(0,0,0,0.1)));
    background-image: -webkit-linear-gradient(top,  rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
    background-image: -o-linear-gradient(top,  rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
    background-image: -ms-linear-gradient(top,  rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
    background-image: linear-gradient(top,  rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#33ffffff', endColorstr='#1a000000',GradientType=0 );
    
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    border-radius: 6px;
    border: 1px solid;
    box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset;
    
    font-size: 11px;
    font-weight: bold;
    text-shadow: 0 1px 0 rgba(0,0,0,0.5);
    text-decoration: none;
    
    position: relative;
    line-height: 16px;
    padding:0px 14px;
    margin-bottom:8px;
}

/* SUBMIT */
input[type=submit] {
    background-color: #FF8400;
    border-color: #F27D00;
    color:#FFF;
    height: 30px;
    cursor:pointer;
}

/* TEXT INPUT */
input[type=text] {
    background-color: #0ea4e4;
    border-color: #0b81b4;
    color:#FFF;
    height: 30px;
}

/* TEXTAREA */
textarea {
    background-color: #0ea4e4;
    border-color: #0b81b4;
    color:#FFF;
    min-width:290px;
    min-height:120px;
    padding-top:8px;
}
</STYLE>

<?php
if(empty($_POST['submit'])) {
?>
    <form action="" method="post">
    <input type="text" name="formName" value="Imie i nazwisko" onblur="if(value=='') value = 'Imie i nazwisko'" onfocus="if(value=='Imie i nazwisko') value = ''"/>
    <input type="text" name="formEmail" value="E-mail" onblur="if(value=='') value = 'E-mail'" onfocus="if(value=='E-mail') value = ''"/><br />
    <textarea name="formText" onblur="if(value=='') value = 'Treść'" onfocus="if(value=='Treść zapytania...') value = ''">Treść zapytania...</textarea><br />
    <input type="submit" name="submit" value="Wyolij formularz"/>
    </form>
<?php
} else {
    //twoje dane
    $email = 'mojemail@op.pl';
    
    //dane z formularza
    $formName = $_POST['formName'];
    $formEmail = $_POST['formEmail'];
    $formText = $_POST['formText'];
    
    if(!empty($formName) && !empty($formEmail) && !empty($formText)) {
        //--- pocz1tek funkcji weryfikuj1cej adres e-mail ---
        function checkMail($checkmail) {
          if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
            if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
                return true;
              }else{
                return false;
              }
          } else {
            return false;
          }
        }
        //--- koniec funkcji ---
        
        if(checkMail($formEmail)) {
          //dodatkowe informacje: ip i host użytkownika
          $ip = $_SERVER['REMOTE_ADDR'];
          $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
          $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https')
                        === FALSE ? 'http' : 'https';
            $host     = $_SERVER['HTTP_HOST'];
            $script   = $_SERVER['SCRIPT_NAME'];
            $params   = $_SERVER['QUERY_STRING'];
            
            $currentUrl = $protocol . '://' . $host . $script . '?' . $params;
        
          //tworzymy szkielet wiadomooci
          //treść wiadomości
          $mailText = "Treść wiadomooci:n$formTextnOd: $formName, $formEmail ($ip, $host)nLink: $currentUrl";
        
          //adres zwrotny
          $mailHeader = "From: $formName <$formEmail>";
        
          //funkcja odpowiedzialna za wysłanie e-maila
          @mail($email, '[Zapytanie]', $mailText, $mailHeader) or die('B31d: wiadomooa nie zosta3a wys3ana');
        
          //komunikat o poprawnym wys3aniu wiadomooci
          echo 'Wiadomość została wysłana';
        } else {
            echo 'Adres e-mail jest niepoprawny';
        }
    }
    else {
      //komunikat w przypadku nie powodzenia
      echo 'Wypełnij wszystkie pola formularza';
    }
}
?>


pobrałem znaleziony przez google, a nie sam napisałem facepalmxd.gif
nospor
nie: n$formTextn
a: $formText
lub: \n$formText\n

red_car
Aaaa... I wszystko jasne arrowheadsmiley.png
WIELKIE DZIĘKI!
______________________________________
Wiesz jeszcze może jak mogę zrobić żeby wiadomości na e-mail przychodziły mi z PL znakami (na stronie już poradziłem)?
nospor
Wypdałoby jeszcze ustawić kodowanie maila. Masz to opisane w manualu przy mail(), masz to na tym forum - wczoraj był identyczny problem z polskimi znakami
red_car
Znalazłem ten kod na forum, ale nie wiem gdzie go wkleić. Jak próbuje tam gdzie mi się wydaje że jest dobrze to nic się nie dzieje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.