Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem ze skryptem wysłania e-maila
Anubisss
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Witam. Mam mały problem. Otóż, na stronie chcę zrobić taki motyw, że gdy ktoś wpisze w odpowiednie okienko swój e-mail, ja dostanę wiadomość na swój adres, o danym tekście. Działa do połowy. Po wpisaniu maila (tudzież nie wpisaniu) przenosi na drugą stronę, gdzie pokazuje się wiadomość. I tu się zaczyna problem. Bo zamiast po udanej akcji - pozytywna odpowiedź, a po nieudanej - negatywna, wszystko wyświetla się na raz.

Screeny:
(IMG:http://i33.tinypic.com/w2lmbt.jpg)
(IMG:http://i33.tinypic.com/2qsnvi1.jpg)

Pole do wpisania maila:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title> xXx </title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. </head>
  7. <body>
  8. <form action="wysylanie.php" method="post"><p>Wpisz swój adres e-mail: <input class="mail" name="mail" type="text"/><input type="submit" value="Wyślij"/></p></form>
  9. </body>
  10. </html>


Plik z domniemanymi odpowiedziami:
  1. <?php
  2. $headers = 'MIME-Version: 1.0' . "\r\n";
  3. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  4. $mail_lockerz = $_POST['mail'];
  5. $to = ' tu jest mój mail ';
  6. $subject = ' xXx ';
  7. $message = ' Tekst wiadomości ' .$mail_lockerz . '';
  8. if ($mail_lockerz <> '') {
  9. if (mail($to, $subject, $message, $headers)) {
  10. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  11. }
  12. else {
  13. echo "Mail nie wysłany. Nieznany problem";
  14. }
  15. }
  16. else {
  17. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  18. }
  19. ?>


Z góry dziękuję za pomoc. (IMG:style_emoticons/default/smile.gif)
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Larges
post
Post #2





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


Źle zakotwiczyłeś w jednym if całość - "pozytywne i negatywne" wykonanie kodu.
Przypatrz się dokładnie dokąd sięga klamerka od if ($mail_lockerz <> '') {


  1. if ($mail_lockerz <> '') {
  2.  
  3. if (mail($to, $subject, $message, $headers)) {
  4.  
  5. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  6.  
  7. }
  8.  
  9. else {
  10.  
  11. echo "Mail nie wysłany. Nieznany problem";
  12.  
  13. }
  14.  
  15. }



hmmmmm sorka też się pogubiłem przez brak wcięć ;]
Zakotwiczenie dobre, nie bardzo wiem w czym Tkwi Twój problem.
Dziwnego screena dałeś. Dlaczego u Ciebie na screenie widać kod PHP?

Ten post edytował Larges 10.10.2009, 19:49:48
Go to the top of the page
+Quote Post
Anubisss
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Cóż.. Skrypt jest gotowcem z internetu, bo osobiście w PHP jestem noga, tak więc chyba nie za bardzo niestety rozumiem... ^^
Go to the top of the page
+Quote Post
Zosiek
post
Post #4





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


Sprawdziłem to u siebie i działa. To że wyświetla ci się takie coś może być spowodowane różnymi czynnikami. Niecmoknięty jakiś nawias, ", ', wcześniej dany ?> błąd przy wysyłaniu maila postem.
Możliwe u ciebie, ze dałeś coś takiego w warunku if <>
nie wie czy to dobrze (chyba nie) ale możliwe że to kończy skrypt php. (tam chyab powinno być to:)
  1. if (isset($mail_lockerz)) {
  2. //kod
  3. }
  4. ?>
  5.  
Go to the top of the page
+Quote Post
Larges
post
Post #5





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


a Tak ?

  1. if (!empty($mail_lockerz))
  2. {
  3. if (mail($to, $subject, $message, $headers))
  4. {
  5. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  6. } else {
  7. echo "Mail nie wysłany. Nieznany problem";
  8. }
  9. } else {
  10. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  11. }


Mam nadzieje ze ten kod PHP wstawiasz w plik z rozszerzeniem .php (IMG:style_emoticons/default/winksmiley.jpg) ))))

Ten post edytował Larges 10.10.2009, 19:53:50
Go to the top of the page
+Quote Post
Zosiek
post
Post #6





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


Cytat(Larges @ 10.10.2009, 20:52:35 ) *
Mam nadzieje ze ten kod PHP wstawiasz w plik z rozszerzeniem .php (IMG:style_emoticons/default/winksmiley.jpg) ))))

