Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz kontaktowy - potwierdzenie wysłania wiadomości
master89
post 9.02.2013, 00:53:49
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


Witam,
tak jak w temacie. Jak mogę zrobić potwierdzenie wysłania wiadomości z formularza kontaktowego? Przygotowałem taką grafikę, żeby zobrazować to o co mi chodzi. Aktualnie pojawia się biała strona z napisem: Wiadomość została wysłana.

Proszę o pomoc i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
markonix
post 9.02.2013, 01:09:30
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Skoro pojawia Ci się biała strona to znaczy, że Twój formularz wysyła dane do innej strony w tradycyjny sposób - bez AJAX.

Średnio ładnie ale w dosyć prosty sposób możesz zrobić tak:
1. Formularz wysyła się na stronę gdzie teraz.
2. Z tej strony przekierowujesz z powrotem z dodatkowym parametrem GET.
3. Wyświetlasz na stronie swój komunikat jeżeli masz ten parametr.
W tej wersji bez JS się nie obejdzie bo i tak musisz oskryptować przycisk "powrót".

Ładniejsze ale trudniejsze:
1. Zmieniasz na AJAX.
2. Kiedy success wywołujesz okienko (szukaj pod określeniem dialog box).


--------------------
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 13:01:21
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


A jest mozliowść, zeby zamiast napisu: Wiadomość wysłana!, żeby przechidzł na stronę którą stworzę i będzie to ładniej wyglądało niż zwykły napis?

Albo po wysłaniu wiadomości, żeby napis Wiadomość wysłana pokazywał sie pod, nad lub zamiast buttona Wyślij?

Która z tych opcji jest wykonalna i łatwiejsza do wykonania?
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 13:15:15
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(master89 @ 9.02.2013, 13:01:21 ) *
Która z tych opcji jest wykonalna i łatwiejsza do wykonania?


Obie są łatwe. Przekierowanie robisz za pomocą header


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 13:18:43
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


Proszę o dokładniejszą pomoc:(


formularz na stronie:

  1. <form method="post" action="form.php" enctype="multipart/form-data">
  2. <label>Imię i nazwsko</label>
  3. <input type="text" name="formName" id="name">
  4. <label>Twój Email</label>
  5. <input type="text" name="formEmail" id="email">
  6. <label>Wiadomość</label>
  7. <textarea style="height:160px" cols="50" name="formText" id="message"></textarea>
  8. <input type="submit" name="submit" class="btn btn-prime btn-full" value="Wyślij formularz"/>
  9. </form>


plik form.php

  1. <?php
  2. //--- początek formularza ---
  3. if(empty($_POST['submit'])) {
  4. ?>
  5.  
  6. <?php
  7. } else {
  8.  
  9. //twoje dane
  10. $email = 'moj@email.pl';
  11.  
  12. //dane z formularza
  13. $formName = $_POST['formName'];
  14. $formEmail = $_POST['formEmail'];
  15. $formText = $_POST['formText'];
  16.  
  17. if(!empty($formName) && !empty($formEmail) && !empty($formText)) {
  18.  
  19. //--- początek funkcji weryfikującej adres e-mail ---
  20. function checkMail($checkmail) {
  21. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  22. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  23. return true;
  24. }
  25. else{
  26. return false;
  27. }
  28. } else {
  29. return false;
  30. }
  31. }
  32. //--- koniec funkcji ---
  33. if(checkMail($formEmail)) {
  34. //dodatkowe informacje: ip i host użytkownika
  35. $ip = $_SERVER['REMOTE_ADDR'];
  36. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  37.  
  38. //tworzymy szkielet wiadomości
  39. //treść wiadomości
  40. $mailText = "Treść wiadomości:\n$formText\nOd: $formName, $formEmail ($ip, $host)";
  41.  
  42. //adres zwrotny
  43. $mailHeader = "Content-type: text/plain; charset=utf-8";
  44.  
  45. //funkcja odpowiedzialna za wysłanie e-maila
  46. @mail($email, 'Formularz kontaktowy', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  47.  
  48. //komunikat o poprawnym wysłaniu wiadomości
  49. echo 'Wiadomość została wysłana';
  50. } else {
  51. echo 'Adres e-mail jest niepoprawny';
  52. }
  53.  
  54. } else {
  55. //komunikat w przypadku nie powodzenia
  56. echo 'Wypełnij wszystkie pola formularza';
  57. }
  58.  
  59. //--- koniec formularza ---
  60. }
  61. ?>


