Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z formularzem
bilskij
post 9.09.2011, 23:52:13
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 25.08.2011

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


Mam taki oto kod HTML

  1. <form id="pytanie" action="email.php" method="post">
  2. <div class="row">
  3. <div class="lr">Imię i nazwisko: <span class="form-required">*</span></div>
  4. <div class="rr"><input type="text" id="pers" name="pers" /></div>
  5. </div>
  6. <div class="row">
  7. <div class="lr">E-Mail: </div>
  8. <div class="rr"><input type="text" id="email" name="email" /></div>
  9. </div>
  10. <div class="row">
  11. <div class="lr">Telefon:</div>
  12. <div class="rr"><input type="text" id="phone" name="phone" /></div>
  13. </div>
  14. <div class="row">
  15. <div class="lr">Treść pytania: <span class="form-required">*</span></div>
  16. <div class="rr"><textarea id="question" name="question"></textarea></div>
  17. </div>
  18. <div id="send">
  19. <div class="submit"><input type="submit" value="wyślij" id="submit"/></div>
  20. </div>
  21. </form>


oraz kod php w oddzielnym pliku email.php

  1. <?php
  2.  
  3. $pers = $_REQUEST['pers'];
  4. $question = $_REQUEST['question'];
  5.  
  6. $send = @mail("mail@mail.com", $pers, $question);
  7.  
  8. if(!$send){
  9.  
  10. die();
  11.  
  12. }
  13.  
  14. ?>


Niestety e-mail nie zostaje wyslany po nacisnieciu przycisku submit.. Ktos wie dlaczego ?
Go to the top of the page
+Quote Post
Sokon
post 10.09.2011, 03:44:46
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2008

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


Po pierwsze zmień
  1. $pers = $_REQUEST['pers'];
  2. $question = $_REQUEST['question'];

na
  1. $pers = $_POST['pers'];
  2. $question = $_POST['question'];


Po drugie korzystając z funkcji mail() pamiętaj, że jej składnia to:
  1. mail( "odbiorca", "temat", "treść wiadomości", "nagłówek" );

Ja to np. załatwiam tak:
  1. function newRegistration( $email ) {
  2. $sender = "no-replay@mojadomena.pl";
  3. $subject = "Nowa rejestracja";
  4. $message = "Założono konto na mojadomena.pl";
  5. $header = "MIME-Versio: 1.0\r\nContent-type: text/html; charset=UTF-8\r\nFrom: $sender\r\nReply-To: $sender";
  6. mail( $email, $subject, $message, $header );
  7. }
Go to the top of the page
+Quote Post
bilskij
post 10.09.2011, 07:57:59
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 25.08.2011

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


Dzieki, zadzialalo smile.gif A teraz jak zrobić by po naciśnięciu przycisku submit nie przechodziło mi do pustego pliku email.php lecz pozostawało na stronie formularza i dopisywało do jakiegoś div'a treść ?
Go to the top of the page
+Quote Post
Daiquiri
post 10.09.2011, 08:16:52
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Proponuję wziąć się za jakiś kurs PHP/HTML - to na początek. Potem, w przypadku błędów, pokazać co już napisałeś i co nie działa.

Zainteresuj się: action="email.php".
Go to the top of the page
+Quote Post
bilskij
post 10.09.2011, 12:37:14
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 25.08.2011

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


Wiem, ze wypada wziasc sie za kurs php, ale chyba od tego jest forum, aby ktos pomogl questionmark.gif Czy dostane odpowiedz ? Nie musi byc kompletna, a moze byc jedynie nakierowanie... A moze da sie to zrobic poprzez javascript questionmark.gif
Go to the top of the page
+Quote Post
mch.frnc
post 10.09.2011, 12:59:20
Post #6





Grupa: Zarejestrowani
Postów: 73
Pomógł: 4
Dołączył: 15.08.2008

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


Cytat(bilskij @ 10.09.2011, 13:37:14 ) *
Wiem, ze wypada wziasc sie za kurs php, ale chyba od tego jest forum, aby ktos pomogl questionmark.gif Czy dostane odpowiedz ? Nie musi byc kompletna, a moze byc jedynie nakierowanie... A moze da sie to zrobic poprzez javascript questionmark.gif

no przecież (może nie dosłownie) @Daiquiri Ci odpowiedział.
Cytat
Zainteresuj się: action="email.php".

nie musisz tego rozbijać na dwa pliki, możesz wszystko umieścić w pliku email.php i np. sprawdzić warunek czy $_POST['email'] istnieje i czy nie jest puste, wtedy wykonujesz kod wysłania maila i wyświetlasz co tam chcesz w danym ifie (czy jak byś to tam sobie skombinował)
Go to the top of the page
+Quote Post
bilskij
post 10.09.2011, 13:10:28
Post #7





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 25.08.2011

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