Jakby było w innym to kod php był by widziany od samego początku (IMG:style_emoticons/default/tongue.gif)
@edit
Nie róbmy offtopu (IMG:style_emoticons/default/tongue.gif) Na priva ci napisałem Larges o co mi chodziło.

Ten post edytował Zosiek 10.10.2009, 20:00:29
Go to the top of the page
+Quote Post
Larges
post
Post #7





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


Tak ale przypatrz sie screenowi. Widoczny jest kod PHP zatem musi być coś nie ok (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Anubisss
post
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Cytat
Parse error: syntax error, unexpected '}' in /var/www/virtual/lockerzz.cba.pl/pl/zapro/lol/index.php on line 72


Czyli, że 12 linia tutaj:
  1. <?php
  2. $headers = 'MIME-Version: 1.0' . "\r\n";
  3. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  4. $mail_lockerz = $_POST['mail'];
  5. $to = ' tu jest mój mail ';
  6. $subject = ' xXx ';
  7. $message = ' Tekst wiadomości ' .$mail_lockerz . '';
  8. if ($mail_lockerz <> '') {
  9. if (mail($to, $subject, $message, $headers)) {
  10. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  11. }
  12. else {
  13. echo "Mail nie wysłany. Nieznany problem";
  14. }
  15. }
  16. else {
  17. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  18. }
  19. ?>
Go to the top of the page
+Quote Post
Larges
post
Post #9





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


muszisz poprawić klamerki. Klamerki otwarte zawsze trzeba domykać. Ilość klamerek otwierających musi być równa ilości zamykających "{" "}".
Go to the top of the page
+Quote Post
Zosiek
post
Post #10





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


po jest niepotrzebny enter przed else
ma być
}else
{

Tak mi się wydaje bo {} sie zgadzają oraz wszytko jest zamknięte i są ; gdzie trzeba

Ten post edytował Zosiek 10.10.2009, 20:15:43
Go to the top of the page
+Quote Post
Anubisss
post
Post #11





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Czyli powinno być tak?

  1. <?php
  2. $headers = 'MIME-Version: 1.0' . "\r\n";
  3. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  4. $mail_lockerz = $_POST['mail'];
  5. $to = 'anubis94@o2.pl';
  6. $subject = 'Zaproszenie na Lockerz.com';
  7. $message = 'Cześć. Chciałbym otrzymać zaproszenie na Lockerz.com. Mój mail to: ' .$mail_lockerz . '';
  8. if (!empty($mail_lockerz))
  9. {
  10. if (mail($to, $subject, $message, $headers))
  11. {
  12. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  13. } else {
  14. echo "Mail nie wysłany. Nieznany problem";
  15. }
  16. } else {
  17. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  18. }
  19.  
  20. } else {
  21. echo "Mail nie wysłany. Nieznany problem";
  22. }
  23. } else {
  24. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  25. }
  26. ?>
Go to the top of the page
+Quote Post
Zosiek
post
Post #12





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


Cytat(Anubisss @ 10.10.2009, 21:16:45 ) *
Czyli powinno być tak?

[PHP] pobierz, plaintext
  1. <?php
  2. $headers = 'MIME-Version: 1.0' . "\r\n";
  3. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  4. $mail_lockerz = $_POST['mail'];
  5. $to = 'anubis94@o2.pl';
  6. $subject = 'Zaproszenie na Lockerz.com';
  7. $message = 'Cześć. Chciałbym otrzymać zaproszenie na Lockerz.com. Mój mail to: ' .$mail_lockerz . '';
  8. if (!empty($mail_lockerz))
  9. {
  10. if (mail($to, $subject, $message, $headers))
  11. {
  12. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  13. } else {
  14. echo "Mail nie wysłany. Nieznany problem";
  15. }
  16. } else {
  17. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  18. }
  19. } else {
  20. echo "Mail nie wysłany. Nieznany problem";
  21. }
  22. } else {
  23. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  24. }
  25. ?>
[PHP] pobierz, plaintext

Pogrubione i czerwone usunąć ii powinno być dobrze
Go to the top of the page
+Quote Post
Anubisss
post
Post #13





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Usunąłem, iii...
Cytat
Parse error: syntax error, unexpected T_ELSE in /var/www/virtual/lockerzz.cba.pl/pl/zapro/lol/index.php on line 71


Czyli w lini z
  1. echo "Mail nie wysłany. Nieznany problem";
Go to the top of the page
+Quote Post
Larges
post
Post #14





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


a zamiast tego to:

  1. if (!empty($_POST['mail']))
  2. {
  3. if (mail($_POST['mail'], $subject, $message, $headers))
  4. {
  5. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  6. } else {
  7. echo "Mail nie wysłany. Nieznany problem";
  8. }
  9. } else {
  10. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  11. }