Ten post edytował master89 9.02.2013, 13:22:03
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 13:20:50
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


I z czym masz problem? Z chwilą poprawnego wysłania formularza w php, robisz przekierowanie. Jak chcesz to zrobić w ajax, to dokładny opis masz w dokumentacji http://api.jquery.com/jQuery.ajax/ i przykładach.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 13:24:36
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


W tym, że nie znam się na PHPie. A tym bardziej na Ajaxie. Byłbym wdzięczny jak mógłbyś mi pomóc rozwiązać ten "problem". Bo nie wiem jak to zrobić.

pozdraiwam
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 13:26:24
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Rozwiązanie już padło, pomyśl trochę.
Zamień 49 linijkę na header i gotowe.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 13:32:02
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


header("contact.html'); questionmark.gif?

nie wiem jak dziala header... możesz mi powiedzieć co muszę zrobić zeby przechodziło na podstronę contact.html??

z góry dziekuję!
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 13:34:27
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Tak, z tym że musi być tak jak tam opisali.
  1. // lub
  2. header('Location: ./sciezka/do/pliku/costam.html');


cholerne parsowanie kodu, psuje efekt na forum.

Ten post edytował !*! 9.02.2013, 13:35:41


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 14:07:23
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


A teraz chciałbym wstawić do tego linka

  1. header('Location: contact.html');


odnośnik do miejsca na stronie. Jak to się robi?
Wiem, że w html wstawia się
  1. #miejsce
.
A w phpie? Chyba ze mogę ustalić domyslne przechodzenie do miejsca na tej stronie?
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 14:51:56
Post #12





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie rozumiem pytania.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
markonix
post 9.02.2013, 14:55:55
Post #13





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Kotwice?


--------------------
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 14:56:47
Post #14





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


Naprzyklad tak jak tu na forum. Po otrzymaniu maila, że ktoś odpisał w Twoim temacie link przkierowuje Cie bezpośrednio do odpowiedzi, a nie na górę strony.

Cytat(markonix @ 9.02.2013, 14:55:55 ) *
Kotwice?

Tak
Go to the top of the page
+Quote Post
markonix
post 9.02.2013, 14:59:01
Post #15





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


No to odnośniki kotwic w header są analogiczne do normalnych linków.


--------------------
Go to the top of the page
+Quote Post
master89
post 9.02.2013, 15:02:05
Post #16





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


Cytat(markonix @ 9.02.2013, 14:59:01 ) *
No to odnośniki kotwic w header są analogiczne do normalnych linków.

W takim razie miałem gdzie indziej błąd. Ponieważ po zastosowaniu takiego kodu wyskoczył błąd bazy.
Go to the top of the page
+Quote Post
markonix
post 9.02.2013, 21:17:12
Post #17





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Co ma przekierowanie do błędów bazy danych... sciana.gif


--------------------
Go to the top of the page
+Quote Post
master89
post 10.02.2013, 08:48:25
Post #18





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.05.2011

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


O co Ci chodzi? Przecież wyraźnie napisałem:
Cytat(master89 @ 9.02.2013, 15:02:05 ) *
W takim razie miałem gdzie indziej błąd.

Go to the top of the page
+Quote Post
markonix
post 10.02.2013, 12:31:31
Post #19





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Zacytuj drugie zdanie i zupełnie zmienia się kontekst.


--------------------
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: 14.08.2025 - 09:28