Forum of LuckySoft
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Pristupi

Zaboravio sam šifru

Traži
 
 

Rezultati od :
 


Rechercher Napredna potraga

Zadnje teme
» Udruzenju osoba sa invaliditetom potrebna pomoc
PHP Tutorijal (Forma) 1. Deo I_icon_minitime12/10/2010, 21:37 od Branko67

» Centar za masazu osoba sa invaliditetom potrebna pomoc
PHP Tutorijal (Forma) 1. Deo I_icon_minitime18/2/2010, 03:57 od Branko67

» Hasanaginica Seminarski
PHP Tutorijal (Forma) 1. Deo I_icon_minitime16/1/2010, 09:12 od Kima

» Sandy Rivera
PHP Tutorijal (Forma) 1. Deo I_icon_minitime16/3/2009, 22:14 od Kima

» Problemi i Pitanja
PHP Tutorijal (Forma) 1. Deo I_icon_minitime1/3/2009, 23:26 od Kima

» Tutoriali za 3D
PHP Tutorijal (Forma) 1. Deo I_icon_minitime1/3/2009, 23:24 od Kima

» Stole Nigrutin version no.1
PHP Tutorijal (Forma) 1. Deo I_icon_minitime25/1/2009, 07:09 od Kima

» ZAŠTO JE PILE PREŠLO ULICU?
PHP Tutorijal (Forma) 1. Deo I_icon_minitime20/1/2009, 20:25 od Vuj1ca

» Izrada Web sajtova
PHP Tutorijal (Forma) 1. Deo I_icon_minitime9/1/2009, 18:16 od Kima

Maj 2024
PonUtoSreČetPetSubNed
  12345
6789101112
13141516171819
20212223242526
2728293031  

Kalendar Kalendar


PHP Tutorijal (Forma) 1. Deo

Ići dole

PHP Tutorijal (Forma) 1. Deo Empty PHP Tutorijal (Forma) 1. Deo

Počalji od Kima 21/12/2008, 15:25

Potrudicu se da detaljno objasnim kako napraviti univerzalnu kontakt formu, tako da i pocetnicima bude jasno.

1. Neophodne stvari
2. HTML kod forme
3. "Skupljanje" unetih podataka
4. Provera unetih podataka (obavezna polja)
4a. Provera unete e-mail adrese
4b. Flood zastita
4c. CAPTCHA zastita
5. Slanje maila i prikazivanje rezultata

idemo redom:

1. Neophodne stvari

Da bi ste napisali PHP kod, potrebam vam je neki tekstualni editor - npr Notepad. Posluzice i Code View kod DreamWeaver-a, mada ja preporucujem Notepad++.

Da bi ste pokrenuli PHP kod, neophodan je web server (Apache) i PHP, koji mozete instalirati jedan po jedan, ili u okviru nekog All-in-one paketa (EasyPHP, XAMPP, Apache2Triad...).

Da bi ste poslali mail, neophodan je ili podesen mail server na localhostu (ili serveru na kome pokrecete formu), ili, kao laksa varijanta PHPmailer. Na velikoj vecini free hostova je php funkcija mail() iskljucena, sto je jos jedan razlog za koriscenje PHPmailera. Neki mail serveri cak mailove poslate preko mail() funkcije prepoznaju kao spam. PHP mailer mozete besplatno preuzeti sa http://sourceforge.net/projects/phpmailer

2. HTML kod forme

Postoji nekoliko nacina za pisanje html koda forme, i svako ima svoj. Ja koristim gotovo uvek isti html kod, jer je dobar html kod pola posla. Zasto ovo kazem, videcete kasnije. Stranica na kojoj se kod nalazi se zove "kontakt.php" (mada samo ime nije toliko bitno), a kasnije ce ta ista stranica posluziti i da posalje mail.

Kod:
<html>
<head>
<title>PHP Tutorijal: Kontakt forma</title>
</head>
<body>
<form action="kontakt.php" method="post">
Ime i prezime: <input type="text" name="value0" value=""><br>
E - mail adresa: <input type="text" name="value1" value=""><br>
Naslov poruke: <input type="text" name="value2" value=""><br>
Tekst poruke: <textarea name="value3" cols="10" rows="3"></textarea><br><br>
<input type="submit" value="Posalji" name="posalji">
</form>
</body>
</html>