Czyli chodzi Ci aby caly kod ktory mam obecnie w html umiescic w pliku php ?
Go to the top of the page
+Quote Post
Sokon
post 10.09.2011, 15:04:25
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2008

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


Cytat(bilskij @ 10.09.2011, 08:57:59 ) *
Dzieki, zadzialalo smile.gif A teraz jak zrobić by po naciśnięciu przycisku submit nie przechodziło mi do pustego pliku email.php lecz pozostawało na stronie formularza i dopisywało do jakiegoś div'a treść ?


Wysyłasz treść formularza mailem, więc co dokładnie chcesz wpisać w DIV'a ?

Co do jednego pliku to tak jak Ci piszą koledzy, zainteresuj się
  1. action="email.php"
zmień nagłówek formularza na
  1. <form id="pytanie" action="" method="post">
i pod nim dopisz
  1. <?php
  2. if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  3. TWOJA FUNKCJA WYSYŁANIA MAILA
  4. czyli innymi słowy wklej tu zawartość pliku email.php
  5. }
  6. ?>


Ten post edytował Sokon 10.09.2011, 15:05:15
Go to the top of the page
+Quote Post
Daiquiri
post 10.09.2011, 15:11:35
Post #9





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Cytat(bilskij @ 10.09.2011, 13:37:14 ) *
Wiem, ze wypada wziasc sie za kurs php, ale chyba od tego jest forum, aby ktos pomogl questionmark.gif Czy dostane odpowiedz ? Nie musi byc kompletna, a moze byc jedynie nakierowanie... A moze da sie to zrobic poprzez javascript questionmark.gif
Twoje pytanie dobitnie świadczy o tym, iż kursu (HTML) na oczy nie widziałeś lub po prostu zapoznałeś się z nim wybitnie pobieżnie. Zgadzamy się co do tego, że forum jest do pomocy. Mylisz jednak pomoc z pisaniem kodu za Ciebie. Jak już wyżej pisałam wystarczyło zainteresować się "action" w formularzu - uważam to za (co najmniej) nakierowanie.

W przypadku napotkania kolejnych trudności - zacznij od wklejenia tego, co udało Ci się już osiągnąć smile.gif.

Go to the top of the page
+Quote Post
bilskij
post 12.09.2011, 19:48:50
Post #10





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 25.08.2011

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


Dzieki Sokon za podpowiedz. Rozumiem, że teraz plik muszę zapisac z rozszerzeniem php, bo inaczej nie bedzie dzialac ? Po zapisaniu z rozszerzeniem html kod php jest po prostu traktowany jako tekst oraz wyswietlany na stronie. Chyba że to kwestia ustawien serwera? Bo na dysku wyswietla sie poprawnie a po wrzuceniu na serwer kod miedzy znacznikami <?php ?> jest wyswietlany jako tekst

Ten post edytował bilskij 12.09.2011, 19:54:31
Go to the top of the page
+Quote Post
Sokon
post 12.09.2011, 20:27:26
Post #11





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2008

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


Pliki zawierające kod PHP który ma być wykonany przez serwer powinny być w pliku o rozszerzeniu .php, a sam kod PHP ma być w znacznikach
  1. <?php
  2. ?>
Go to the top of the page
+Quote Post
bilskij
post 12.09.2011, 21:37:47
Post #12





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 25.08.2011

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


Dodalem obsluge plików html przez php i dziala jak nalezy z rozszerzeniem html smile.gif

  1. <form id="pytanie" action="" method="post">
  2. <?php
  3. if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  4. $sender = $_POST['email'];
  5. $pers = $_POST['pers'];
  6. $question = "Treść wiadomości:\n<br /><br />$_POST[question]\n<br /><hr />Wysłał: $_POST[pers]\n<br />E-mail: $_POST[email]\n<br />Telefon: $_POST[phone]";
  7. $header = "MIME-Versio: 1.0\r\nContent-type: text/html; charset=UTF-8\r\nFrom: $sender\r\nReply-To: $sender";
  8.  
  9. mail("forms@starzawa.pl", "Formularz", $question, $header);
  10. }
  11. ?>
  12. <div class="row">
  13. <div class="lr">Imię i nazwisko: <span class="form-required">*</span></div>
  14. <div class="rr"><input type="text" id="pers" name="pers" /></div>
  15. </div>
  16. <div class="row">
  17. <div class="lr">E-Mail: </div>
  18. <div class="rr"><input type="text" id="email" name="email" /></div>
  19. </div>
  20. <div class="row">
  21. <div class="lr">Telefon:</div>
  22. <div class="rr"><input type="text" id="phone" name="phone" /></div>
  23. </div>
  24. <div class="row">
  25. <div class="lr">Treść pytania: <span class="form-required">*</span></div>
  26. <div class="rr"><textarea id="question" name="question"></textarea></div>
  27. </div>
  28. <div id="send">
  29. <div id="message-sent></div>
  30. <div class="submit"><input type="submit" value="wyślij" id="submit"/></div>
  31. </div>
  32. </form>


