cinek2006 napisał(a):No i co wtedy by się działo? A i jeszcze jedno, jak zrobić wymagane pola? I sprawdzanie poprawności adresu e-mail?
Odpowiedź na pierwsze pytanie: Wtedy efekt wyglądałby tak samo, ale zmienne możnaby było przekazać również w adresie stronki, zamiast wypełniać formularz. O tak:
- Kod: Zaznacz wszystko
opinia.php?temat=Tresc_tematu&tresc=Tresc_maila&nick=Nick&email=email_nadawcy
Ale takie coś stosuje się do krótszych treści niż e-mail, i w żadnym wypadku do formularzy z hasłami, czyli akurat w tym wypadku się nie nadaje.
2 i 3 pytanie:
Powiedzmy że naszymi wymaganymi polami są pola 'Nick', 'Temat' i 'Tresc'.
Nasz plik php wyglądać powinien tak:
- Kod: Zaznacz wszystko
<?php
//Zaczynamy sprawdzanie wymaganych
if (!isset($_POST['temat']) || $_POST['temat'] == "") {
die("Nie podałeś tematu!");
} elseif (!isset($_POST['nick']) || $_POST['nick'] == "") {
die("Nie podałeś nicka!");
} elseif (!isset($_POST['tresc']) || $_POST['tresc'] == "") {
die("Nic nie napisałeś!");
//i kończymy sprawdzanie wymaganych
//sprawdzamy e-mail
} elseif(!isset($_POST['email']) || !ereg("^[a-zA-Z0-9\._\-]+@.[a-zA-Z0-9\._\-]+\..{1,4}$", $_POST['email'])) {
die("Adres e-mail nie jest poprawny!");
//i wreszcie dochodzimy do wysyłania wiadomości... uff
} else {
mail("cinek2006@o2.pl" , $_POST['temat'] , "Oto opinia: \n\n ".$_POST['tresc']." \n\n Otrzymana od ".$_POST['nick'] , "From: ".$_POST['email'] );
}
//koniec
?>
Teraz jeszcze parę komentarzy do kodu:
isset($zmienna) - sprawdza czy zmienna jest ustawiona
ereg("Wyrażenie regularne", $zmienna);
sprawdza czy zmienna spełnia dane wyrażenie regularne. W naszym wypadku sprawdza czy:
1. Początek adresu zawiera tylko znaki alfanumeryczne oraz podkreślenie, myślnik i kropkę.
2. Czy adres zawiera @
3. Czy po @ występuje domena w postaci:
nazwadomeny.xxxx
xxxx - maks 4 znaki
Więcej o wyrażeniach regularnych:
http://www.gajdaw.pl/php/wyrreg.html
// - oznaczaja komentarz, który można wywalić.
Kawałek tego wyrażenia regularnego sprawdziłem, ale nie jestem do końca pewien czy będzie działać dla absolutnie wszystkich adresów (powinien, ale tak na wszelki wypadek)