![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
napisałem sobie skrypt prostego formularza do wysyłania mejli ze strony. W końcu wszystko działa. Ale tylko na stronie głównej (index.html) na pozostałych stronach nie - dane nie są w ogóle pobierane z pól formularza. Mejl przychodzi pusty. ![]() Nie mam nawet zielonego pojęcia jak szukać rozwiązania do czegoś takiego Dziękuję |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 2 Dołączył: 8.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Proszę.
Kod, kod, kod. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
no tak... =]
Kod <head> <!-- żeby były polskie znaki --> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/> <!-- ostylowanie wyświetlania wiadomości --> <style type="text/css"> html { background-color: #f0f0f0; } div { text-align: center; font-family: Calibri, Arial, sans-serif; font-size: 14pt; font-weight: bold; margin: auto; margin-top: 6em; padding: 3em; border: solid 1px #7d7d7d; background: url(../images/primary_bg.png) repeat-x; width: 40%; overflow: hide; -moz-border-radius: 20px; -webkit-border-radius: 20px; } div a { text-decoration: none; color: #898989; } div a:hover { text-decoration: none; color: #f15a22; } </style> </head> <!-- skrypt formularza --> <?php if (empty($_GET['name'])) { exit (" <div> <p>Podaj swoje imie i nazwisko</p> <a href='../index.html'>Powrót</a> </div> "); } if(empty($_GET['mail']) && (empty($_GET['phone']))) { exit (" <div> <p>Podaj numer telefonu kontaktowego lub adres e-mail</p> <a href='../index.html'>Powrót</a> </div> "); } $wiadomosc = " Imię: ".$_GET['name']." Firma: ".$_GET['firma']." Telefon kontaktowy: ".$_GET['phone']." Adres e-mail: ".$_GET['mail']." "; $tematyka = "ze strony Activnetu"; mail ("mojito@agencja-mojito.pl", $tematyka, $wiadomosc); echo " <div> <p>Dziekujemy za wysłanie wiadomości. <br /> Skontaktujemy się w ciągu 48h.</p> <a href='../index.html'>Powrót</a> </div> "; ?> a sam formularz w htmlu wygląda tak: Kod <form action="php/sendmail.php" method="get" enctype="text/plain"> <div> <label for="name">Imię i Nazwisko</label> <input id="name" type="text" name="name" value="" size="15" maxlength="40" /> </div> <div> <label for="firma">Firma</label> <input id="firma" type="text" name="firma" value="" size="15" maxlength="40" /> </div> <div> <label for="phone">Tel. Kontaktowy</label> <input id="phone" type="text" name="phone" value="" size="15" maxlength="40" /> </div> <div> <label for="mail">E-mail</label> <input id="mail" type="text" name="mail" value="" size="15" maxlength="40" /> </div> <div> <input id="submit" name="submit" class="submit" type="submit" value="wyślij" /> </div> </form> i jeszcze jedno przy okazji pytanie: dlaczego nie działa tu $_POST, tylko $_GET ? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Bo przecież zadeklarowałeś w formularzu, że ma używać własnie get'a zamiast post'a:
Kod <form action="php/sendmail.php" method="get"
-------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
no to wiem...
ale zastanawia mnie dlaczego nie zadziała metoda POST, kiedy ją właśnie zadeklarowałem w formularzu i nią pobierałem z tego formularza dane w php. Jak było POST, to w mejlu przychodziły puste pola. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 4 Dołączył: 3.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
zamieniasz w index.html z:
na
i w kodzie zamieniasz każde $_GET na $_POST czyli z:
na
Do testów zasugerowałbym wpisanie w kodzie tuż obok mail() wpisać print_r($_POST); - to Ci pozwoli sprawdzić czy dane dochodzą czy nie. Ten post edytował Istalacar 9.02.2009, 23:27:16 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wskazówkę, ale tak właśnie miałem kiedy mi nie działało. Próbowałem różnych rzeczy i w końcu nieco zrezygnowany zamieniłem wszystkie POST na GET i zaczęło działać. Dane dochodziły. Ale tylko ze strony głównej. (Dodam od razu, że kod html dla formularza jest na każdej podstronie taki sam
![]() A to, czy dane dochodzą czy nie widzę już na stronie, bo nie da się po prostu wysłać formularza - jeżeli zmienne są puste skrypt przerywa działanie. I tak się właśnie dzieje na podstronach. Wypełniam pola i wyświetla się komunikat, że są puste. Można samemu się przekonać: i klikając tutaj przejść na stronę testową i wejść na 'oferta', realizacje' albo 'o firmie'. Ten post edytował mojito 9.02.2009, 23:40:13 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 4 Dołączył: 3.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
kod na tamtej stronie odrobinę różni od tego który nam podałeś:
(tylko część kodu, nie chciało mi się poprawiać ani brać całości). Błąd który mi się mocno rzucił w oczy to: name="Imię i nazwisko", 1) w name staraj się unikać polskich liter, 2) ja osobiście mam w nawyku zamiast spacji używanie "_" - na wszelki wypadek, 3) jeśli w kodzie php odbierasz tak jak podałeś wyżej "name" to nie dziw się że nie może znaleźć "Imię i nazwisko" |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
No to się popisałem...
![]() chyba za długo po prostu nad tym siedzę i zapomniałem przekopiować kod jak już poprawiłem błędy w pliku index.html. Ale to mnie nauczy korzystać z include ![]() Wielkie dzięki za otwarcie oczu. Pozdrawiam. P.S. Ale dalej nie wiem dlaczego metoda POST nie działała... pytanie tak dla czystej satysfakcji zdobywania wiedzy Ten post edytował mojito 9.02.2009, 23:56:53 |
|
|
![]()
Post
#10
|
|
Grupa: Zablokowani Postów: 43 Pomógł: 1 Dołączył: 25.01.2009 Ostrzeżenie: (10%) ![]() ![]() |
A ni prosciej bedzie wstawic ponizszy kod?
Albo zaincludowac twoj do wszystkich poddstron? Kod PHP mozna tez wstawic do pliku html... uzywajac opcji SCRIPT Kod <?php
// sprawdzamy, czy zmienna $submit jest pusta if (empty($_POST['submit'])) { // wyświetlamy formularz echo "<table border=\"0\"><form method=\"post\"> <tr> <td>Treść wiadomości</td> <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td> </tr> <tr> <td>Imię, nazwisko lub nick</td> <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td> </tr> <tr> <td>Adres e-mail</td> <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td> </tr> <tr> <td> </td> <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\"> <input type=\"reset\" value=\"Od nowa\"></td></form> </tr> </table>"; } // sprawdzamy, czy zmienne przesłane z formularza nie są puste elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) { // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość // zmienna $message zawiera treść wiadomości $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]"; // zmienna $header zawiera przede wszystkim adres zwrotny $header = "From: $_POST[imie] <$_POST[email]>"; // funkcja mail() za pomocą której wiadomość zostanie wysłana @mail("mail@znajdzmpe.info","Wiadomosc ze strony WWW","$message","$header") or die('Nie udało się wysłać wiadomości'); // wyświetlenie komunikatu w przypadku powodzenia echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>"; } // lub w przypadku nie wypełnienia formularza do końca else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>"; ?> |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie byłoby prościej,
bo już wszystko działa ![]() dzięki |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:11 |