Teraz jak moglbym poprzez php dodac tekst do diva o id="message-sent" questionmark.gif?
Go to the top of the page
+Quote Post
Ociu
post 12.09.2011, 21:54:48
Post #13





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  1. <form id="pytanie" action="" method="post">
  2. <?php
  3. if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  4. $sender = $_POST['email'];
  5. $pers = $_POST['pers'];
  6. $question = "Treść wiadomości:\n<br /><br />$_POST[question]\n<br /><hr />Wysłał: $_POST[pers]\n<br />E-mail: $_POST[email]\n<br />Telefon: $_POST[phone]";
  7. $header = "MIME-Versio: 1.0\r\nContent-type: text/html; charset=UTF-8\r\nFrom: $sender\r\nReply-To: $sender";
  8.  
  9. $sent = mail("forms@starzawa.pl", "Formularz", $question, $header);
  10. }
  11. ?>
  12. <div class="row">
  13. <div class="lr">Imię i nazwisko: <span class="form-required">*</span></div>
  14. <div class="rr"><input type="text" id="pers" name="pers" /></div>
  15. </div>
  16. <div class="row">
  17. <div class="lr">E-Mail: </div>
  18. <div class="rr"><input type="text" id="email" name="email" /></div>
  19. </div>
  20. <div class="row">
  21. <div class="lr">Telefon:</div>
  22. <div class="rr"><input type="text" id="phone" name="phone" /></div>
  23. </div>
  24. <div class="row">
  25. <div class="lr">Treść pytania: <span class="form-required">*</span></div>
  26. <div class="rr"><textarea id="question" name="question"></textarea></div>
  27. </div>
  28. <div id="send">
  29. <div id="message-sent><?php echo ($sent) ? "Dziekujemy za wyslanie maila" : "" ; ?></div>
  30. <div class="submit"><input type="submit" value="wyślij" id="submit"/></div>
  31. </div>
  32. </form>
Go to the top of the page
+Quote Post
Sokon
post 12.09.2011, 21:55:38
Post #14





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2008

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


Mój błąd, nie oto mi chodziło a po przeczytaniu swojego posta faktycznie zrobiłeś dokładnie to co ja napisałem. To co masz poniżej powinno działać, ale robiłem to w przerwie od pracy więc nie miałem czasu sprawdzić. To jest to samo co napisał Ci kolega Ociu tylko w innej formie.
  1. <?php
  2. if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  3. $sender = $_POST['email'];
  4. $pers = $_POST['pers'];
  5. $question = "Treść wiadomości:\n<br /><br />$_POST[question]\n<br /><hr />Wysłał: $_POST[pers]\n<br />E-mail: $_POST[email]\n<br />Telefon: $_POST[phone]";
  6. $header = "MIME-Versio: 1.0\r\nContent-type: text/html; charset=UTF-8\r\nFrom: $sender\r\nReply-To: $sender";
  7. if( mail("forms@starzawa.pl", "Formularz", $question, $header) ) {
  8. //Jeżeli mail wysłał się poprawnie to tutaj treść wiadomości która będzie w div'ie o id message-sent
  9. $message-sent = "";
  10. } else {
  11. //Jeżeli mail nie wysłał się poprawnie to tutaj treść wiadomości która będzie w div'ie o id message-sent
  12. $message-sent = "";
  13. }
  14. }
  15. ?>
  16.  
  17. <form id="pytanie" action="" method="post">
  18. <div class="row">
  19. <div class="lr">Imię i nazwisko: <span class="form-required">*</span></div>
  20. <div class="rr"><input type="text" id="pers" name="pers" /></div>
  21. </div>
  22.  
  23. <div class="row">
  24. <div class="lr">E-Mail: </div>
  25. <div class="rr"><input type="text" id="email" name="email" /></div>
  26. </div>
  27.  
  28. <div class="row">
  29. <div class="lr">Telefon:</div>
  30. <div class="rr"><input type="text" id="phone" name="phone" /></div>
  31. </div>
  32.  
  33. <div class="row">
  34. <div class="lr">Treść pytania: <span class="form-required">*</span></div>
  35. <div class="rr"><textarea id="question" name="question"></textarea></div>
  36. </div>
  37.  
  38. <div id="send">
  39. <div id="message-sent><?php echo $message-sent; ?></div>
  40. <div class="submit"><input type="submit" value="Wyślij" id="submit"/></div>
  41. </div>
  42. </form>


Ten post edytował Sokon 12.09.2011, 22:02:21
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 15:01