Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wysyłanie email z treściąścią zależną od linka
Forum PHP.pl > Forum > PHP
NorQ
Witam, poszukuję skryptu PHP który będzie wysyłać e-mail. Jednak nie będzie to formularz, gdyż treść będzie się znajdować w linku.

Więc jeżeli będę chciał wysłać jakiś mail za pośrednictwem danego skryptu, to link musi być ustalony.

NP.
Cytat
www.mail.com/skrypt.php?mail=witaj na naszej stronie, twój kod aktywacyjny to: sadsfdfsads


I skrypt.php wysyła maila z treścią podaną w linku.

Więc, nadawca, tytuł i inne będą się znajdować w skrypcie, w przypadku treści będzie to link.

Wiadomo o co chodzi?
nospor
Cytat
Jednak nie będzie to formularz, gdyż treść będzie się znajdować w linku.

...
No to zamiast z $_POST pobieraj dane z $_GET
NorQ
Niezbyt rozumiem, mógłbym prosić o opis jak to wykonać? Bądź gotowy skrypt który będzie mieć treść w linku, a nadawca, temat itd będą w skrypcie.(To nie ma być formularz)!

// Czyli że jak uruchomię skrypt, to wyśle mi maila według szablonu zamieszczonego w kodzie. Jedynie treść oraz odbiorca(danego maila) będzie się znajdować w linku.
Micchaleq
Nikt raczej nie będzie pisał za Ciebie,

Jeżeli chcesz używać GET-a to przekazujesz do adresu parametry które interesują np index.php?imie=Michal&nazwisko=Kowalski

i następnie możęsz sobie to pobrać
$_GET['imie'] // bedzie tu Michal
$_GET['nazwisko'] // będzie tu Kowalski
NorQ
A jak umieścić treść w kodzie że nie trzeba używać S_GET ani S_POST?
Micchaleq
Cytat(NorQ @ 21.02.2012, 15:14:03 ) *
A jak umieścić treść w kodzie że nie trzeba używać S_GET ani S_POST?


kompletnie już nie rozumiem?

skoro chcesz aby twoj email zawierał dane użytkownika to musisz poprosić go o ich podanie przez formularz.

Jeżeli chcesz przypisać jakies wartości na stałe to już mowa o zmiennych.

Ewentualnie kompletnie nie rozumiem o co Ci chodzi.
NorQ
Cytat(Micchaleq @ 21.02.2012, 15:17:51 ) *
kompletnie już nie rozumiem?

skoro chcesz aby twoj email zawierał dane użytkownika to musisz poprosić go o ich podanie przez formularz.

Jeżeli chcesz przypisać jakies wartości na stałe to już mowa o zmiennych.

Ewentualnie kompletnie nie rozumiem o co Ci chodzi.


Ja tworzę skrypt, który będzie wysyłać dane od konta gry, link chcę wstawić w kod moda serwera. Np. Że jak ktoś chce odzyskać hasło, w trakcie gry wysyła się specjalny link.
Micchaleq
Wydaje mi się, że wszystkie odpowiedzi na twój problem padły wyżej.

Jeżeli chcesz przesyłać maila z jakimiś stałymi wartościamy to masz je zapisane w zmiennych, jeżeli chcesz je przekazywać przez adres to dajesz sobie

  1. < a href="przypomnij.php?haslo=".$haslo."&login=".$uzytkonik.">Przypomnij</a>


i w pliku przypomnij z pewnością powinineś mieć w takim przypadku metodu $_GET i funkcje mail.

// jeżeli chcesz to robić jakoś automatyczniej czy coś to już z pewnością js się kłania.

PS: Po co komu dane w trakcie gry?
NorQ
Dany link wstawię w kod serwera gry. Jeżeli gracz będzie chciał przypomnieć hasło to serwer uruchamia specjalny link do skryptu.

