Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z mail()
Forum PHP.pl > Forum > Przedszkole
Star
Witam
Chce napisać prosty skrypt do wysyłania maili. Mam taki kod :
  1. $title = $_POST["nick"];
  2. $temat = "Od: $title";
  3. $wiadomosc = $_POST["message"];
  4. if (mail("costam@gmail.com",$temat, $wiadomosc ))
  5. {
  6. echo "mail został wysłany";
  7. }
  8. else
  9. {
  10. echo "mail  NIE został wysłany";
  11. }


Zmienna wiadomosc jest od pola textarea i nie wysyła mi w ogóle treści tego pola, mail dochodzi poprawnie lecz bez treści. Co może być tego przyczyną?
ghastblood
  1. echo '<pre>';
  2. var_dump($_POST);
  3. echo '</pre>';
Star
Wyświetla poprawnie. Dodam że gdy dodałem jakiś tekst do textarea, np. <textarea >blabla</textarea> to gdy wpisze coś za tym tekstem, np blabla bla bla bla, to wysyła tylko ten tekst który był już wpakowany do textarea kodem html
ghastblood
po 18 będę w domu to zobaczę na to dokładnie teraz jestem w pracy i siedzę na telefonie więc nie mam jak sprawdzić.

a czy server jest skonfigurowany pod SMTP ?
Star
Tak, wiadomości z pół input się wysyłają, nie chcą tylko z textarea
Gatzu
Wydaje mi się, że gdyby nie był skonfigurowany pod SMTP, to by nie otrzymywał żadnego maila.

Być może problem tkwi w kodzie html. Np jakiś niedomknięty cudzysłów w textarea, ewentualnie zamiast

  1. $_POST["message"]
powinno być

  1. $_POST['message']
fate
Wysyłasz maila od razu po wejściu na formularz a nie po kliknieciu w submit - to jest przyczyna, inputa od masz pewnie domyślnie uzupełnionego i nie zmieniasz w nim treści.
Kerth
A przypisałeś wartość name do pola textarea tak samo jak to pewnie masz w input?

Przykład:
  1. <textarea name="contact" style="width:485px;height:250px; ">
Star
Kerth, oczywiście że mam ustawiona wartość name, gdybym nie miał to tekst który jest automatycznie wrzucony do textarea tez by się nie wysyłał.
Star
Fate, w jaki sposob moge wyslac po wejsciu na formularz ? nie rozumiem o co z tym chodzi.

Mail zostaje wyslany jak klikne w submit, przynajmniej dopiero po kliknieciu dochodzi wiadomosc
patwoj98
Chłopaki piszą, że masz ustawione wysyłanie bez jakiegokolwiek ifa typu:

  1. if($_POST['submit']){
  2. mail();//wysyłąsz maila
  3. }


Jak nie ma czegoś podobnego do tego to problem znaleziony - mail wysyła się od razu.

Skoro i tak tu odpowiadam to popraw może trochę kod:

  1. $temat = "Od: ".$_POST["nick"];


Mniej problemu, a tą zmienną title usuń.


EDIT: daj kod formularza HTML i działania całego kodu PHP.
Star
ale nie ma prawa wyslac się sam poniewaz kod od wysylania maila nie jest w tym samym pliku co formularz tylko w innym

to jeden plik:
  1. <form action="mail.php" method="post">
  2. <table>
  3. <tr>
  4. <td>
  5. <textarea id="message" name="message" cols="45" rows="15">
  6. Wpisz coś:
  7. </textarea> </center>
  8. </td>
  9. </tr>
  10. <tr>
  11. <td><input type="submit" value="Wyślij" /></td>
  12. <input type="hidden" name="nick" value="NICK">
  13. </tr>
  14. </table>
  15. </form>


a to drugi
  1.  
  2. $title = $_POST["nick"];
  3. $temat = "Od: $title";
  4. $wiadomosc = $_POST["message"];
  5. if(mail("cos@tam.com",$temat, $wiadomosc ))
  6. {
  7. echo "mail został wysłany";
  8. }
  9. else
  10. {
  11. echo "mail  NIE został wysłany";
  12. }
  13. ?>

patwoj98
1. Skasuj 'wpisz cos...' i zrob to w znaczniku textarea przy uzyciu atrybutu placeholder.
2. Ustaw jakis name dla submita.
3. Ustaw naglowki maila.
4. Jak domykasz inputy to wszedzie.
5. Zmien cudzyslow na apostrofy przy zmiennej post.
Star
Pomogło, Dzięki Patwoj smile.gif
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.