Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz wysyłki maila ze strony
carpov
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.01.2008

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


Jestem zielony w temacie PHP ...więc z góry przepraszm za lamerskei problemy ...ale liczę na pomoc.

W czym problem? otóż postanowiłem na stronce zrobić prosty formularz do wysyłania zapytań na maila (3 pola użytkownik, adres zwrotny i treść) Od providera dostałem gotowe rozwiązanie w postaci skryptu PHP omijającego problem zablokowanej funkcji mail(). Zaimplementowałem to na stronce i git.......... działa. Maile lądują tam gdzie trzeba tylko coś nie tak jest z przekierowaniem na stronki w przypadku powodzenia lub niepowodzenia.

Poniżej zamieszczam kod. Co tu neleży zmienić żeby po poprawnym wyslaniu maila przeszedł na zadaną stronke?

Proszę o pomoc

Kod
<?php

# tutaj nalezy podac odpowiednie parametry zmiennych:
$serwer_poczty_wychodzacej = 'smtp.domena.pl';
$nasza_skrzynka_email = 'mail@domena.pl';
$haslo_do_skrzynki = '123456';
$temat_wiadomosci = 'Formularz kontaktowy';
$nazwa_naszej_firmy = 'Firma;
$strona_bledu = 'blad.html';
$strona_wyslana = 'ok.html';



if($_POST['kto'] != '' && $_POST['mail'] != '' && $_POST['tresc'] != '')
{

require_once 'Mail.php';

$params['host'] = $serwer_poczty_wychodzacej;
$params['port'] = 25;
$params['auth'] = true;
$params['username'] = $nasza_skrzynka_email;
$params['password'] = $haslo_do_skrzynki;

$headers['Subject'] = $temat_wiadomosci;
$headers['From'] = $_POST['mail'];
$headers['To'] = $nazwa_naszej_firmy;
$headers['Content-type']='text/plain; charset=utf-8';


$body = $_POST['kto'].' napisał/a: '.$_POST['tresc'];

$recipients = $nasza_skrzynka_email;


$mail = Mail::factory('smtp', $params);
if (PEAR::isError($mail)) {

         print $mail->getMessage();
    
     } else {
    
         $error = $mail->send($recipients, $headers, $body);
        
              if (PEAR::isError($error)) {
          
                     $host  = $_SERVER['HTTP_HOST'];
                        header("Location: http://$host/$strona_bledu");
                        exit;

              
                   } else {
                    
                         $host  = $_SERVER['HTTP_HOST'];
                     header("Location: http://$host/$strona_wyslana");
                     exit;
                      
                           }
                      
                       }

}
else
{
         $host  = $_SERVER['HTTP_HOST'];
         header("Location: http://$host/$strona_bledu");
         exit;
}
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--carpov--
post
Post #2





Goście







Więc tak......stosując sie do Twoich zaleceń cornolio

kod wyglada tak:

  1. <?php
  2. error_reporting (E_ALL);
  3.  ini_set("display_errors","on");
  4.  
  5. # tutaj nalezy podac odpowiednie parametry zmiennych:
  6. $serwer_poczty_wychodzacej = 'smtp.qqqqq.pl';
  7. $nasza_skrzynka_email = 'biuro@pqqqqqq.pl';
  8. $haslo_do_skrzynki = '1234565';
  9. $temat_wiadomosci = '=== Formularz kontaktowy ===';
  10. $nazwa_naszej_firmy = 'Firma';
  11. $strona_bledu = 'fake.html';
  12. $strona_wyslana = 'ok.html';
  13.  
  14.  
  15.  
  16. if($_POST['kto'] != '' && $_POST['mail'] != '' && $_POST['tresc'] != '')
  17. {
  18.  
  19. require_once 'Mail.php';
  20.  
  21. $params['host'] = $serwer_poczty_wychodzacej;
  22. $params['port'] = 25;
  23. $params['auth'] = true;
  24. $params['username'] = $nasza_skrzynka_email;
  25. $params['password'] = $haslo_do_skrzynki;
  26.  
  27. $headers['Subject'] = $temat_wiadomosci;
  28. $headers['From'] = $_POST['mail'];
  29. $headers['To'] = $nazwa_naszej_firmy;
  30. $headers['Content-type']='text/plain; charset=utf-8';
  31.  
  32.  
  33. $body = $_POST['kto'].' napisał/a: '.$_POST['tresc'];
  34.  
  35. $recipients = $nasza_skrzynka_email;
  36.  
  37.  
  38. $mail = Mail::factory('smtp', $params);
  39. if (PEAR::isError($error)) {
  40.  
  41. die("blad mail nie wyslany");
  42.  $host = $_SERVER['HTTP_HOST'];
  43.  
  44. header("Location: http://$host/$strona_bledu");
  45.  
  46.  
  47.  } else {
  48.  
  49. header("Location: <a href=\"http://www.onet.pl/");&#092;" target=\"_blank\">http://www.onet.pl/");</a>
  50. die("mail wyslany");
  51.  
  52. }
  53.  
  54.  }
  55. ?>



i mamy odpowiedz

  1. Notice: Undefined variable: error in /virtual/pl/formularz.php on line 39
  2.  
  3. Warning: Cannot modify header information - headers already sent by (output started at /virtual/pl/formularz.php:1) in /virtual/pl/formularz.php on line 50
  4. mail wyslany


oczywiscie maila w skrzynce NIE WIDAĆ (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 19:19