A skrypt wykonuje to:
Odbiorca - (wartość podana w linku wysłanym przez serwer) S_GET
Treść - (wartość podana w linku wysłanym przez serwer) S_GET
Tytuł - (wartość podana w kodzie PHP) Nie będzie to s_get, ani s_post. Tytuł będzie podany w kodzie skryptu.
Nadawca - (wartość podana w kodzie PHP) Nie będzie to s_get, ani s_post. Nadawca będzie podany w kodzie skryptu.

Podam kod skryptu:
  1. <?php
  2.  
  3. if ($_POST['bt'] == "wyslij") { /* sprawdzam czy formularz został wysłany */
  4. if (($_POST['email'] != "") AND ($_POST['tytul'] != "") AND ($_POST['tresc'] != "")) { /* sprawzdam czy każde pole jest wypełnione */
  5. $send = mail("norq@onet.pl",$_POST['tytul'],$_POST['tresc'],"From: Wiadomość ze strony <".$_POST['email'].">");
  6. if ($send) /* sprawdzam czy wiadomośc została wysłana */
  7. $message = "Wiadomość została wysłana...";
  8. else
  9. $message = "Widomość nie została wysłana, ponów próbę...";
  10. } else
  11. $message = "Nie wypełniono wszystkich pól...";
  12. }
  13.  
  14. ?>
  15.  
  16. <html>
  17. <head>
  18. <title>Wysyłanie widomości e-mail</title>
  19. <meta http-equiv="content-type" content="text/xml; charset=iso-8859-2" />
  20. <meta http-equiv="content-language" content="pl" />
  21.  
  22. </head>
  23. <body>
  24. <p><?php echo $message ?></p>
  25. <form action="" method="post">
  26. e-mail: <input type="text" name="email" /><br />
  27. tytuł: <input type="text" name="tytul" /><br />
  28. treść: <textarea name="tresc"></textarea>
  29. <input type="submit" name="bt" value="wyslij" />
  30. </form>
  31. </body>
  32. </html>

* Email podany w kodzie, czyli norq@onet.pl to nadawca.
Micchaleq
Cytat
Witam, poszukuję skryptu PHP który będzie wysyłać e-mail. Jednak nie będzie to formularz, gdyż treść będzie się znajdować w linku.


Jeżeli treści nie ustalisz na sztywno, bądz nie przekarzesz jej przez formularz to sama się nie wyczaruje.
Aby treść znalazła się w linku również trzeba ją tam umieścić albo ze stałych wartości, albo z formularza.

Formularz możesz przesłać postem albo getem ty wysyłasz postem i to w zasadzie na przykładzie który podałeś nie ma większej rożnicy.
// Get jest moim zdaniem bardziej niebezpieczny.

Zakładam, że użytkownik nie jest zalogowany skoro chce przypomnieć sobie dane, więć musi podać swoje jakieś prywatne dane a do tego niezbędby jest formularz.

Podając te dane możesz je przekazać za pomocą posta czy get-a do funkcji która wyszuka odpowiednie wartości w bazie danych czy innym źródle w którym znajdują się informacje i je prześle odpowiednio podstawiająć do funkcji mail.

Jeżeli nie pomaga Ci to co powyżej napisałem to nietety nie potrafię Ci dalej pomóc.
NorQ
Jednak zrobię wszystko na GET, tyle że pojawił się problem - linijka 5(patrz na kod wyżej). Jak ten typ kodu:
Cytat
$send = mail("norq@onet.pl",$_POST['tytul'],$_POST['tresc'],"From: Wiadomość ze strony <".$_POST['email'].">");

