Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie url przez e-mail...
Forum PHP.pl > Forum > PHP
eizomaster
Witam,
nie mogę sobie poradzić z następująca opcją:

Chciałbym wysłać aktualny adres URL na podany przez użytkownika adres e-mail.
Aktualny URL pobieram przez:

  1. $adres =$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];


Co mam zrobić dalej? Z wysłaniem takiej wiadomości na podany przez użytkownika adres e-mail sobie poradzę, jednak nie mam pojęcia jak przesłać link.
Chciałbym, aby na stronie był odnośnik typu "wyślij tą stronę", użytkownik klika na niego i pojawia się na następnej stronie prosty formularz: "wpisz adres znajomego",
w treści tego maila byłby m.in. link do podstrony, z której ktoś wyśle maila.
tehaha
no link wsadzasz w treść wiadomości.....nie bardzo rozumiem, skoro umiesz sobie pobrać url i umiesz wysłać maila do użytkownika to z czym problem?
eizomaster
Problem polega na tym, że jesli wstawię $adres w pliku wykonawczym (mail.php), ktory wysyla maila,
wiadomosc dochodzi z adresem www.costam.pl/mail.php a chciałbym zeby adres byl do podstrony,
na ktorej znajduje się odnośnik "wyślij tą stronę do znajomego".

Nie wiem jak wyslać taki url na maila. Nie chcę też ręcznie wpisywać tego linku, ponieważ takich podstron
mogą byc tysiące.
erix
W tablicy $_SERVER masz jeszcze wartość QUERY_STRING, podejrzewam że tego szukasz.
eizomaster
Dzieki za podpowiedź,

niestety w dalszym ciągu nie wiem jak mam pobrać, aktualny adres strony i wysłać go na email sad.gif
Ja to wymyśliłem tak, że mam jakąś podstronę a na niej guzik... naciskam go i otwiera mi się nowe okno z formularzem:

Twoje imie:
Adres e-mail znajomego:

i po naciśnięciu guzika "Wyślij" ktos dostaje maila z linkiem do tej podstrony, z której wysłana została ta wiadomość.
Problem polega na tym, że przesyła mi się link do tego nowego okna z formularzem sad.gif
Jak to można prosto zrobić?
tehaha
zrób najpierw formularz i ten skrypt do wysyłania maile, w formularzu w action ustawisz ten skrypt wysyłający, a w tym skrypcie wysyłającym:
  1. $url = $_SERVER['QUERY_STRING'];
i to będzie ten adres
eizomaster
Czy może być taka opcja, że $_SERVER['QUERY_STRING']; mam wyłączone na serwerze?
Wstawię może moje "skrypty" tongue.gif zapewne mnie wysmiejecie jak zobaczycie to rozwiazanie, ale inaczej nie potrafie sad.gif
Więc tak:

mam sobie strone np. jakaś-domena.pl/podstrona250.php a w niej m.in:
  1.  
  2. <form action="mail.php" method="post">
  3. <input type="submit" name="submit" value="Wyślij" class="guzik"></form>


nie ma w tym formularzu zmiennych (chce tylko guzik "wyślij tą stronę", a następnie w nowym oknie "Twoje imię" i kolejny guzik "OK", który wyśle link.
i wymyśliłem to tak:

skrypt mail.php
  1. <?php
  2.  
  3. // ta funkcja ma stwierdzic, ze poprzednio nie podalem zmiennych
  4. if (!empty($_POST['imie']) && !empty($_POST['email'])) {
  5.  
  6. $adres = $_SERVER['QUERY_STRING'];
  7. $tytul = 'Mail z linkiem'';
  8. $message = "<b>nadawca wiadomosci: </b> $_POST[imie] <br />
  9. <b>adres:</b> $adres";
  10.  
  11. $naglowki = "From: $_POST[email] <$_POST[email]>".PHP_EOL;
  12. $naglowki .= "MIME-Version: 1.0".PHP_EOL;
  13. $naglowki .= "Content-type: text/html; charset=utf-8".PHP_EOL;
  14.  
  15.  
  16. @mail("$email","$tytul","$message","$naglowki")
  17. or die('Nie udało się wysłać wiadomości. Może sprawdź jeszcze raz?');
  18.  
  19. // jak powodzenie to
  20.  
  21. echo 'Wysłałeś wiadomość';
  22. }
  23.  
  24. // lub niepowodzenie - to ma sie wyswietlac jak nacisnie sie guzik - wyslij link
  25. else echo '
  26.  
  27. <form action="mail.php" method="post">
  28. <tr>
  29. <td>Imię:</td>
  30. <td><input type="text" name="imie" style="width: 250px"></td>
  31. </tr>
  32. <tr>
  33. <td>Adres e-mail:</td>
  34. <td><input type="text" name="email" style="width: 250px"></td>
  35. </tr>
  36. <tr>
  37. <td>&nbsp;</td>
  38. <td><input type="submit" name="submit" value="Wyślij" class="guzik"></td></form>
  39. ';
  40.  
  41. ?>



Może dlatego nie wysyła bo zamotałem z tym formularzem?
Tylko, że nie wiem jak w inny sposób można wywołać wysyłanie maila jakimś guzikiem (w tym momencie pobrać aktualny adres strony)
następnie wyświetlić nowe okno, w którym dopiero będzie pole wpisz imie i adres odbiorcy.
user2
A może spróbuj w formularzu w mail.php dostawić:
  1. <input type="hidden" name="ref" value="'.$_SERVER['HTTP_REFERER'].'" />

Potem przy wysyłaniu będziesz miał:
  1. $adres = $_POST['ref']

O to chodzi?
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.