Działa?
Go to the top of the page
+Quote Post
Anubisss
post
Post #15





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Nie, dalej problem z
  1. echo "Mail nie wysłany. Nieznany problem";
Go to the top of the page
+Quote Post
Zosiek
post
Post #16





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


usuń z końca to
Kod
else {

      echo "Mail nie wysłany. Nieznany problem";


      } else {

      echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";

      }

TO do tego co wczesniej wkleiłeś (nad postem Largesa)

Cytat(Larges @ 10.10.2009, 21:24:20 ) *
a zamiast tego to:

[PHP] pobierz, plaintext
  1. if (!empty($_POST['mail']))
  2. {
  3. if (mail($_POST['mail'], $subject, $message, $headers))
  4. {
  5. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  6. } else {
  7. echo "Mail nie wysłany. Nieznany problem";
  8. }
  9. } else {
  10. echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  11. }
[PHP] pobierz, plaintext

Działa?

Wywal czerowne

Ten post edytował Zosiek 10.10.2009, 20:28:06
Go to the top of the page
+Quote Post
Anubisss
post
Post #17





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Nic nie dało...
Cytat
Parse error: syntax error, unexpected $end in /var/www/virtual/lockerzz.cba.pl/pl/zapro/lol/index.php on line 111


Lini 111 nawet nie mam w pliku...
Go to the top of the page
+Quote Post
Zosiek
post
Post #18





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


dodaj } na końcu :
} else {<li> echo "<meta HTTP-EQUIV='REFRESH' content='2; url=index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";<li>}}
Go to the top of the page
+Quote Post
Anubisss
post
Post #19





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009

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


Spróbowałem ogarnąć cały temat, i powstało mi coś takiego:

  1. <?php
  2. $headers = 'MIME-Version: 1.0' . "\r\n";
  3. $headers .= 'Content-type: text/html; charset=iso-8859-2' . "\r\n";
  4. $mail_lockerz = $_POST['mail'];
  5. $to = ' tu jest mój mail ';
  6. $subject = ' xXx ';
  7. $message = ' Tekst wiadomości ' .$mail_lockerz . '';
  8. if (!empty($mail_lockerz))
  9. {
  10. if (mail($to, $subject, $message, $headers))
  11. {
  12. echo "<meta HTTP-EQUIV='REFRESH' content='2'; url='index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  13. } else {
  14. echo "Mail nie wysłany. Nieznany problem";
  15. } else {
  16. echo "<meta HTTP-EQUIV='REFRESH' content='2' url='index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  17. }}
  18. ?>


Po czym wywala mi błąd:
Cytat
Parse error: syntax error, unexpected T_ELSE in /var/www/virtual/lockerzz.cba.pl/pl/zapro/lol/index.php on line 67


Czyli coś jest źle z:
  1. echo "<meta HTTP-EQUIV='REFRESH' content='2' url='index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";


Ten post edytował Anubisss 11.10.2009, 19:46:55
Go to the top of the page
+Quote Post
Zosiek
post
Post #20





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


  1. <?php
  2. $headers = 'MIME-Version: 1.0' . "\r\n";
  3. $headers .= 'Content-type: text/html; charset=iso-8859-2' . "\r\n";
  4. $mail_lockerz = $_POST['mail'];
  5. $to = ' tu jest mój mail ';
  6. $subject = ' xXx ';
  7. $message = ' Tekst wiadomości ' .$mail_lockerz . '';
  8. if (!empty($mail_lockerz))
  9. {
  10. if (mail($to, $subject, $message, $headers))
  11. {
  12. echo "<meta HTTP-EQUIV='REFRESH' content='2'; url='index.php'><center><font color='green'><b>Mail wysłany. Zaproszenie zostanie wysłane w ciągu 24 godzin.</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  13. }else {
  14. echo "Mail nie wysłany. Nieznany problem";
  15. }}else {
  16. echo "<meta HTTP-EQUIV='REFRESH' content='2' url='index.php'><center><font color='red'><b>Musisz wpisać mail przed wysłaniem!</b></font><br>Za chwilę zostaniesz przeniesiony na poprzednią stronę...</center>";
  17. }
  18. ?>
  19.  


Na marginesie. Linia kodu nie oznacza zawsze błędu w tej linij tylko wcześniej. Np tu } był w złym miejscu i drugi else odnosił się do poprzedniego else. Teraz na pewno działa.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 22.08.2025 - 18:06