Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz kontaktowy
Forum PHP.pl > Forum > PHP
noobbob
Z gory napisze, ze malo co umiem w php, wiec zwracam sie z problemem do specjalistow. Oto kod dzialajacego formularza:

  1. <span id="form">
  2.  
  3.   <?php
  4.   if (count($_POST))
  5.   {
  6.       ////////// USTAWIENIA //////////
  7.       $email = 'ndaariusz@gmail.com';    // Adres e-mail adresata
  8.       $subject = 'WWW.CERTIC.PL';    // Temat listu
  9.       $message = '<tt class="text_form"><span style="margin-top:249px;"><strong>Dziękujemy za wysłanie formularza kontaktowego</strong></span></tt>';    // Komunikat
  10.       $error = 'Wystąpił błąd podczas wysyłania formularza';    // Komunikat błędu
  11.       $charset = 'iso-8859-2';    // Strona kodowa
  12.       //////////////////////////////
  13.      
  14.       $head =
  15.           "MIME-Version: 1.0r\n" .
  16.           "Content-Type: text/plain; charset=$charsetr\n" .
  17.           "Content-Transfer-Encoding: 8bit";
  18.       $body = '';
  19.       foreach ($_POST as $name => $value)
  20.       {
  21.           if (is_array($value))
  22.           {
  23.               for ($i = 0; $i < count($value); $i++)
  24.               {
  25.                   $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "r\n";
  26.               }
  27.           }
  28.           else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "r\n";
  29.       }
  30.       echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  31.   }
  32.   else
  33.   {
  34.   ?>
  35.  
  36.   <?php
  37.   }
  38.   ?>
  39.  
  40.   <form action="certic.php?id=contact" method="post">
  41.   <tt class="text_form">Twoje imię i nazwisko</tt>
  42.  
  43.   <input type="text" name="">
  44.  
  45.  
  46.   <tt class="text_form">Twój adres e-mail</tt>
  47.  
  48.   <input type="text" name="email">
  49.  
  50.  
  51.   <tt class="text_form">Treść wiadomości</tt>
  52.  
  53.   <textarea name="tresc"></textarea>
  54.  
  55.   <input class="przycisk_send" type="submit" value="WYSLIJ">
  56.   </form>
  57.  
  58.     </span>


Wiadomosc, wyslana z formularz wyglada nastepujaco:

Cytat
od kogo: www daemon apache temat: jakis tam temat

nazwa=Rafał Szewczenko
email=szewczen69@interia.pl
tresc=pytanie


Chciałbym aby wyglądało to tak:

Cytat
od kogo: adres strony, z której został wysłany formularz (sam sobie ustawiam) temat: jakis tam temat

Rafał Szewczenko
szewczen69@interia.pl

tresc zapytania
nospor
uzywaj wlasciwego bbcode

Tak na szybko:
zamien: "$name="
na: ""

smile.gif
noobbob
Jeden problem z głowy. Została jeszcze sprawa odstępu imienia, maila od treści oraz nadawcy (adres strony, z której został wysłany formularz).
hostingekspert
  1. <span id="form">
  2.  
  3.   <?php
  4.   if (count($_POST))
  5.   {
  6.       ////////// USTAWIENIA //////////
  7.       $email = 'ndaariusz@gmail.com';    // Adres e-mail adresata
  8.       $subject = 'WWW.CERTIC.PL';    // Temat listu
  9.       $message = '<tt class="text_form"><span style="margin-top:249px;"><strong>Dziękujemy za wysłanie formularza kontaktowego</strong></span></tt>';    // Komunikat
  10.       $error = 'Wystąpił błąd podczas wysyłania formularza';    // Komunikat błędu
  11.       $charset = 'iso-8859-2';    // Strona kodowa
  12.       $skad=$_SERVER['SERVER_NAME'].'/'.$_SERVER['PHP_SELF'];
  13.       //lub $skad=$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI']; nie sprawdzane
  14.       //////////////////////////////
  15.      
  16.       $head =
  17.           "MIME-Version: 1.0r\n" .
  18.           "Content-Type: text/plain; charset=$charsetr\n" .
  19.           "Content-Transfer-Encoding: 8bit".
  20.           "From: ".stripslashes($_POST['email'])." r\n".
  21.           "Cc: ".stripslashes($_POST['email'])." r\n".
  22.           "Bcc: ".stripslashes($_POST['email'])." r\n";
  23.  
  24. $body='Od kogo: '.$skad.'
  25. Temat: .'stripslashes($_POST['temat']).'
  26.  
  27. '.stripslashes($POST['imie_nazwisko'])'.
  28. '.stripslashes($POST['email'])'.
  29.  
  30. '.stripslashes($POST['tresc']);
  31.  
  32.       echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  33.   }
  34.   ?>
  35.  
  36.   <form action="certic.php?id=contact" method="post">
  37.   <tt class="text_form">Twoje imię i nazwisko</tt>
  38.   <input type="text" name="imie_nazwisko">
  39.   <tt class="text_form">Twój adres e-mail</tt>
  40.   <input type="text" name="email">
  41.   <tt class="text_form">Tytul</tt>
  42.   <input type="text" name="tytul">
  43.   <tt class="text_form">Treść wiadomości</tt>
  44.   <textarea name="tresc"></textarea>
  45.   <input class="przycisk_send" type="submit" value="WYSLIJ">
  46.   </form>
  47.  
  48.     </span>


  1. else
  2.   {
  3.   ?>
  4.  
  5.   <?php
  6.   }


