Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Formularz kontaktowy - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Formularz kontaktowy (/thread-formularz-kontaktowy)



Formularz kontaktowy - gouson - 08-10-2009

Witam

Zrobiłem formularz kontaktowy, lecz nie wyświetla się on na stronie. Czy mógłby ktoś rzucić okiem na składnię i sprawdzić co jest nie tak??

Kod PHP:
<?php
if ((empty($_POST['tresc']) or empty($_POST['imie']) or empty($_POST['tel'])) and !empty($_POST['submit'])) {
    
// wyświetlamy formularz

echo "<form method="post" class="contact_form">

Imię i Nazwisko:<input name="
imie" type="text" class="field1"><br/>
Telefon kontaktowy:<input name="
tel" type="text" class="field1"><br/>

Treść zapytania:<textarea name="
tresc" cols="" rows="" class="field2"></textarea><br/>

<input name="
submit" type="submit" class="send_btn" value="Wyślij">
<input name="
reset" type="reset" class="reset_btn" value="Wyczyść">

</form>"
;

// lub w przypadku nie wypełnienia formularza do końca 

echo "<p class="komunikat">Proszę wypełnić wszystkie pola formularza!</p>";

}
elseif (empty(
$_POST['tresc']) or empty($_POST['imie']) or empty($_POST['tel']) and empty($_POST['submit'])) {
    
// wyświetlamy formularz 
    
echo "<form method="post" class="contact_form">

Imię i Nazwisko:<input name="
imie" type="text" class="field1"><br/>
Telefon kontaktowy:<input name="
tel" type="text" class="field1"><br/>

Treść zapytania:<textarea name="
tresc" cols="" rows="" class="field2"></textarea><br/>

<input name="
submit" type="submit" class="send_btn" value="Wyślij">
<input name="
reset" type="reset" class="reset_btn" value="Wyczyść">

</form>"
;
}

// sprawdzamy, czy zmienne przesłane z formularza nie są puste

elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['tel'])) {

    
// jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
    // zmienna $message zawiera treść wiadomości
    
    
$message "Treść zapytania:n$_POST[tresc]nImię i nazwisko: $_POST[imie]nTelefon kontakowy: $_POST[tel]";
    
    
// zmienna $header zawiera przede wszystkim adres zwrotny
    
    
$header "From: $_POST[imie]";
    
    
// funkcja mail() za pomocą której wiadomość zostanie wysłana
    
    
@mail("[email protected]","Wiadomosć ze strony FIT-MANAGER","$message","$header")
    or die(
'Nie udało się wysłać wiadomości');
    
    
// wyświetlenie komunikatu w przypadku powodzenia
    
    
echo "<p class="komunikat">Wiadomość została wysłana poprawnie!</p>";
}

?>



RE: Formularz kontaktowy - BeamBear - 08-10-2009

błąd masz w w instrukcjach echo - używasz w nich cudzysłowów i jednocześnie między nimi też umieszczasz cudzysłowy, bez / przed nimi. Php nie wie zatem, który cudzysłów ogranicza instrukcję echo, a który jest zwykłym tekstem. Zatem - albo pisz tak - echo '<a href="">link</a>' albo przed każdym cudzysłowem, który nie jest zamknięciem instrukcji echo wstaw - /


RE: Formularz kontaktowy - KowR - 08-10-2009

A nie łatwiej zamiast

echo "formularz";

dać

echo 'formularz';

? ;]


RE: Formularz kontaktowy - gouson - 09-10-2009

Witam

Dzięki za rady, formularz wyświetla się tak jak chciałem, lecz to nie koniec problemu:/ Skrypt chyba nie działa tak jak chciałem, tj nie wysyła maila do mnie ze strony oraz nie wyświetlają się komunikaty, jeśli pola są nie wypełnione oraz po wysłaniu wiadomości. Proszę o pomoc...

Pozdrawiam


RE: Formularz kontaktowy - BeamBear - 09-10-2009

A to z kolei pewnie jest wina tego, że znaczniku <form> nie dodałeś atrybutu action - jeśli twój skrypt wysyłania maila zapisany jest w pliku formularz.php to atrybut ten musi wyglądać tak <form action="formularz.php">. Bez tego nie wiadomo dokąd mają być posłane dane odebrane z formularza.


RE: Formularz kontaktowy - KowR - 09-10-2009

Nie prawda, action="" może być pusty, jeżeli wszystko znajduje się w 1 pliku <form action=""> Smile Nastąpi przeładowanie pliku i wykonanie ifa jeżeli $_POST[''] będzie miał wartość.


RE: Formularz kontaktowy - BeamBear - 09-10-2009

no patrz... tego nie wiedziałem Smile zawsze dodaję action, ale dobrze wiedzieć, że tak też zadziała Smile mój błąd, sorry Big Grin