Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wyborem (funkcja if)
Forum PHP.pl > Forum > Przedszkole
bronx
witam

mam formularz (subskrypcji) a pod nim dwa przycisku submit - jeden to test (żeby wysłało tylko do mnie) a drugi to roześlij (do wszystkich)

gdzie w tym skrypcie jest błąd i co najważnijsze jaki ? :

  1. <?php
  2.  
  3. $data=date(&#092;"Y-m-d H:i:s\");
  4.  
  5. $to = &#092;"bronx01@o2.pl\" 
  6.  
  7. $emaile=file(&#092;"emaile.php\");
  8.  
  9. $tresc=eregi_replace(&#092;"n\", \"<br>\", $tresc);
  10.  
  11. $wiadomosc = &#092;"
  12. <html>
  13. <head>
  14. <title>Moja subskrypcja</title>
  15. <style type=text/css>
  16. A:link  { color : black; font-weight: bold; text-decoration: none; }
  17. A:visited { color : black; font-weight: bold; text-decoration: none; }
  18. A:active  { color : black; font-weight: bold; text-decoration: none; }
  19. A:hover  { color : red; font-weight: bold; text-decoration: none; }
  20. </style>
  21. </head>
  22. <body topmargin=2>
  23. <font size=1 face=verdana>
  24. <br>
  25. $tresc<br>
  26. <hr size=1>
  27. <i>(wygenerowano $data)</i> 
  28.  
  29. </body>
  30. </html>
  31. &#092;";
  32.  
  33. $naglowek = &#092;"MIME-Version: 1.0n\"; 
  34. $naglowek .= &#092;"Content-type: text/html; charset=ISO-8859-2n\"; 
  35. $naglowek .= &#092;"From: Moja Subskrypcja <bronx01@o2.pl>\";
  36.  
  37. if(isset($_GET['wyslij']))
  38. {
  39.  
  40. while(list($key, $email) = each($emaile)) {
  41. mail(trim($email), $tytul, $wiadomosc, $naglowek);
  42. } 
  43.  
  44. }
  45.  
  46. if(isset($_GET['test']))
  47. {
  48.  
  49. mail ($to, $tytul, $wiadomosc, $naglowek);
  50.  
  51. }
  52.  
  53. echo &#092;"<CENTER>E-maile zostały rozesłane</CENTER>\";
  54.  
  55. ?>


pozdrawiam
kicaj
Dostajesz jakis komunikat?
bronx
Cytat(kicaj_ @ 2004-07-04 21:57:39)
Dostajesz jakis komunikat?

własnie nie, pokazuje sie cala biala strona (bez napisu - e-maile zostaly rozeslane) sad.gif
Pedros
Jak na mnie wygląda to ok, ale takie pytanko.... z jakiego serwera korzystasz?? bo może serwer ma jakieś problemy...

Warto by było także włączyć raportowanie wszystkich błędów:
  1. <?php
  2. ?>

Może wtedy wypisze coś ciekawego...
Dabroz
Może spróbuj tak:

  1. <?php
  2.  
  3. $data=date(&#092;"Y-m-d H:i:s\");
  4.  
  5. $to = &#092;"bronx01@o2.pl\" 
  6.  
  7. $emaile=file(&#092;"emaile.php\");
  8.  
  9. // Skąd pobierasz treść? Z GET czy POST? Musisz użyć odpowiedniej tablicy
  10.  
  11. $tresc=nl2br($tresc);
  12.  
  13. $wiadomosc = &#092;"
  14. <html>
  15. <head>
  16. <title>Moja subskrypcja</title>
  17. <style type=text/css>
  18. A:link  { color : black; font-weight: bold; text-decoration: none; }
  19. A:visited { color : black; font-weight: bold; text-decoration: none; }
  20. A:active  { color : black; font-weight: bold; text-decoration: none; }
  21. A:hover  { color : red; font-weight: bold; text-decoration: none; }
  22. </style>
  23. </head>
  24. <body topmargin=2>
  25. <font size=1 face=verdana>
  26. <br>
  27. $tresc<br>
  28. <hr size=1>
  29. <i>(wygenerowano $data)</i> 
  30.  
  31. </body>
  32. </html>
  33. &#092;";
  34.  
  35. $naglowek = &#092;"MIME-Version: 1.0n\"; 
  36. $naglowek .= &#092;"Content-type: text/html; charset=ISO-8859-2n\"; 
  37. $naglowek .= &#092;"From: Moja Subskrypcja <bronx01@o2.pl>\";
  38.  
  39. // tutaj tak samo, mam wrażenie że powinno być POST (tytuł też)
  40.  
  41. if(isset($_GET['wyslij']))
  42. {
  43.  
  44. foreach ($emaile as $email)
  45. mail(trim($email), $tytul, $wiadomosc, $naglowek);
  46.  
  47. }
  48.  
  49. if(isset($_GET['test']))
  50. {
  51.  
  52. mail ($to, $tytul, $wiadomosc, $naglowek);
  53.  
  54. }
  55.  
  56. echo &#092;"<CENTER>E-maile zostały rozesłane</CENTER>\";
  57.  
  58. ?>
bronx
formularz wygląda tak:

  1. <FORM action="wyslij.php" method="POST">
  2. Temat wiadomo&para;ci: <INPUT type="text" size=30 name="tytul" value="Moja Subskrypcja">
  3. <BR><BR>
  4. Tre&para;ć wiadomo&para;ci:<BR>
  5. <TEXTAREA name="tresc" rows=20 cols=30></TEXTAREA>
  6.  
  7. <BR><BR>
  8. <INPUT type="submit" value="Wyslij" name="wyslij">
  9. <INPUT type="submit" value="Test" name="test">
  10.  
  11. </FORM>


sktypt chodził dobrze, tylko po dodaniu tego wyboru nie chce działać, a tak bez ttej funkcji TEST wszystko szło idealnie
Dabroz
No to wszystko jasne.... tak jak mówiłem:

nie $_GET['wyslij'] i $_GET['test'] tylko $_POST['wyslij'] i $_POST['test']
bronx
Cytat(Dabroz @ 2004-07-04 23:26:26)
No to wszystko jasne.... tak jak mówiłem:

nie $_GET['wyslij'] i $_GET['test'] tylko $_POST['wyslij'] i $_POST['test']

zmieniłem to... dalej nie działa sad.gif

już nie mam pojęcia co tu może być nie tak sad.gif
Dabroz
Wstaw sobie w różne miejsca kodu checkpoinst (typu: echo "jestem przy petli 2"). Pomaga - zobacz do którego momentu skrypt działa.
bronx
już wiem gdzie był błąd

  1. <?php
  2.  
  3. $to = &#092;"bronx01@o2.pl\" 
  4. ?>


nie postawiłem znaczk - ;

teraz wszystko działą - dzięki za rady i podpowiedzi

aha i jeszcze jedno: jaka jest różnica między tym:

  1. <?php
  2. foreach ($emaile as $email)
  3. ?>


a tym:

  1. <?php
  2. while(list($key, $email) = each($emaile))
  3. ?>


które lepiej stosować ?
Dabroz
1) Szczena mi opadła, ale takie błędy się bardzo często zdarzają. Włącz sobie wyświetlanie błędów lepiej.

2) foreach jest, jak widzisz krótsze cool.gif
bronx
Cytat(Dabroz @ 2004-07-04 23:57:13)
1) Szczena mi opadła, ale takie błędy się bardzo często zdarzają. Włącz sobie wyświetlanie błędów lepiej.

nie moge tego sobie włączyć, bo serwer mam udostępniony przez "sponsora" i nie mam dostępu do jego konfiguracji sad.gif
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.