tę część kodu usunąłęm bo nic nie robi

napisane szybko w tym samym "stylu" w jaki napisana jest poprzednia wersja skryptu, nie weryfikowane
noobbob
Dzieki za pomoc, ale niesety nie dziala:

Cytat
Parse error: parse error, unexpected T_STRING in /srv/www/htdocs/web169/html/contact.php on line 76
hostingekspert
która to linia w wyzej przedstawionym kodzie?
noobbob
Cytat
Temat: .'stripslashes($_POST['temat']).'
qbatoja
kropka za apostrofem smile.gif
uwazamy uwazamy! smile.gif
noobbob
Nadal ten sam błąd sadsmiley02.gif
f1xer
  1. <span id="form">
  2.  
  3.  <?php
  4.  if (count($_POST))
  5.  {
  6.      ////////// USTAWIENIA //////////
  7.      $email = 'ndaariusz@gmail.com';    // Adres e-mail adresata
  8.      $subject = 'WWW.CERTIC.PL';    // Temat listu
  9.      $message = '<tt class="text_form"><span style="margin-top:249px;"><strong>Dziękujemy za wysłanie formularza kontaktowego</strong></span></tt>';    // Komunikat
  10.      $error = 'Wystąpił błąd podczas wysyłania formularza';    // Komunikat błędu
  11.      $charset = 'iso-8859-2';    // Strona kodowa
  12.      $skad=$_SERVER['SERVER_NAME'].'/'.$_SERVER['PHP_SELF'];
  13.      //lub $skad=$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI']; nie sprawdzane
  14.      //////////////////////////////
  15.    
  16.      $head =
  17.          "MIME-Version: 1.0r\n" .
  18.          "Content-Type: text/plain; charset=$charsetr\n" .
  19.          "Content-Transfer-Encoding: 8bit".
  20.          "From: ".stripslashes($_POST['email'])." r\n".
  21.          "Cc: ".stripslashes($_POST['email'])." r\n".
  22.          "Bcc: ".stripslashes($_POST['email'])." r\n";
  23.  
  24. $body='Od kogo: '.$skad.'
  25. Temat: '.stripslashes($_POST['temat']).'
  26.  
  27. '.stripslashes($POST['imie_nazwisko']).'
  28. '.stripslashes($POST['email']).'
  29.  
  30. '.stripslashes($POST['tresc']);
  31.  
  32.      echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  33.  }
  34.  ?>
  35.  
  36.  <form action="certic.php?id=contact" method="post">
  37.  <tt class="text_form">Twoje imię i nazwisko</tt>
  38.  <input type="text" name="imie_nazwisko">
  39.  <tt class="text_form">Twój adres e-mail</tt>
  40.  <input type="text" name="email">
  41.  <tt class="text_form">Tytul</tt>
  42.  <input type="text" name="tytul">
  43.  <tt class="text_form">Treść wiadomości</tt>
  44.  <textarea name="tresc"></textarea>
  45.  <input class="przycisk_send" type="submit" value="WYSLIJ">
  46.  </form>
  47.  
  48.    </span>

