Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Klikając email wstawiasz go do formularza?
Forum PHP.pl > Forum > PHP
lagos
Klikając e mail wstawiasz go do formularza?
Chodzi mi o coś takiego.
Kliknięcie w mail otwiera okno z formularzem i automatycznie wczytuje email w miejsce gdzie ma być wysłany.
Nie chodzi o otwarcie domyślnego programu pocztowego coś takiego posiadam.
Czy ktoś spotkał się z taką możliwością.
Pozdrawiam
maci4
Witam wiem że coś takiego jest zrobione w RoundCube webmail.
Zaraz zerkne, może coś wyciągne smile.gif <= niestety jestem za słaby... Za dużo tam zmiennych itp.
Napewno jest to javascript
mati0090
Na początku musisz przeszukać tekst w poszukiwaniu adresu email. Gdy już go znajdziesz zamieniasz na link, a w adresie musisz dać odnośnik do króciutkiej funkcji JavaScript która otworzy małe okno przeglądarki bez żadnych pasków narzędzi(popunder) z twoim formularzem.

Otwarcie okienka:
  1. <a target="nazwa" href="adres" onclick="window.open('adres formularza', 'Nazwa okna').focus(); return false">Adres email</a>


Podmiana adresu na link:
  1. <?php
  2. $calatresc = preg_replace("/([w.]+@[w]+.[w.]+)/i", "<a target=\"nazwa\" href=\"adres\" onclick=\"window.open('adres formularza', 'Nazwa okna').focus(); return false\">"$1"</a>");
  3. ?>


Mam nadzieję, że będzie działać.

Pozdrawiam
tadek92
Mam podobny skrypt na mojej stronie jak chcesz możesz z niego skorzystać snitch.gif

plik z formularzem kontaktowym (w moim przepadku contact.php):
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
   <title>Formularz kontaktowy</title>
   </head>
   <body>
     <?php
$tresc="$_POST[tresc]
  $_POST[imie] ";
$head="From:<$_POST[email]>";
$head.="\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8";
$user_email=$_GET['email'];

if (isset($_POST[ok])) {
$email=$_POST['user_email'];
mail("$email", "$_POST[temat]", "$tresc", "$head");
echo "Wiadomość została wysłana";}

else{

?>
<form style="text-align: center;" method="post" action="#">
<fieldset>
<input style="background:#FFFFFF;border:1px solid #555555;margin:3px 0 0 0; font-size:10px; font-weight:bold;" type="hidden" name="user_email" value="<?php echo "$user_email"; ?>"/>
Temat:
<input style="background:#FFFFFF;border:1px solid #555555;margin:3px 0 0 0; font-size:10px; font-weight:bold;" type="text" name="temat" size="33"  />
  
Podaj e-mail:
  <input style="background:#FFFFFF;border:1px solid #555555;margin:3px 0 0 0; font-size:10px; font-weight:bold;" type="text" name="email" size="33"  />
  
Podaj imię i nazwisko:
  <input style="background:#FFFFFF;border:1px solid #555555;margin:3px 0 0 0; font-size:10px; font-weight:bold;" type="text" name="imie" size="33"  />
  
Treść:
  <textarea style="background:#FFFFFF;border:1px solid #555555;margin:3px 0 0 0; font-size:12px; font-weight:bold;" name="tresc" cols="25" rows="7" ></textarea>
  
<input style="background:#FFFFFF;border:1px solid #555555;margin:3px 0 0 0; font-size:10px; font-weight:bold;" type="submit" value="Wyślij" name="ok" />
</fieldset>
</form>
<?php } ?>
</body>
</html>

na stronie na której jest link z mailem w sekcji head dajesz:
Kod
   <script type="text/javascript">
    <!--
function externalLinks()
{
if (!document.getElementsByTagName) return;

var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
var relvalue = anchor.getAttribute("rel");

if (anchor.getAttribute("href")) {
var external = /external/;
var relvalue = anchor.getAttribute("rel");
if (external.test(relvalue)) { anchor.target = "_blank"; }
}
}
}
window.onload = externalLinks;
//-->
</script>
   <script type="text/javascript">
   <!--
   function displayWindow(url, width, height) {
         var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height +       ',resizable=0,scrollbars=yes,menubar=no, left=350,top=250' );
   }
   //-->
   </script>

