Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz i zagnieżdżanie
Forum PHP.pl > Forum > PHP
Less
Cześć!

Mam problem,

1.

mam stronę w html i formularz.
Chciałbym, aby przy wysyłaniu takiego formularza, nie otwierał się program pocztowy (może być problem w kawiarenkach ), ale aby treść formularza była przesyłana bezpośrednio na adres mailowy ze strony.

Słyszałem, że można to zrobić w PHP. Jak? Napisać jakiś skrypt odbierający, jaki ? Ustawić jakoś nagłówki, jak ?


2.

Dodatkowy problem: jak zagnieździć taki skrypt PHP w stronie html...?


Proszę o pomoc i uwagi i bardzo dziękuje.
Less
nexis
Zapoznaj się z funkcją mail" title="Zobacz w manualu PHP" target="_manual lub biblioteką PHPMailer.
Less
Oto prosty kod wpisany na stronie index.php
o poniższej treści,

nie wysyła maili, które wpadałyby do wybranej skrzynki !


Dlaczego ? Ktoś wie ?

  1. <?$mailTo = "adresat@gdzies.pl";$mailSubject = "Test";$mailBody = "Bla, bla, bla...";$mailHeaders = "From: nadawca@gdzies.pl";mail($mailTo, $mailSubject, $mailBody, $mailHeaders);?>


Pozdr worriedsmiley.gif
Less
barat
a wywala jakiś błąd ? może funkcja mail() jest zablokowana ?

Poczytaj o PHPMailer - dużo wygodniejszy i ciekawszy sposób wysyłania maili ze strony WWW smile.gif
Less
Dzięki...

Nie, nie wywala błedu... ale moze być zablokowane... Jak instalować te biblioteki na czyimś serwerze ?

:roll2:
Less

Poszedłaem dalej w testowaniu funkcji mail... ale nie wychodzi...

Sytuacja: Dwa serwery, oba obsługuja PHP, na jednym mam formularz, który przesyłany jest do drugiego, gdzie odbiera go skrypt:

  1. <?
  2. $mailTo = "ktos@gdzies.pl";
  3. $mailSubject = $_POST['Temat'];
  4. $mailBody = $_POST['Uwagi'];
  5. $mailHeaders = "From: ".$_POST['Email']."rn";
  6.  
  7. @mail($mailTo, $mailSubject, $mailBody, $mailHeaders);
  8. ?>


Niestety wywala się już od razu na drugiej linii, bład:

"Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/webicon1/public_html/zewnetrznapoczta/versuspost.php on line 2"


O co chodzi ? Któryś serwer to blokuje ?

Proszę o pomoc
Less sad.gif
Darti
Może zamień na początku <? na <?php bo niekiedy konfiguracja php nie kuma samego <?

Edit:
no właśnie: Wyskakiwanie z html'a
Less
Niestety nic nie pomogło... dopisanie <?php ... ?>

W formularzu był znacznik: enctype - ale usunięcie go, też nic nie dało...



Less
worriedsmiley.gif
Darti
To pokaż/wklej tutaj kilka pierwszych linii pliku versuspost.php bo nie coś wierze że to co pokazujesz jest tym plikiem
Less
Formularz w uproszczonej wersji, wygląda tak:

  1. <form action="http://www.gdzies.pl/zewnetrznapoczta/post.php" method="post">
  2. <legend><strong>Skorzystaj z poniższego formularza, aby przesłać wiadomość</strong></legend>
  3. <p><strong>Imię</strong>: <input type="text" name="Imie" value="Jan" size="30" maxlength="40" style="jakiestam"></p>
  4. <p><strong>Nazwisko</strong>: <input type="text" name="Nazwisko" value="Kowalski" size="30" maxlength="40" ></p>
  5. <p><strong>Adres e-mail</strong>: <input type="text" name="Email" value="e-mail" size="30" maxlength="40" ></p>
  6. <p><strong>Temat wiadomości</strong>: <input type="text" name="Temat" value="Temat wiadomości" size="30" maxlength="40" > </p>
  7. <p><strong>Wpisz swoją wiadomość:</strong></p>
  8. <p><textarea name="Uwagi" rows="8" cols="45" >
  9. tutaj jest miejsce na twoją wiadomość (do 1024 znaków)
  10. </textarea></p>
  11. <input name="Submit" type="submit" value="Wyślij wiadomość">
  12. <input name="Reset" type="reset" value="Usuń informacje">
  13. </form>



Less
tiredsmiley.gif