I to je kompletan html kod kontakt forme. Mozete dodavati jos polja po svojoj zelji, samo pazite da se imena polja (atribut name) nalaze u formatu "value#" (gde # oznacava redni broj).

3. "Skupljanje" unetih podataka

Sada je potrebno je prihvatiti podatke koji su poslati preko POST metode. I dalje se nalazimo na kontakt.php stranici, samo sad vec pisemo u PHP-u.
Tekst iza // je komentar, i on se ne izvrsava. Sluzi samo da vam objasni sta se radi kojom linijom koda, i mozete ga izbrisati kad god zelite. Od sad pa nadalje samo cu dodavati delove koda onom kodu koji vec imamo, kako ne bi bilo nedoumica oko toga gde sta treba dodati.
Kod:
<?php
if (isset($_POST['posalji'])) { //provera da li je forma popunjena
for ($i=0;$i<=3;$i++) { //broj 3 oznacava koliko polja imamo
$label = "value" . $i; //pripremamo "ime" polja
if (isset($_POST[$label]) and !empty($_POST[$label])) { //provera da li je polje popunjeno
$value[$i] = $_POST[$label]; //ako jeste, prihvatamo podatke
}
else {
$value[$i] = ""; //ako nije, dodeljujemo "praznu" vrednost promenljivoj
}
}
}
?>
<html>
<head>
<title>PHP Tutorijal: Kontakt forma</title>
</head>
<body>
<form action="kontakt.php" method="post">
Ime i prezime: <input type="text" name="value0" value=""><br>
E - mail adresa: <input type="text" name="value1" value=""><br>
Naslov poruke: <input type="text" name="value2" value=""><br>
Tekst poruke: <textarea name="value3" cols="10" rows="3"></textarea><br><br>
<input type="submit" value="Posalji" name="posalji">
</form>
</body>
</html>



Time su svi uneti podaci prikupljeni u niz $value[], a sledeci korak je provera da li su neophodni podaci uneti.

4. Provera unetih podataka (obavezna polja)

I za ovo postoji nekoliko nacina. Ukoliko je broj polja relativno mali (<5) mozete svako polje proveriti rucno, a ako nije, automatizovanje koda puno znaci. Najbolje je da se u startu naviknete da pisete sto manje koda koji radi isti posao kao i dugacki kod, kako bi kasnije, kada okolnosti to budu zahtevale, uz male izmene postojeceg koda dobili ono sto vam treba.

Takodje, u samoj formi sam dodao da, ukoliko postoji greska prilikom popunjavanja, u poljima ostanu unete vrednosti, kako posetioci ne bi morali da vise puta popunjavaju formu.
Kod:
<?php
$value = array("","","","");
$allset = false; //forma nije spremna za slanje
$error = ""; //nema gresaka u popunjavanju forme
if (isset($_POST['posalji'])) { //provera da li je forma popunjena
$allset = true; //pretpostavljamo da su svi uneti podaci tacni
for ($i=0;$i<=3;$i++) { //broj 3 oznacava koliko polja imamo
$label = "value" . $i; //pripremamo "ime" polja
if (isset($_POST[$label]) and !empty($_POST[$label])) { //provera da li je polje popunjeno
$value[$i] = $_POST[$label]; //ako jeste, prihvatamo podatke
}
else {
$value[$i] = ""; //ako nije, dodeljujemo "praznu" vrednost promenljivoj
}
}
$obavezna = array("0","1","3"); //brojevi obaveznih polja
$o = count($obavezna) - 1; //brojanje obaveznih polja
for ($i=0;$i<=$o;$i++) {
$op = $obavezna[$i]; //uzimamo broj obaveznog polja
if ($value[$op] == "") { //provera da li je polje prazno
$allset = false; //forma nije spremna za slanje
$error = "Niste popunili sva obavezna polja."; //objasnjenje greske
}
}
}
?>
<html>
<head>
<title>PHP Tutorijal: Kontakt forma</title>
</head>
<body>
<form action="kontakt.php" method="post">
Ime i prezime: <input type="text" name="value0" value="<?php echo $value[0]; ?>"><br>
E - mail adresa: <input type="text" name="value1" value="<?php echo $value[1]; ?>"><br>
Naslov poruke: <input type="text" name="value2" value="<?php echo $value[2]; ?>"><br>
Tekst poruke: <textarea name="value3" cols="10" rows="3"><?php echo $value[3]; ?></textarea><br><br>
<input type="submit" value="Posalji" name="posalji">
</form>
</body>
</html>



I time je provera da li su popunjena sva obavezna polja zavrsena. Sada bi trebalo proveriti da li je uneti e-mail u validnom formatu.
Kima
Kima
Admin

Broj poruka : 91
Godina : 37
Lokacija : Krushevac/Nis
Raspoloženje : Normalno
Datum upisa : 18.10.2008

http://www.mejl.com

Nazad na vrh Ići dole

Nazad na vrh

- Similar topics

 
Dozvole ovog foruma:
Ne možete odgovarati na teme u ovom forumu