Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz html który zmienia wybrane obszary PHP
Forum PHP.pl > Forum > Przedszkole
multips
Witam. Próbuję utworzyć scrypt do wysyłania emaili. Chciał bym do tego napisać w html kilka okienek opcji wpisywania/wyboru, tzn. po wpisaniu do okienka np: Do kogo email: xxx@xx.pl, żeby ten email został umieszczony w scrypcie php wysyłającym emaile.

Jak na razie w html mam tylko to

Formularz Html Który Zmienia Wybrane Obszary Php

  1. <div>
  2. <form action="wiadomosc.php" method="post">
  3. <input type="text" name="email" /><br />
  4. <textarea name="content" cols="30" rows="6"></textarea>
  5. <input type="submit" value="wyślij" />
  6. </form>
  7. </div>


a w wiadomosc.php



  1. <?php
  2.  
  3. $do = "DoKogo@email.pl";
  4.  
  5. $temat_do = "Temat Wiadomości";
  6.  
  7. $wiadomosc = "Tekst Wiadomości";
  8.  
  9. $from = "OdKogo@email.pl";
  10.  
  11. $naglowek = "From:" . $from;
  12.  
  13. mail($do, $temat_do, $wiadomosc, $naglowek);
  14.  
  15. echo "Ok!";
  16.  
  17. ?>

Chciał bym żeby w html było 5 okienek do zmiany tych atrybutów, oraz żeby w oknie "Tekst wiadomości" można było umieszczać kod html


  1. $do = "DoKogo@email.pl";
  2.  
  3. $temat_do = "Temat Wiadomości";
  4.  
  5. $wiadomosc = "Tekst Wiadomości";
  6.  
  7. $from = "OdKogo@email.pl";
  8.  
  9. $naglowek = "From:" . $from;
  10.  
Turson
http://pl.wikibooks.org/wiki/PHP/Formularze
Przeczytaj i zobacz czym jest POST/GET i jak wyświetlić wartości z formularza
multips
dzięki


No więc zrobiłem tak i nie działa, orientuje się może ktoś na czym polega błąd ?



  1. <html>
  2.  
  3. <head>
  4.  
  5. <title>Formularz HTML</title>
  6.  
  7. </head>
  8.  
  9. <body>
  10.  
  11. <form method="post" action="wiadomosc.php">
  12.  
  13. Email do <input type="text" name="do@xx.xx" /><br/>
  14.  
  15. Temat <input type="text" name="TematWiadomości"/><br/>
  16.  
  17. Tekst <input type="text" name="TekstWiadomości"/><br/>
  18.  
  19. Twój email <input type="text" name="OdKogo@x.xx"/><br/>
  20.  
  21. From: <input type="text" name="From:"/><br/>
  22.  
  23. <input type="submit" value="OK"/>
  24.  
  25. </form>
  26.  
  27. </body>
  28.  
  29. </html>





  1. <?php
  2.  
  3. $do = "xxx";
  4.  
  5. $temat_do = "Temat Wiadomości";
  6.  
  7. $wiadomosc = "Tekst Wiadomości";
  8.  
  9. $from = "OdKogo@email.pl";
  10.  
  11. $naglowek = "From:" . $from;
  12.  
  13. mail($do, $temat_do, $wiadomosc, $naglowek);
  14.  
  15. echo "Ok!";
  16.  
  17. ?>


Turson
zobacz co to
  1. echo $_POST['TematWiadomości'];

chyba dalej sobie poradzisz
rad11
  1. <?php
  2.  
  3. $do = $_POST['do@xx.xx'];
  4.  
  5. $temat_do = $_POST['TematWiadomości'];
  6.  
  7. $wiadomosc = $_POST['TekstWiadomości'];
  8.  
  9. $from = $_POST['OdKogo@x.xx'];
  10.  
  11. $naglowek = $_POST['From:'];
  12.  
  13. mail($do, $temat_do, $wiadomosc, $naglowek);
  14.  
  15. echo "Ok!";
  16.  
  17. ?>


jak juz przeczytaj uwaznie jeszcze raz artykul od Tursona smile.gif
multips
No więc wszystko wygląda tak, teoretycznie powinno działać ale formularze się nie wysyłają, nawet gdy ręcznie zmienię w wiadomosc.php emaila i wpiszę w przeglądarkę www.xxx.xx/wiadomosc.php to email się nie wysyła, jakieś sugestie ?


  1. <html>
  2.  
  3. <head>
  4.  
  5. <title>Formularz HTML</title>
  6.  
  7. </head>
  8.  
  9. <body>
  10.  
  11. <form method="post" action="wiadomosc.php">
  12.  
  13. Email do <input type="text" name="do@xx.xx" /><br/>
  14.  
  15. Temat <input type="text" name="TematWiadomości"/><br/>
  16.  
  17. Tekst <input type="text" name="TekstWiadomości"/><br/>
  18.  
  19. Twój email <input type="text" name="OdKogo@x.xx"/><br/>
  20.  
  21. From: <input type="text" name="From:"/><br/>
  22.  
  23. <input type="submit" value="OK"/>
  24.  
  25. </form>
  26.  
  27. </body>
  28.  
  29. </html>


  1. <?php
  2.  
  3. $do = $_POST['do@xx.xx'];
  4.  
  5. $temat_do = $_POST['TematWiadomości'];
  6.  
  7. $wiadomosc = $_POST['TekstWiadomości'];
  8.  
  9. $from = $_POST['OdKogo@x.xx'];
  10.  
  11. $naglowek = $_POST['From:'];
  12.  
  13. mail($do, $temat_do, $wiadomosc, $naglowek);
  14.  
  15. echo "Ok!";
  16.  
  17. ?>
