Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wysyłanie emaili php, phpmailer
Maciek1705
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


witam serdecznie mam pytanie odnośnie skryptu takiego:
  1. <?php
  2. session_name("sendmail");
  3.  
  4. require "PHPMailer_v5.1/class.phpmailer.php"; //dołączenie klasy
  5. $emailAddress = 'maciej@pp.pl'; //adres do kogo wysłać
  6. $msg='Name: '.$_POST['name'].'<br />Email: '.$_POST['email'].'<br />IP:'.$_SERVER['REMOTE_ADDR'].'<br /><br />Message:<br /><br />'.nl2br($_POST['message']).'';
  7.  
  8. $mail = new PHPMailer();
  9. $mail->IsMail();
  10. $mail->AddReplyTo($_POST['email'], $_POST['name']); //dane z formularza email i imie nadawcy
  11. $mail->AddAddress($emailAddress);
  12. $mail->SetFrom($_POST['email'], $_POST['name']);
  13. $mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form.";
  14. $mail->MsgHTML($msg);
  15. $mail->Send();
  16.  
  17. if(jaki warunek?questionmark.gif){
  18. $_SESSION['sendit']=1;
  19. }
  20. else{
  21. $_SESSION['sendit']=0;
  22. }


chciałem się zapytać jaki warunek napisać że wiadomość została wysłana. To znaczy używam klasy phpmailer chce wysłać za jej pomocą wiadomość ze strony (bez jakiegoś logowania na o2 itp) normalne wysyłanie. Chciałem zrobić taki haczyk że jeżeli wiadomość zostanie wysłana to zostanie stworzona zmienna sesyjna dzięki której jeśli wartość będzie równa 1 to formularz kontaktowy nie bedzie widoczny, takie zabezpieczenie żeby nie wysyłać po 10 wiadomości. Aha i jeszcze takie pytanie czy skrypt będzie działał na lokalnym serwerze (podejrzewam że nie ale warto zapytać)? Co sądzicie o takim zabezpieczeniu? Co byście zmienili?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Sprawdzenie, czy został wyslany:
  1. if($mail->Send())
  2. {
  3. echo 'E-mail został wysłany';
  4. }
  5. else
  6. {
  7. echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo;
  8. }

A tutaj wysyłanie maila na localhoście:
http://www.phpeasystep.com/phptu/23.html
http://www.programmingfacts.com/send-email...hostxampp-wamp/
http://www.designend.net/blog-webmastera,w...t-xampp-mercury

Ten post edytował bastard13 14.09.2010, 21:04:07


--------------------
Go to the top of the page
+Quote Post
Maciek1705
post
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


a co myślisz o zabezpieczeniu przed kilkukrotnym wysyłanie wiadomości na sesji może tak być będzie działać?
Go to the top of the page
+Quote Post
bastard13
post
Post #4





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Wydaje mi się, że niepotrzebne jest ukrywanie formularzu. Możesz po wysłaniu wiadomości utworzyć zmienną sesyjną z aktualną wartością time() i jeżeli użytkownik spróbuje wysłać wiadomość, to pozwól mu na to, ale np. po upływie 30 sekund, ponieważ czasami jest potrzeba wysłania większej ilości wiadomości, a opóźnienie to już jakieś zabezpieczenie przed botami, które nie powinno denerwować użytkownika (niewielu jest takich, którzy zdążą napisać kolejną wiadomość w ciągu 30 sekund:)


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 19:44