Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]funkcja mail() i automatycznie rozsyłające się wiadomości?, problem z niekontrolowanym wysylaniami maili przez funkcje mail()
gosia21
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 11.01.2010

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


Witam,

Mam problem, mianowicie na stronie posiadam proste logowanie na haslo wyciagane z bazy danych szyfrowane md5 z definiowana sesja - jeśli nie podasz hasła to system przenosi na strone logowania. Po zalogowaniu jest system wysyłki maili, który po kliknięciu "Wyślij" z odpowiedniego rekordu tabeli wyświetlającej się na stronie wysyła zawartość jednej z komórek na maila który jest na następnej komorce tego rekordu. Wszystko wyciagane z bazy MySQL a wysyłane za pomocą funkcji mail().

Problem polega na tym, ze nikt oprocz mnie hasla nie zna ale co jakiś czas o najróżniejszych godzinach część maili zostaje wysłana na moje testowe adresy. Pytanie czy raczej robia to boty ktore tam wchodza (mimo jakiejs tam ochrony za pomoca hasla) czy tez jest to wina skryptu. Jestem raczej początkująca więc proszę o zrozumiala na poczatkujacych pomoc. Będę bardzo wdzieczna.

Go to the top of the page
+Quote Post
Wykrywacz
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Generalnie samo się nic nie robi. Pokarz jak to wygląda to może będziemy wstanie ci pomóc.
Go to the top of the page
+Quote Post
gosia21
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 11.01.2010

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


  1. <?php
  2. $id = $_GET["id"];
  3. mysql_connect("serwer", "nazwa bazy", "haslo");
  4.  
  5.  
  6. mysql_select_db("nazwa_bazy");
  7.  
  8.  
  9. if(!isset($cmd))
  10. {
  11.  
  12. $result = mysql_query("select * from zapytania WHERE id=$id");
  13.  
  14.  
  15. while($r=mysql_fetch_array($result))
  16. {
  17.  
  18. $zapytanie=$r["zapytanie"];
  19. $email=$r["email"];
  20. $opinia=$r["opinia"];
  21. $autor=$r["autor"];
  22. $id=$r["id"];
  23. }
  24. }
  25. $message = "<html><body>Twoje zapytanie: <p />$zapytanie<p /> Opinia:<p /> <b>$opinia</b><p />Pozdrawiam<br />$autor<a href='mailto:adres@email.pl'>adres@email.pl</a></body></html>";
  26.  
  27. $header = "MIME-Version: 1.0\r\n".
  28. "Content-type: text/html; charset=iso-8859-2\r\n".
  29. "From: adres@email.pl <adres@email.pl>" . "\r\n";
  30. $header .= "Disposition-Notification-To: <adres@email.pl>";
  31. @mail("$email","Opinia ID: $id ","$message","$header")
  32. or die('Nie udało się wysłać opinii');
  33. // wyświetlenie komunikatu w przypadku powodzenia
  34. echo "Opinia została wysłana.";
  35.  
  36. ?>
  37.  


Po kliknięciu "Wyśli" włącza się strona z tym skryptem. Tylko proszę na mnie nie krzyczeć bo pewnie trochę mu do miana poprawnego brakuje:P
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i gdzie w tym skrypcie masz to zabezpieczenie? Nigdzie nie widze bys sprawdzala tu jakies haslo

Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
gosia21
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 11.01.2010

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


na gorze strony mam

  1. <?
  2.  
  3. if(!session_is_registered("uzytkownik")){
  4. header("location:panel_wejscie.php");
  5. }
  6. ?>


nie udalo sie nikomu znalesc odpowiedzi ?:/

Ten post edytował gosia21 23.04.2010, 14:51:26
Go to the top of the page
+Quote Post
1010
post
Post #6





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


A czy w pliku, który wysyła maile też to masz?
Go to the top of the page
+Quote Post
gosia21
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 11.01.2010

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


tak w każdym pliku jest sprawdzanie sesji. A ten który wysyła maila to ten który wyżej napisałam czyli wszystko niby jest:(
Go to the top of the page
+Quote Post
redelek
post
Post #8





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


hej,

Moim zdaniem, funkcja mail jest poza wszelkimi if-ami, więc jeśli dotknisz ten plik po zalogowaniu od razu zostaje wysłany e-mail, nawet jeśli dane są puste.
Cofnij o jedną klamerkę wysyłanie o tak
  1. if(!isset($cmd))
  2. {
  3.  
  4. $result = mysql_query("select * from zapytania WHERE id=$id");
  5.  
  6.  
  7. while($r=mysql_fetch_array($result))
  8. {
  9.  
  10. $zapytanie=$r["zapytanie"];
  11. $email=$r["email"];
  12. $opinia=$r["opinia"];
  13. $autor=$r["autor"];
  14. $id=$r["id"];
  15. }
  16. $message = "<html><body>Twoje zapytanie: <p />$zapytanie<p /> Opinia:<p /> <b>$opinia</b><p />Pozdrawiam<br />$autor<a href='mailto:adres@email.pl'>adres@email.pl</a></body></html>";
  17.  
  18. $header = "MIME-Version: 1.0\r\n".
  19. "Content-type: text/html; charset=iso-8859-2\r\n".
  20. "From: adres@email.pl <adres@email.pl>" . "\r\n";
  21. $header .= "Disposition-Notification-To: <adres@email.pl>";
  22. @mail("$email","Opinia ID: $id ","$message","$header")
  23. or die('Nie udało się wysłać opinii');
  24. // wyświetlenie komunikatu w przypadku powodzenia
  25. echo "Opinia została wysłana.";
  26. }


jeśli warunek $cmd spełni się wiadomość dopiero zostanie wysłana. Osobiście dodał bym sprawdzanie czy mysql coś zwrócił i jeśli tak to dopiero odczytał dane i wysłał. Na razie cofnij kod o jedną klamerkę i zobacz czy będzie oki.

Go to the top of the page
+Quote Post
gosia21
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 11.01.2010

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


Dziękuję bardzo! Zmianiłam co trzeba i czekam na efekty:)

Niestety, powyższe rozwiązanie nie wyeliminowało problemu:/. Nadal przychodzą niechciane wiadomości i nic nie potrafię z tym zrobić. Może powinnam zabezpieczyć ten skrypt w jakiś inny sposób? Może samo definiowanie sesji to za mało? Baaardzo prosze o pomoc.

pzd
Go to the top of the page
+Quote Post

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: 24.08.2025 - 00:05