HTML + PHP - wysyłanie zapytań poprzez stronę (na e-mail)

anika91
Użytkownik
Użytkownik
Posty: 172
Rejestracja: 11 paź 2009, o 19:54
Płeć: Kobieta
Lokalizacja: Gdańsk
Podziękował: 67 razy

HTML + PHP - wysyłanie zapytań poprzez stronę (na e-mail)

Post autor: anika91 »

Witam mam stronę kontakt.html , na której mam cały swój layout , różne treść itd. itd.

Umieściłam w body formularz, który umożliwia wysłanie zapytania przez stronę , na mój adres email z wykorzystanie skryptu w PHP .

formularz z pliku *.html:

Kod: Zaznacz cały

<div>
   <form action="skrypt.php" method="post">
      <input type="text" name="email" /><br />
      <textarea name="content"></textarea>
      <input type="submit" value="wyślij" />
   </form>
</div>
i plik skrypt.php :

Kod: Zaznacz cały

<?PHP
   $adresat = 'adres@serwer.pl';    // pod ten adres zostanie wysłana wiadomosc
   @$email = $_POST['email'];
   @$content = $_POST['content'];
   $header =    "From: ktos@serwer.pl \nContent-Type:".
         ' text/plain;charset="iso-8859-2"'.
         "\nContent-Transfer-Encoding: 8bit";
   if (mail($adresat, 'List ze strony', $content, $header))
      echo '<p>działa</p>';
   else
      echo '<p><b>NIE</b> wysłano maila!</p>';
?>
Wszystko działa z tym że chce uniknąć żeby po kliknięciu przycisku 'Wyślij' otwierała się pusta strona z jedynie tekstem : ''działa'' . Czy można zrobić tak żeby po wysłaniu formularza zostawać na tej samej stronie : kontakt.html , ewentualnie żeby wyskakiwał jakiś pop-up, okienko z komunikatem ''Wysłano'' i tyle ? Nie umiem niestety programować, ledwo udało mi się uruchomić żeby działało to wysyłanie... Dziękuję serdecznie za pomoc.

Anika
sonicwork
Użytkownik
Użytkownik
Posty: 67
Rejestracja: 3 wrz 2010, o 00:38
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy
Pomógł: 1 raz

HTML + PHP - wysyłanie zapytań poprzez stronę (na e-mail)

Post autor: sonicwork »

po znaczniku ?> możesz pisać stronę w html i ona się wyświetli po wysłaniu tego e-maila
proponuję skopiować tam zawartość kontakt.html i wywalić to <div>...</div> aby nikt nie mógł wysłać 2 zbędnego e-maila a w skrypcie zmienić tekst "Działa" na dowolny inny który chcesz wyświetlić, efektem tego powinno być wyświetlenie twojego tekstu a pod spodem strony w html

muszę dodać że polecenie

Kod: Zaznacz cały

 echo  ' tekst ' ;
wyświetla stronę html w której źródle jest "tekst" a w tym swoim skrypcie masz takie 2 polecenia, pierwsze wyświetla jeśli uda się wysłać e-mail a drugie gdy nie uda się
tak więc zamiast "tekst" możesz wpisać 2 kompletne źródła stron w html dokładnie z tym co chcesz wyświetlić w danej sytuacji
FireMan24444
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 25 wrz 2011, o 21:30
Płeć: Mężczyzna
Lokalizacja: Gorlice
Podziękował: 1 raz

HTML + PHP - wysyłanie zapytań poprzez stronę (na e-mail)

Post autor: FireMan24444 »

Możesz to zrobić używając AJAX'a albo ew. jQuery. Natomiast inaczej nie zrobisz tego, bo kod musi się jakoś wykonać. Czyli, krótko mówiąc, szukaj tutoriali, albo na stronie "wysłano" zrób przekierowanie od razu po jej wyświetleniu.
jeth
Użytkownik
Użytkownik
Posty: 41
Rejestracja: 20 mar 2010, o 12:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy

HTML + PHP - wysyłanie zapytań poprzez stronę (na e-mail)

Post autor: jeth »

sonicwork pisze:po znaczniku ?> możesz pisać stronę w html i ona się wyświetli po wysłaniu tego e-maila
proponuję skopiować tam zawartość kontakt.html i wywalić to <div>...</div> aby nikt nie mógł wysłać 2 zbędnego e-maila a w skrypcie zmienić tekst "Działa" na dowolny inny który chcesz wyświetlić, efektem tego powinno być wyświetlenie twojego tekstu a pod spodem strony w html
Zgadza się, najprościej przenieś zawartość pliku skrypt.php do pliku, gdzie masz formularz (pamiętaj tylko o zmianie rozszerzenia pliku, czyli nie będzie to już 'kontakt.html' a 'kontakt.php', także w części

Kod: Zaznacz cały

<form action="kontakt.php" ... 
), a tekst 'działa' zamień na 'Twoja wiadomość została wysłana', czy coś w tym stylu i będzie działać.
Drugie rozwiązanie to przekierowanie - czyli zamiast

Kod: Zaznacz cały

echo'<p>' działa '</p>';
napisz

Kod: Zaznacz cały

 header("Location: kontakt.html"); 
i wtedy po pomyślnym wysłaniu wiadomości użytkownik zostanie z powrotem przekierowany na stronę z formularzem. Minus tylko jest taki, że nie wyświetli się żadne potwierdzenie, że wiadomość została wysłana. (W tym przypadku strukturę plików zostaw taką, jaką masz - czyli osobno pliki skrypt.php i kontakt.html).

@FireMan24444, skoro dziewczyna napisała, że nie umie programować, to rada w stylu 'skorzystaj z AJAX albo ew. jQuery' chyba na niewiele się przyda - AJAX to trochę wyższa szkoła jazdy, jQuery wbrew pozorom też nie jest takie łatwe. ;)
ODPOWIEDZ