a tak wygląda link:
Kod
<a href=\"javascript:displayWindow('contact.php?email=adres@mail.pl',250,335)\">adres@mail.pl</a>
lagos
Dzięki właśnie o coś takiego mi chodziło.
jeszcze potrzebuje aby skrypt sprawdzał czy wszystkie pola są wypełnione.
  1. <?php
  2. $tresc="$_POST[tresc]
  3.  $_POST[imie] ";
  4. $head="From:<$_POST[email]>";
  5. $head.="\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8";
  6. $user_email=$_GET['email'];
  7.  
  8. if (isset($_POST[ok])) {
  9. $email=$_POST['user_email'];
  10. mail("$email", "$_POST[temat]", "$tresc", "$head");
  11. echo "Wiadomość została wysłana";}
  12.  
  13. else{
  14.  
  15. ?>
tadek92
Cieszę się, że mogłem pomóc. Sprawdzać czy dane pole zostało wypełnione możesz przy użyciu instrukcji if:
  1. <?php
  2. $tresc="$_POST[tresc]
  3.   $_POST[imie] ";
  4. $head="From:<$_POST[email]>";
  5. $head.="\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8";
  6. $user_email=$_GET['email'];
  7.  
  8. if (isset($_POST[ok])) {
  9. if (isset($_POST[temat])) {
  10. if (isset($_POST[email])) {
  11. if (isset($_POST[imie])) {
  12. if (isset($_POST[tresc])) {
  13.  
  14. $email=$_POST['user_email'];
  15. mail("$email", "$_POST[temat]", "$tresc", "$head");
  16. echo "Wiadomość została wysłana";
  17. }
  18. else
  19. {
  20. echo "Podaj treść!";
  21. }
  22. }
  23. else
  24. {
  25. echo "Nie podałeś imienia i nazwiska";
  26. }
  27. }
  28. else
  29. {
  30. echo "nie podałeś maila";
  31. }
  32.  
  33. }
  34. else
  35. {
  36. echo"Nie podałeś tematu!";
  37. }
  38.  
  39. else{
  40.  
  41. ?>

Pisałem to na szybko i może się trafić jakaś literówka
lagos
Brakowało w 39 lini "}"
Lecz dalej nie działa sprawdzanie.
Będe próbował czegoś innego jak zadziała napiszę.

Zrobiłem to tak .
  1. <?php
  2. $user_email=$_GET['email'];
  3.  
  4. if ((empty($_POST['tresc']) or empty($_POST['imie']) or empty($_POST['email'])) and !empty($_POST['submit'])) {
  5.    
  6.      echo "<table border=\"0\"><form method=\"post\"><b>Wszystkie pola obowiązkowe</b>
  7.  
  8. <tr>
  9. <td>Treść wiadomości</td>
  10. <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
  11. </tr>
  12. <tr>
  13. <td>Imię/nick</td>
  14. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  15. </tr>
  16. <tr>
  17. <td>Adres e-mail</td>
  18. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  19. </tr>
  20. <tr>
  21. <td>&nbsp;</td>
  22. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  23. <input type=\"reset\" value=\"Od nowa\"></td></form>
  24. </tr>
  25. </table>";
  26. }
  27. elseif (empty($_POST['tresc']) or empty($_POST['imie']) or empty($_POST['email']) and empty($_POST['submit'])) {
  28.    
  29.      echo "<table border=\"0\"><form method=\"post\">
  30. <tr>
  31. <td>Treść wiadomości</td>
  32. <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
  33. </tr>
  34. <tr>
  35. <td>Imię/nick</td>
  36. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  37. </tr>
  38. <tr>
  39. <td>Adres e-mail</td>
  40. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  41. </tr>
  42. <tr>
  43. <td>&nbsp;</td>
  44. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  45. <input type=\"reset\" value=\"Od nowa\"></td></form>
  46. </tr>
  47. </table>";
  48. }
  49.  
  50. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  51.    
  52.    
  53.    $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  54.    
  55.    $header = "From: $_POST[email]";
  56.  
  57.    
  58.    @mail("$user_email","Zapytanie o wolny termin wysłane z ","$message","$header")
  59.    or die('Nie udało się wysłać wiadomości');
  60.    
  61.    echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  62. }
  63. // lub w przypadku nie wypełnienia formularza do końca
  64. else echo "<span style=\"color: #FF0000; text-align: center;\">Wszystkie pola obowiązkowe
  65. <br/><b>Zamknij okno i ponownie kliknij w zapytamie</b>
  66. </span>";
  67.  
  68. ?>

Proszę o opinie i poprawki.
Jeśli ktoś ma inny pomysł
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.