rad11
A na czym to wysylasz na localhoscie czy na serwerze internetowym ?
multips
serwerze internetowym, dodam że jak scrypt był w takiej postaci emaile się wysyłały:


  1.  
  2. <?php
  3.  
  4. $do = "adresemail@aa.pl";
  5.  
  6. $temat_do = "Temat Wiadomości";
  7.  
  8. $wiadomosc = "Tekst Wiadomości";
  9.  
  10. $from = "OdKogo@x.xxl";
  11.  
  12. $naglowek = "From:" . $from;
  13.  
  14. mail($do, $temat_do, $wiadomosc, $naglowek);
  15.  
  16. echo "Ok!";
  17.  
  18. ?>
Turson
name="do@xx.xx" chyba gorszego name nigdy nie widziałem tongue.gif
w wiadomosc.php wpisz: print_r($_POST); to zobaczysz co przechodzi z formularza
multips
Ok już wszystko działa, dzięki za pomoc smile.gif. Miał bym jeszcze 1 pytanie, jak zmienić zwykłe pole tekstowe to które jest odpowiedzialne za treść wiadomości, tak aby można było w nie wklejać kod html ?
Turson
Nie rozumiem
rad11
Przede wszystkim jeśli to ma być pole na wiadomość to zmień:

  1. Tekst <input type="text" name="TekstWiadomości"/><br/>


na:

  1. Tekst:
  2. <textarea rows="4" cols="50" name="TekstWiadomości">
  3. Tekst
  4. </textarea>
  5.  


A jeśli chodzi o wklejenie kodu html to też nie rozumiem po co Ci taka opcja, przeciez w tej chwili tez tak mozesz zrobic smile.gif
multips
Podam przykład, np poczta onet.pl jest tam możliwość kliknięcia przycisku "wstaw kod html" i wtedy można pisać wiadomość w języku html, a po wysłaniu wiadomość jest przetwożona na zwykłą treść z uwzględnieniem kodu html.
Dzięki zmieniłem.

No tak ale jeżeli wpiszę teraz w formularzu <b> tekst </b> to wiadomość się wyśle tak <b> tekst </b> zamiast tak tekst. Jest na to jakis posób ?
rad11
To przeczytaj sobie o:

bbcode
multips
Znalazłem, teoretycznie powinno działać ale po wysłaniu wiadomości dociera cały kod html bez żadnych zmian, jakieś sugestie ?


  1. <!DOCTYPE html>
  2. <head><!-- CDN hosted by Cachefly -->
  3. <script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
  4. tinymce.init({selector:'textarea'});
  5. </head>
  6.  
  7.  
  8. <title>Formularz HTML</title>
  9.  
  10. </head>
  11.  
  12. <body>
  13.  
  14.  
  15. <form method="post" action="wiadomosc.php">
  16.  
  17. do: <input type="text" name="xx" /><br/>
  18.  
  19. Temat <input type="text" name="TematWiadomoœci"/><br/>
  20.  
  21. <textarea rows="4" cols="50" name="TekstWiadomosci">
  22. Tekst
  23.  
  24. od <input type="text" name="lol"/><br/>
  25.  
  26. <input type="submit" value="OK"/>
  27.  
  28.  
  29. </form>
  30.  
  31. </body>
  32.  
  33. </html>
  34.  
  35.  
  36.  
Turson
http://pl.wikibooks.org/wiki/PHP/Wysy%C5%82anie_e-maili
jest przykład ostatni o tym
multips
Wszystko już niby działa, ale problem mam z tą linijką


  1. $naglowek = "From:" . $from;

Gdy jej nie ma treść wysłanej wiadomości jest zgodna z kodem html, problem polega w tym, że kiedy ją usunę nie można ustawić linijki "Twój email". A wtedy kiedy kod znajduje się w wiadomosc.php treść wysłanej wiadomości nie przekształca się zgodnie z kodem html, ale za to można edytować "Twój email". Wie ktoś o co może teraz chodzić ?
Wydaje mi się, że zmiana nazwy $naglowek by pomogła ale nie mogę go umieścić np w ten sposób ponieważ nie działa mail($do, $temat_do, $wiadomosc, $naglowek, $konwhtml);

  1. <?php
  2.  
  3.  
  4. $naglowek .= "MIME-Version: 1.0".PHP_EOL;
  5. $naglowek .= "Content-type: text/html; charset=iso-8859-2".PHP_EOL;
  6.  
  7. $do = $_POST['xx'];
  8.  
  9. $temat_do = $_POST['TematWiadomości'];
  10.  
  11. $wiadomosc = $_POST['TekstWiadomosci'];
  12. $from = $_POST['lol'];
  13. $naglowek = "From:" . $from;
  14.  
  15. mail($do, $temat_do, $wiadomosc, $naglowek);
  16.  
  17.  
  18. echo "Ok!";
  19.  
  20. ?>


Pomoże ktoś ? bo już kombinuje pół dnia
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.