Tak to wygląda: (teraz)


  1. <?php
  2.  
  3. //komentarz
  4. $mailTo = "ktos@gdzies.pl";
  5. $mailSubject = $_POST['Temat'];
  6. $mailBody = $_POST['Uwagi'];
  7. $mailHeaders = "From: ".$_POST['Email']."rn";
  8.  
  9. @mail($mailTo, $mailSubject, $mailBody, $mailHeaders);
  10. //komentarz
  11. ?>


withstupidsmiley.gif Less

Versuspost.php = post.php

Ściśle mówiąc, wywala się na 4 linii...

Słyszałem... że to może mieć coś wspólnego z ochroną przed spamami... jakaś blokada... na serwerze...


questionmark.gif?
Less
Darti
To coś powyżej jest OK (przynajmniej w miejscu, gdzie błąd powstaje), możesz ewentualnie zmienić na pojedyncze cudzysłowy ($mailTo = 'ktos@gdzies.pl'; ) ale to raczej nic nie zmieni. Czy przed wklejeniem na forum kodu z pliku, który generuje błąd, zmieniasz coś ? kasujesz, edytujesz ?
Less
Nie rozumiem? Stale robię podmianki, aby wykryć, gdzie tkwi bład...


******************************************************

Na zakończenie:

Administrator serwera przepisał wszystko litera w literę i zadziałało... Coś nie tak z kodowaniem pliku... prawdopodobnie...

Dzięki wszystkim za pomoc...

P.S. ...a swoją drogą, ciekawy problem... sprawdzę dlaczego tym razem wystąpił...



Less
aarambo.gif



*******************************************************

Jeszcze ostatnie... było kodowane w ANSI... powinno być w Unicode, czy UTF-8 ? Podobno to nie ma znaczenia...

Less
cool.gif
LonelyKnight
Nic w tym ciekawego. Po prostu pewnie miałeś jakieś znaki, których nie wiedziałeś w, jak zakładam, notatniku...

Co do kodowania - radzę UTF-8.
Less
A tak przy okazji... jak zrobić, aby przy wysyłaniu tego formularza otwierało się nowe okno z informacją i nie zamykało okno strony formularza ?


i drugie ewentualnie: aby wpisy w formularzu się kasowały (a więc uruchamiał się jakiś skrypt jednocześnie z łączeniem) ?



Less
smile.gif

*********************************************
A propos pktu 1. czy trzeba formularz zrobić na dodatkowo otwieranym oknie (np przez JS) ? Czy mozna inaczej...


i dodatkowo: jak zrobić, aby po wysłaniu, oglądający automatycznie wrócił do poprzedniej strony...


i jeszcze, jak zrobić, aby np mail nadającego... wpisany w formularzu, pojawił się w wiadomości w wierszu: od (tak jak w zwykłym wysyłanym mailu) questionmark.gifquestionmark.gif




Please... o info, gdzie to znajdę
Dzięki
Less
ohmy.gif

Proszę o pomoc... tak jak pisałem wyżej...


Dzięki
Less
Darti
To może zamiast przesyłać dane z formularza do pliku post.php ustaw action tak: action="" a przed formularzem sprawdź czy $_POST['Submit']=='Wyślij wiadomość' i jeśli tak to zrób include('post.php').
Dzięki temu możesz zachować wartości formularza stosując takie coś:
  1. <input type="text" name="Nazwisko" value="<?php echo $_POST['Nazwisko']; ?>" size="30" maxlength="40" >


A co do wartości od: to dla windowsowych klientów trzeba jeszcze ustawić nagłówek Reply-To:
Less
Wydaje mi się, że kod html wpisany przez Ciebie... się nie wpisał...


Less
smile.gif
Darti
Cytat(Less @ 8.06.2007, 12:00:17 ) *
Wydaje mi się, że kod html wpisany przez Ciebie... się nie wpisał...
Less
smile.gif


ja wpisałem tylko jedną linijkę kodu html (z zagnieżdżonym kawałkiem PHP). No przecież nie będę za Ciebie aplikacji pisał bo za to oczekiwałbym zapłaty tongue.gif
Less
No dobra... jeśli to tak miało być... to i tak dzięki za nakierowanie...

Less



A swoją drogą... chętnie się odwdzięczę...


Less guitar.gif



Wielkie dzięki Darti za propozycję... ile by to kosztowało? ale właściwie... to niewielka rzecz i już to prawie zrobiłem... a poza tym to mój "niekomercyjny" projekt...


Less
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.