Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego formularz nie wysyła maila?
Forum PHP.pl > Forum > PHP
rafales
Mam tego typu skrypt do wysyłania zapytania ze strony www
Kod php w pliku np kontakt.php:
  1. <?php
  2. function passcheck($pass) {
  3. $nr = floor(time() / 3600);
  4. for($i = 0; $i < strlen($pass); $i++)
  5. if($i % 2 == 0) $a .= $pass[$i]; else $b .= $pass[$i];
  6. $a = base_convert(strrev($a), 36, 10);
  7. $b = base_convert($b, 36, 10);
  8. if($a + $b <= $nr && $a + $b <= $nr - 2) return true;
  9. return false;
  10. }
  11.  
  12. if(!passcheck($pass)) die("Hasło nie poprawne !!!");
  13.  
  14. if(!empty($_POST["mail"])) // jeżeli pole mail nie jest puste
  15. {
  16.  
  17. echo "wiadomość została wysłana"; // wyświetl komunikat, że mail został wysłany (zawsze jest wysyłany więc nie ma innej opcji ;] )
  18. $headers = 'From: biuro@domena.pl'; // z tego maila beda wysyłane wiadomości
  19. $email = 'biuro@domena.pl'; // zmienna w której przekazywany jest mail DO którego ma przyjść wiadomość
  20. $subject = $_POST['temat']; // temat wiadomości
  21. $message = "wiadomość od: ".$_POST['mail']."
  22.  
  23. ".$_POST['tresc']; // tu jest cała treść wiadomości
  24. //
  25.  
  26. mail($email, $subject, $message, $headers); // funkcja wysyłająca wiadomość
  27.  
  28. }
  29. ?>
  30. <form action="kontakt.php" method="post">
  31. /*odpowiednie inputy*/
  32. <img src="image.php"><br/>
  33. Wpisz hasło z obrazka aby wysłać wiadomość!<br/>
  34. <input type="text" name="pass" size="8">
  35. <input type="submit" value="wyślij"/>
  36.  
  37. </form>


i plik image.php
  1. <?
  2. function passgen() {
  3. $nr = floor(time() / 3600);
  4. srand(array_sum(explode(" ", microtime())) * 100000);
  5. $a = rand(0, min(getrandmax(), $nr));
  6. $b = $nr - $a;
  7. $a = base_convert($a, 10, 36);
  8. $b = base_convert($b, 10, 36);
  9. $a = strrev(str_pad($a, max(strlen($a), strlen($b)), 0, STR_PAD_LEFT));
  10. $b = str_pad($b, max(strlen($a), strlen($b)), 0, STR_PAD_LEFT);
  11. for($i = 0; $i < strlen($a); $i++) $pass .= $a[$i].$b[$i];
  12. return $pass;
  13. }
  14. header("Content-type: image/jpeg");
  15. $img = imagecreate(110, 30);
  16. $background = imagecolorallocate($img, 206, 207, 099);
  17. $textcolor = imagecolorallocate($img, 0, 0, 0);
  18. imagestring($img, 5, 10, 7, passgen(), $textcolor);
  19. imagejpeg($img);
  20. imagedestroy($img);
  21. ?>


Pytanie brzmi: gdzie leży problem, ponieważ nie wysyła mi maili na skrzynkę...domena wpisana dobrze, funkcja mail włączona na serwerze, serwer smtp też dostępny...
yevaud
a jak brzmi komunikat bledu ? smile.gif
czy funkcja mail zwraca wartosc true ? jesli tak, to problem lezy po stronie smtp
rafales
Nie zwraca mi żadnego błędu.
Poprostu nie otrzymuję maila na skrzynkę, a powinienem :-)

a jak sprawdzić czy zwraca true? Jestem laikiem i nie bardzo wiem jak to sprawdzić.
Babcia@Stefa
Spróbuj użyć do tego var_dump.
rafales
Hmmm, a nie możesz troszkę jaśniej? Jak już pisałem, raczkuję w tym wszystkim.
modern-web
sprawdz czy serwer obsluguje funkcje mail(). niektore hostingi blokuja te opcje ze wzgledu na liczny spam wysylany przez boty odwiedzajace witryne. najlepiej rzuc okiem na php.ini. wiecej info znajdziesz w google, nie chce mi sie tego opisywac. tak czy inaczej stworz nowy plik .php i wyswietl w nim konfiguracje parsera php.
rafales
Nie wiem czy czytałeś pierwszy mój post, ale tam wyraźnie napisałem, że funkcja mail działa na moim serwerze.

dla potwierdzenia treść maila z supportu
Kod
Witam serdecznie,

Uprzejmie informuję, że funkcja ta jest uruchomiona i działa poprawnie.


Sprawa rozwiązana. Tzn już wysyła. Błąd tkwił w tym, że zmieniłem name inputa email na mail :-)

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.