Wysyłanie formularza ze strony www - jak to zrobić?


(Charbrowo) #1

Witam.

Niestety w tym temacie jestem zielony.

W jaki sposób stworzyć stronę www, aby można  było z niej wysyłać formularz. Czytałem, że potrzeba do tego php, ale za diabła nie wiem o co kaman :frowning:

Czy byłby ktoś na tyle uprzejmy i napisał mi krok po kroku co i jak trzeba zrobić??? Czyli jaką stronę o jakiej nazwie i z jakim  rozszerzeniem należy utworzyć, a następnie na jakiej stronie jaki kod trzeba wpisać. Po prostu łopatologicznie - tak jak dla debilka :slight_smile:

Wszędzie gdzie czytałem, to jest napisane, ale dla kogoś, kto już ma w tym jakieś doświadczenie. Ja wiem tylko jak stworzyć podstawową stronkę w html przy pomocy np. FrontPage 2003.

 

Pozdrawiam

 

 


(jacko1998) #2

Zależy do czego ma służyć dany formularz. Jeżeli np do wysyłania maili, to bym jeszcze potrafił coś wyskrobać :slight_smile:


(Charbrowo) #3

 Tak, ma wysłać ze strony www (a dokładnie strony intranetowej) informacje na moja pocztę. Musiało by być:

TEMAT …

NADAWCA  …

UWAGI …

 

i WYŚLIJ.


(jacko1998) #4

http://jsbin.com/ILAhAJi/1/edit - takie coś ?

<form method="post" action="">
  <input type="text" placeholder="Imię..." name="imie" required/><br/>
  <input type="text" placeholder="E-Mail..." name="mail" required/><br/>
  <input type="text" placeholder="Temat..." name="temat" required/><br/>
  <textarea name="uwagi" cols="30" rows="10" placeholder="Uwagi..." required></textarea><br/>
  <input type="submit" name="wyslij">
</form>
<?php
if(isset($_POST['wyslij'])){
	$imie = $_POST['imie'];
	$mail = $_POST['mail'];
	$temat = $_POST['temat'];
	$uwagi = $_POST['uwagi'];

	$uwagi .= '<html>
                  <head>
                      <meta charset="utf-8"/>
                  </head>
                  <body>
                      <h1>'.$temat.'<h1><br/><br/>
                      <p>'.$uwagi.'</p><br/><br/>
                      <p>Wiadomość do ------ ------* nadesłał/a <b>'.$name.'</b>, jego/jej E-Mail to: <b>'.$mail.'</b></p>
                  </body>
              </html>';
    				    // * wpisz swoję imię
    $header = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
        // wpisz swój adres e-mail
    mail("tu wpisz swój e-mail", $temat, $uwagi, $header);
    echo 'Dziękujemy za wysłanie wiadomości !';
} else {
    echo 'Wiadomość nie została wysłana. Spróbuj ponownie.';
}
?>

Tu masz kod :slight_smile: zmodyfikuj go, dodając swoje imię, nazwisko, i e-maila :slight_smile:


(Kernelus) #5

Małe sprostowanie


(jacko1998) #6

Dzięki, poprawione.


(Charbrowo) #7

Zaraz się za to wezmę, tylko znowu pytanie.

Jaki skrypt w jakim pliku umieścić. Sorki za lamerstwo, ale trochę się pogubiłem.

 

Pozdrawiam


(jacko1998) #8

Wszystko w jednym. Dlatego atrybut action zostawiłem pusty.

Jeszcze jedno pytanie, mianowicie czy chciałby Pan, aby do tej osoby(wysyłającej), także został wysłany mail z potwierdzeniem, że do Pana wysłało ?


(Charbrowo) #9

Rozumiem, że cały skrypt mam umieścić w pliku np. index.html

Usunąć to co tam jest (bo jak się tworzy plik, to od razu jest jakieś źródło) i wstawić kod od kolegi jacko1998 ???

Tak


(jacko1998) #10

Raczej w pliku: index. php. To jest ważne, inaczej nie zadziała.

 

UP formularza:

<form merthod="post" action="">
  <input type="text" placeholder="Imię..." name="imie" required/><br/>
  <input type="text" placeholder="E-Mail..." name="mail" required/><br/>
  <input type="text" placeholder="Temat..." name="temat" required/><br/>
  <textarea name="uwagi" cols="30" rows="10" placeholder="Uwagi..." required></textarea><br/>
  <input type="submit" name="wyslij">
</form>
<?php
if(isset($_POST['wyslij'])){
	$imie = $_POST['imie'];
	$mail = $_POST['mail'];
	$temat = $_POST['temat'];
	$uwagi = $_POST['uwagi'];

	$uwagi .= '<html>
                  <head>
                      <meta charset="utf-8"/>
                  </head>
                  <body>
                      <h1>'.$temat.'<h1><br/><br/>
                      <p>'.$uwagi.'</p><br/><br/>
                      <p>Wiadomość do ------ ------* nadesłał/a <b>'.$name.'</b>, jego/jej E-Mail to: <b>'.$mail.'</b></p>
                  </body>
              </html>';
    								// * wpisz swoję imię

    $tytul_powiadomienie = 'Dziękujemy za wysłanie wiadomości ! <-- do edycji';
    $tekst_powiadomienie = 'ten tekst to zostawiam od zeedytowania';
    $tekst_powiadomienie .= '<html>
                                <head>
                                    <meta charset="utf-8"/>
                                </head>
                                <body>
                                    <h1>'.$tytul_powiadomienie.'<h1><br/><br/>
                                    <p>'.$tekst_powiadomienie.'</p><br/><br/>
                                    <p>Wiadomość została wygenerowana automatycznie. Nie odpowiadać.</p>
                                </body>
                            </html>';

    $header = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";

    mail("tu wpisz swój e-mail", $temat, $uwagi, $header);
    mail($mail, $tytul_powiadomienie, $tekst_powiadomienie, $header);
    echo 'Dziękujemy za wysłanie wiadomości !';
} else {
    echo 'Wiadomość nie została wysłana. Spróbuj ponownie.';
}
?> 

 

No tak mój kod wkleić, ale jaki kod się tworzy po utworzeniu pliku ? 

 

PS: Oczywiście wszystkie teksty, co ja pisałem, niech Pan zmieni. Znaczy nie kod tylko np:

<p>Wiadomość została wygenerowana automatycznie. Nie odpowiadać.</p>

(Charbrowo) #11

OK, stworzyłem plik index.php, wkleiłem do niego źródło z ostatniego posta.

Teraz co dalej?

  1. Czy muszę stworzyć jeszcze jakiś plik ?

  2. W którym miejscu muszę wpisać swój e-mail ?


(jacko1998) #12
  1. Nie

  2. tutaj:

    mail(“tu wpisz swój e-mail”, $temat, $uwagi, $header);


(Charbrowo) #13

OK, w pliku index.php jest tylko i wyłącznie źródło jakie podesłałeś mi kolego jacko1998. Wpisałem tam swój adres e-mail.

I teraz co dalej ?

Gdzie umieścić ten plik, bo rozumiem, że nie dam rady go wysłać, jak stronka będzie tylko na twardym dysku. Muszę ją umieścić na serwerze ???

I wówczas musze wpisać w adres przeglądarki np:

(gdzie index.php będzie zawierał Twoje źródło, które mi podałeś ?)


(jacko1998) #14

najlepiej przetestować poprzez wrzucenie na hosting (darmowy wystarczy). http://tnij.org/7z8g - radzę wyłączyć głos :slight_smile:


(Charbrowo) #15

Qrcze, wrzuciłem na serwer firmowy (intranet) i nie chodzi.

Stronka się ładuje razem z formularzem, wpisuje wszystkie dane, ale poczta nie dochodzi.


(jacko1998) #16
<form method="post" action="">
  <input type="text" placeholder="Imię..." name="imie" required/><br/>
  <input type="email" placeholder="E-Mail..." name="mail" required/><br/>
  <input type="text" placeholder="Temat..." name="temat" required/><br/>
  <textarea name="uwagi" cols="30" rows="10" placeholder="Uwagi..." required></textarea><br/>
  <input type="submit" name="wyslij">
