Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] PHP Formularz Kontaktowy by Mroczeks


Mroczeks

Rekomendowane odpowiedzi

Opublikowano

W związku iż uczę się języka PHP postanowiłem napisać poradnik po omówionym dziale nauki..

 

 

 

 

Witam!

W tym tutorialu pokażę początkującym jak wykonać prosty, edytowalny formularz kontaktowy, który można  umieścić na swojej stronie internetowej.

 

1. W tym kroku stworzymy najprostszy z możliwych kod html, do którego w kroku 4 dodamy kod PHP. Całość zapiszemy pod nazwą ‘kontakt.php’.Dajemy podstawowe informacje meta, importujemy nasz plik css. W sekcji body dajemy przykładowy nagłówek.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="PL">
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
<title>Formularz kontaktowy - Mroczeks</title>
</head>

<body>
<h2>Formularz kontaktowy</h2><br><br><center>

2.Po tym będzie zamieszczony kod PHP. Zróbmy więc kilka linijek odstępu, a kod PHP damy później.Tworzymy formularz kontaktowy. Ważne by każdy input miał swoją nazwę (name), gdyż będziemy się tak do każdego pola odwoływali.

<div id="form">
<form method="post">
<input type="hidden" name="submit" value="TRUE" />

<div class="field"><label>Imię</label>
<input type="text" name="imie" class="contact_form_input" /><br /></div>

<div class="field"><label>E-mail</label>
<input type="text" name="email" class="contact_form_input" /><br /></div>

<div class="field"><label>Ulubiona strona</label>
<select class="contact_form_input" name="wybor"><option value="">--Wybierz--</option><option value="Mroczeks">Mroczeks</option><option value="Google.pl">Google.pl</option></select><br /></div>

<div class="field"><label>Wiadomość</label>
<textarea type="text" name="message" class="contact_form_textarea"></textarea><br />

<input type="submit" value="Wyślij" name="submit" class="contact_form_submit" /></div>
</form>

</form>
</div>

Kończymy sekcję body i html

</body>
</html>

3.Stylujemy przykładowy nagłówek.

h2 {
color: #3c0853;
text-align: center;
}

a także cały kontener ‘form’ i wszystkie elementy w nim zawarte tj pola tekstowe i button ‘Wyślij’.

#form {
width: 800px;
margin: 0 auto;
}
#form label {
width: 400px;
float: left;
}
#form .contact_form_input {
float: right;
margin-right: 150px;
width: 200px;
margin: 5px 0;
}
#form .contact_form_submit {
float: left;
margin-left: 300px;
margin-top: 100px;
}
#form .contact_form_textarea {
width: 300px;
height: 100px;
float: right;
resize: none;
margin: 5px 0;
}
#form .field {
float: left;
}

Na koniec pozostało nam ostylowanie wiadomości, czy wystąpiły jakieś błędy bądź, czy wiadomość została wysłana, czy też nie.

.blad {
color: #F00;
text-align: center;
}
.success {
text-align: center;
color: #090;
}
.error {
color: #F00;
text-align: center;
}

W kodzie css to już wszystko. Przejdźmy teraz do kodu PHP, który dodamy w utworzonym przez nas wcześniej pliku.

 

4.Otwieramy wcześniej zapisany plik z kodem HTML. W wyznaczonym miejscu (podanym wcześniej) uzupełniamy kod php.Otwieramy znacznik php. Ustawiamy zmienne.

<?php

$twojemail = "[email protected]"; //na jaki adres ma zostać wysłana treść z formularza
$blad=0; // początkowo liczba błędów musi wynosić 0

Następnie przechodzimy do naszego skryptu.Czyli po kliknięciu przycisku o nazwie ‘submit’ nastąpi filtrowanie danych wprowadzonych przez użytkownika. Ustalamy także temat wiadomości.