Teraz powinno byc ok
noobbob
Niestety nie jest ok. Po pierwsze pole tekstowe "temat" jest zbędne. Po drugie co bym nie wpisał w polach, wiadomość przychodzi w następującej postaci:

Od kogo: WWW daemon apache / powinno byc WWW.NAZWA.PL (ustawiam sam)

Tresc:

Od kogo: //certic.php
Temat:

... i tyle
hostingekspert
fakt, literówka byla, sorki, nie sprawdzalem ale w tresci nie mozesz miec takiej zawartosci o ktorej mowisz poniewaz

  1. <?php
  2. $body='Od kogo: '.$skad.'
  3. Temat: .'stripslashes($_POST['temat']).'
  4.  
  5. '.stripslashes($POST['imie_nazwisko'])'.
  6. '.stripslashes($POST['email'])'.
  7.  
  8. '.stripslashes($POST['tresc']);
  9. ?>


powinno ci wzwracac bez sprawdzania tresc maila

http://jakisadres.pl/jakisplik.php</a>

[wpisane w forularzu imie i nazwisko]
[wpisany w forularzu email]

[wpisana w forularzu tresc]" title="Zobacz w manualu PHP" target="_manual">Od kogo: http://jakisadres.pl/jakisplik.php

[wpisane w forularzu imie i nazwisko]
[wpisany w forularzu email]

[wpisana w forularzu tresc]

widze ze formularz jest przesyłany do

  1. <?php
  2. <form action="certic.php?id=contact" method="post">
  3. ?>


zmien to na

  1. <?php
  2. <form method="post">
  3. ?>


albo moze nie edytujesz pliku certic.php tylko jakis inny ? zgaduje
noobbob
Wszystko sie pochrzanilo.... Zacznijmy jeszcze raz.

Mam kod:

  1. <?php
  2.   if (count($_POST))
  3.   {
  4.       ////////// USTAWIENIA //////////
  5.       $email = 'ndaariusz@gmail.com';    // Adres e-mail adresata
  6.       $subject = 'Formularz kontaktowy';    // Temat listu
  7.       $message = '<tt class="text_form"><span style="margin-top:249px;"><strong>Dziękujemy za wysłanie formularza kontaktowego</strong></span></tt>';    // Komunikat
  8.       $error = 'Wystąpił błąd podczas wysyłania formularza';    // Komunikat błędu
  9.       $charset = 'iso-8859-2';    // Strona kodowa
  10.       //////////////////////////////
  11.      
  12.       $head =
  13.           "MIME-Version: 1.0r\n" .
  14.           "Content-Type: text/plain; charset=$charsetr\n" .
  15.           "Content-Transfer-Encoding: 8bit";
  16.       $body = '';
  17.       foreach ($_POST as $name => $value)
  18.       {
  19.           if (is_array($value))
  20.           {
  21.               for ($i = 0; $i < count($value); $i++)
  22.               {
  23.                   $body .= "" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "r\n";
  24.               }
  25.           }
  26.           else $body .= "" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "r\n";
  27.       }
  28.       echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  29.   }
  30.   else
  31.   {
  32.   ?>
  33.     <?php
  34.   }
  35.   ?>
  36.  
  37. <form action="certic.php?id=contact" method="post">
  38. <tt class="text_form">Twoje imię i nazwisko</tt><br>
  39. <input type="text" name="nazwa"><br>
  40.  
  41. <tt class="text_form">Twój adres e-mail</tt><br>
  42. <input type="text" name="email"><br>
  43.  
  44. <tt class="text_form">Treść wiadomości</tt><br>
  45. <textarea name="tresc"></textarea><br>
  46. <input class="przycisk_send" type="submit" value="WYSLIJ">
  47. </form>


Po wysłaniu emaila widzę coś takiego:





I teraz o co kaman.
1. W nagłówku zamiast WWW daemon apache, chciałbym sam sobie ustawić co ma tam być.
2. W treści wiadomości chciałbym aby tekst był oddzielony od danych kontaktowych.

Jest ktoś w stanie to ogarnąć?
mike
Dorzuć nagłówek:
From: twój_adres_email
noobbob
Sorry, ale nie bardzo wiem gdzie i czy cos trzeba do tego dopisac (jak wspominalem na samym poczatku, z php jestem ciemny jak noc).
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.