A w szczególności
Cytat
mail("norq@onet.pl",[...]

Jak zamienić na GET?

Mógłby ktoś odpowiedzieć? tongue.gif
Jak usunąć button "wyslij" i zrobić tak żeby się wysyłało po wejściu na url...

Oto kod submita, który zadziała dopiero po naciśnięciu inputa "submit".

  1. if ($_POST['bt'] == "wyslij")


Jak zamienić go na taki, który uruchamia się automatycznie po wejściu na skrypt z strony?
Micchaleq
Wiesz co kolego wydaje mi się, że kompletnie nie czytasz tego co się do Ciebie pisze.
Jeżeli nie pomagają Ci takie wskazówki powinieneś napisać ogłoszenie ze zapłacisz jakieś 10-20zł i ci to ktoś myśle napisze.

Mam dobry dzień więc po raz 4 napiszę Ci to samo co wyżęj.

W przypadku kiedy użytkownik jest ZALOGOWANY i chcesz mu przesłać koniecznie na emaila token

to musisz jakoś wykryć w swoim skrypcie nick tego użytkownika np przez sesje i przypuśćmy ze masz go zapisanego w $użytkownik

a więć tworzysz sobie link:
<a href="skrypt.php?user=".$uzytkownik.">wyslij</a>

i teraz w pliku skrypt.php pobierasz sobie go np $user = $_GET['user']; i tym sposobem masz w skrypt.php zmienną $user która przechowuje przesłanego użytkownika.

jeżeli zaś użytkownik nie jest zalogowany bez formularza się nie obejdzie !

Co do twojego powyżej pytania
przypisuj sobie zmienne z $_POST czy z $_GET do zmiennej i wtedy wklejaj do funkcji mail. Pozwoli Ci to łatwiej szukać błędu i ułatwi ci wpisywanie danych do funkcji np:

  1. $tytul = $_POST['tytul'];
  2. $send = mail("norq@onet.pl", $tytul , $_POST['tresc'],"From: Wiadomość ze strony <".$_POST['email'].">");

itd.

A jeżeli chcesz robić to bez wiedzy użytkownika bez klikania i wysyłania to jedyne co możesz zrobić to:

to musisz mieć jakies dane o tym użytkowniku więc jeżezli jest zalogowany to zasada taka sama jak w przypadku linku tylko zamiast linku musisz wpisać w kod strony treść funkcji która ma się wykonać. // co powinno być oczywiste.

czyli musisz sobie dać jakiegoś if-a
  1. if(user = login) mail();
NorQ
Źle mnie zrozumiałeś,

Skrypt będzie mi służyć do przypominania hasła na serwerze gry.

W skrypcie mapy serwera (.pwn) będzie podany link, jeżeli gracz będzie chciał sobie przypomnieć hasło, mapa uruchamia link, w którym jest treść z hasłem. Następnie skrypt PHP po otrzymaniu polecenia mapy, przesyła to na zarejestrowany mail w grze.

A więc, mapa będzie sama zamieniać hasło, oraz mail w linku następnie go uruchamiając. Mapy po includowaniu nie można odczytać(kod źródłowy). A link który uruchamia mapa jest uruchamiany na serwerze a nie w własnej przeglądarce !

Więc zostały mi te dwie rzeczy:
1) Jak umieścić e-mail nadawcy w S_GET (email nadawcy w kodzie to email@email.com [nie podam własnego publicznie])
2) Jak usunąć 'submit' oraz zrobić tak że po wejściu na link skrypt sam się uruchamia.

Mój kod:
  1. <?php
  2.  
  3. if ($_POST['bt'] == "wyslij") { /* sprawdzam czy formularz został wysłany */
  4. if (($_GET['email'] != "") AND ($_GET['tytul'] != "") AND ($_GET['tresc'] != "")) { /* sprawzdam czy każde pole jest wypełnione */
  5. $send = mail("email@email.com",$_GET['tytul'],$_GET['tresc'],"From: GrandStreet;");
  6. if ($send) /* sprawdzam czy wiadomośc została wysłana */
  7. $message = "Wiadomość wysłana!";
  8. else
  9. $message = "Error, proszę ponownie...";
  10. } else
  11. $message = "Wypełnij wszystkie pola.";
  12. }
  13. ?>
  14.  
  15. <html>
  16. <body>
  17. <p><?php echo $message ?></p>
  18. <form action="" method="post">
  19. <input type="submit" name="bt" value="wyslij" />
  20. </form>
  21. </body>
  22. </html>


Proszę po prostu podać mi przykład zamiany kodu. To nie będzie skrypt na stronę, jedynie będzie wysyłać e-mail z hasłem z serwera gry.
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.