if (isset($_POST['submit'])) {

// filtrowanie treści wprowadzonych przez użytkownika
$temat = "Formularz kontaktowy"; // temat wiadomości
$imie = htmlspecialchars(stripslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
$email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
$wybor = htmlspecialchars(stripslashes(strip_tags(trim($_POST["wybor"]))), ENT_QUOTES);
$message = htmlspecialchars(stripslashes(strip_tags(trim($_POST["message"]))), ENT_QUOTES);

Sprawdzamy, czy pola wypełnione przez użytkownika nie są puste. Jeśli są to zmienna blad powiększa się, co prowadzi do wyświetlenia komunikatu/komunikatów o błędzie.

// sprawdzamy czy wszystkie pola zostały wypełnione
if (!$imie) {
$blad++;
echo '<p class="blad">Proszę wpisać swoje imię.</p>';
}
if (!$email) {
$blad++;
echo '<p class="blad">Proszę wpisać swój adres e-mail.</p>';
}
if (!$wybor) {
$blad++;
echo '<p class="blad">Proszę podać ulubioną stronę.</p>';
}
if (!$message) {
$blad++;
echo '<p class="blad">Proszę wpisać treść wiadomości.</p>';
}

Jeżeli zmienna blad przechowuje nadal zero błędów następuje wysłanie wiadomości. Czyli najpierw nadanie odpowiednich nagłówków, ustalenie ostatecznej wersji wiadomości.

// jeżeli nie ma błędu, to wiadomość e-mail zostaje wysłana
if ($blad == 0) {

// niezbędne nagłówki do wyświetlania wiadomości HTML
$naglowki = "MIME-Version: 1.0" . "\r\n";
$naglowki .= "Content-type:text/html;charset=utf-8" . "\r\n";

// opcjonalne nagłówki
$naglowki .= 'From: <'.$email.'>' . "\r\n";
$naglowki .= 'Cc: <'.$twojemail.'>' . "\r\n";

// całkowita treść wiadomości
$message = nl2br($message);
$wiadomosc = <<< KONIEC
<html>
<p><strong>Imię:</strong> $imie</p>
<p><strong>E-mail:</strong> $email</p>
<p><strong>Ulubiona strona:</strong> $wybor</p>
<p><strong>Wiadomość:</strong><br /> $message</p>
</html>
KONIEC;

Do wysłania e-maila posłużymy się funkcją mail(), z którą wyślemy treść wiadomości, temat, odpowiednie nagłówki na wybrany przez nas e-mail.

// wysyłanie wiadomości e-mail
$wynik = mail('<'.$twojemail.'>', $temat, $wiadomosc, $naglowki);

Sprawdzamy, czy wiadomość została wysłana. Zależnie od odpowiedzi uzyskujemy odpowiedni komunikat.

// komunikat potwierdzający wysłanie wiadomości bądź nie
if ($wynik) {
echo '<p class="success">Wiadomość została wysłana.</p>';
} else {
echo '<p class="error">Wiadomość nie została wysłana.</p>';
}

Kończymy wcześniej rozpoczęte instrukcje warunkowe.

}
}
Całość zapisujemy pod wybraną nazwą np. ‘kontakt.php’.
 
Poradnik by Mroczeks,zostaw +
Opublikowano

o Cie xDD

Zacznijmy od 1.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="PL">

vs.

<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">

2.

<input type="hidden" name="submit" value="TRUE" />

Serio?

Nie można przyciskowi nadać nazwy np. button i potem w php'ie if(isset($_POST['button'])) ? Krócej i mniej bezsensownego HTML'a.

btw.

<input type="submit" value="Wyślij" name="submit" class="contact_form_submit" /></div>

i

<input type="hidden" name="submit" value="TRUE" />

3. Bezsensu tut.

Jakbyś to zrobił w oparciu o biblioteke PHPMailer - to jeszcze spoko. A tak ? To do dupy :)

 

Pozdro.

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

Może i tworząc formularz kontaktowy utrudnia sobie się życia ale tak czy owak działa ;D

Za nic w świecie nie mogę zrozumieć tego zdania. :)

 

 

A żeby mój post był bardziej wartościowy to taka ciekawostka dla piszących formularze w HTML5.

W polach formularzy, które muszą być obowiązkowo wypełnione, możecie użyć takiego magicznego słówka require. Dzięki temu formularz nie zostanie wysłany dopóki czegoś w te pola nie wpiszecie. Np.

<input type="text" name="login" require>

Pozdrawiam :D

gamedevmania.com

Opublikowano

gdybyś to jeszcze zrobił żeby był optymalny kod, i zgodnie z najnowszymi funkcjami w html (html5) to ok a tak to nie widzę żadnej rewelacji w tym poradniku

jak dla mnie - słabe

Opublikowano

Optymalizacja kodu to jedna z najważniejeszych rzeczy przy programowaniu w PHP.

Wiec pomyśl. Chcesz żeby twoja strona działała szybko czy może nie bardzo cie to interesuje i masz gdzieś użytkowników?

 

Oczywiście to sie tyczy wszystkich jezykow programowania.

gamedevmania.com

Opublikowano

Optymalizacja kodu to jedna z najważniejeszych rzeczy przy programowaniu w PHP.

Wiec pomyśl. Chcesz żeby twoja strona działała szybko czy może nie bardzo cie to interesuje i masz gdzieś użytkowników?

 

Oczywiście to sie tyczy wszystkich jezykow programowania.

 

Dodatkowo źle napisany kod (html5,wyświetlanie) zmniejsza popularność strony ponieważ SEO spada a co za tym idzie strona będzie nisko w wynikach wyszukiwania Google.

Co jest równe z małą popularnością strony.

Like dla Writen'a jednakże limit wyczerpany...

Jeśli pomogłem to zamiast gdzie kol wiek klikać najlepiej wejdź na stronę http://www.pajacyk.pl i kliknij.
W ten sposób pomogłeś. Czy to takie trudne aby wykonywać tą czynność codziennie?

Opublikowano

Instalacja serwera pocztowego z konfiguracją i klientem to jest 15minut....

Możesz mi wytłumaczyć związek twojego postu z tematem formularza kontaktowego?

Bo coś mi się jednak wydaje, że nieudolnie próbujesz strzelać na prawo i lewo swoją wiedzą. Bądź też niewiedzą.

gamedevmania.com

Opublikowano

@Writen Sleby jestes? W temacie uzyto funkcji mail, a zeby to dzialalo to trzeba wdrozyc pierw serwer pocztowy nie uwazasz?

Myślę, że tutejsze dzieci korzystają z serwerów www, które już posiadają takie udogodnienia.

Pójdziesz się już popisywać gdzie indziej?

gamedevmania.com

  • 8 miesięcy temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...