</form>
<?php
if(isset($_POST['wyslij'])){
  $imie = $_POST['imie'];
  $mail = $_POST['mail'];
  $temat = $_POST['temat'];
  $uwagi = $_POST['uwagi'];

  $tekst_uwagi = '<html>
                  <head>
                      <meta charset="utf-8"/>
                  </head>
                  <body>
                      <h1>'.$temat.'</h1><br/>
                      <p>'.$uwagi.'</p><br/>
                      <p>Wiadomość do ------ ------* nadesłał/a <b>'.$name.'</b>, jego/jej E-Mail to: <b>'.$mail.'</b></p>
                  </body>
              </html>';

    $tytul_powiadomienie = 'Dziękujemy za wysłanie wiadomości ! <-- do edycji';
    $tekst_powiadomienie = 'ten tekst to zostawiam od zeedytowania';
    $wiadomosc_powiadomienie = '<html>
                                <head>
                                    <meta charset="utf-8"/>
                                </head>
                                <body>
                                    <h1>'.$tytul_powiadomienie.'</h1><br/>
                                    <p>'.$tekst_powiadomienie.'</p><br/>
                                    <p>Wiadomość została wygenerowana automatycznie. Nie odpowiadać.</p>
                                </body>
                            </html>';

    $header = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";

    mail("jakis.tam@mail.com", $temat, $tekst_uwagi, $header);
    mail($mail, $tytul_powiadomienie, $wiadomosc_powiadomienie, $header);
    echo 'Dziękujemy za wysłanie wiadomości !';
}
?>

Działa, sprawdzałem :slight_smile:


(Charbrowo) #17

Qrcze, to co może być nie teges ?

 

Czy ten plik php musie mieć jakąś szczególną nazwę?  Nazwałem go poczta.php


(Charbrowo) #18

Tak wygląda mój plik poczta.php

poczta.php


(Charbrowo) #19
<form method="post" action="">
  <input type="text" placeholder="Imię..." name="imie" required/><br/>
  <input type="email" placeholder="E-Mail..." name="mail" required/><br/>
  <input type="text" placeholder="Temat..." name="temat" required/><br/>
  <textarea name="uwagi" cols="30" rows="10" placeholder="Uwagi..." required></textarea><br/>
  <input type="submit" name="wyslij">
</form>
<?php
if(isset($_POST['wyslij'])){
  $imie = $_POST['imie'];
  $mail = $_POST['mail'];
  $temat = $_POST['temat'];
  $uwagi = $_POST['uwagi'];

  $tekst_uwagi = '<html>
                  <head>
                      <meta charset="utf-8"/>
                  </head>
                  <body>
                      <h1>'.$temat.'</h1><br/>
                      <p>'.$uwagi.'</p><br/>
                      <p>Wiadomość do ------ ------* nadesłał/a <b>'.$name.'</b>, jego/jej E-Mail to: <b>'.$mail.'</b></p>
                  </body>
              </html>';

    $tytul_powiadomienie = 'Dziękujemy za wysłanie wiadomości ! <-- do edycji';
    $tekst_powiadomienie = 'ten tekst to zostawiam od zeedytowania';
    $wiadomosc_powiadomienie = '<html>
                                <head>
                                    <meta charset="utf-8"/>
                                </head>
                                <body>
                                    <h1>'.$tytul_powiadomienie.'</h1><br/>
                                    <p>'.$tekst_powiadomienie.'</p><br/>
                                    <p>Wiadomość została wygenerowana automatycznie. Nie odpowiadać.</p>
                                </body>
                            </html>';

    $header  = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";

    mail("henzik@poczta.onet.pl", $temat, $tekst_uwagi, $header);
    mail($mail, $tytul_powiadomienie, $wiadomosc_powiadomienie, $header);
    echo 'Dziękujemy za wysłanie wiadomości !';
}
?>

(jacko1998) #20

No to nie wiem. Pana serwer obsługuje wgl PHP ?