Poslao: 18 Jun 2013 17:10
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Evo ga konačno, gotovo je:
Isprobavanje: http://gajba.host22.com/main.php
main.php
<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1250"></meta></head>
<html>
<body>
<h1>Forma</h1>
<?php
$ispis = substr(uniqid ('', true), -7);
echo "Vaš kod je " . $ispis .". " . "Upišite ga u polje za <i>kod</i>.";
?>
<form action="provera.php" method="post">
<br/>
<table>
<tr><td><b>Ime:</b></td><td><input type="text" name="ime"/></td></tr>
<tr><td><b>Prezime:</b></td><td><input type="text" name="prezime"/></td></tr>
<tr><td><b>E-mail:</b></td><td><input type="text" name="mejl" /></td></tr>
<tr><td><b>Poruka:</b></td><td><textarea name="poruka" cols="20" rows="5" value=""></textarea></td></tr>
<tr><td><b>Kod:</b></td><td><input type="text" name="upis" /></td></tr>
<tr><td><input type="submit" value="Posalji!" /></td></tr>
<tr><input type="hidden" name="sakriven_ispis" value="<?php echo $ispis; ?>" /></tr>
</table>
</form>
</body>
<!-- deo dva za proveru je u provera.php -->
provera.php
<body>
<?php
if(isset($_POST["ime"]) || isset($_POST["prezime"]) || isset($_POST["mejl"]) || isset($_POST["poruka"]) || isset($_POST["upis"]))
{
$pass=true;
$napomena='';
if (empty($_POST["ime"]) || empty($_POST["prezime"]))
{
$napomena.= "Polja za ime i prezime moraju biti popunjena!<br>";
$pass=false;
}
if (empty($_POST["mejl"]))
{
$napomena.= "Polje za mejl je obavezno i mora biti popunjeno!<br>";
$pass=false;
}
if (empty($_POST["poruka"]))
{
$napomena.= "Niste uneli sadržaj poruke!<br>";
$pass=false;
}
if (empty($_POST["upis"]))
{
$napomena.= "Morate uneti kod kako bi potvrdili da niste robot!<br>";
$pass=false;
}
}
// Proveri da li je poruka poslata
if($pass)
{
// Poslata poruka
?>
<b>Dobrodošli</b> <?php echo $_POST["ime"] . " " . $_POST["prezime"] ?>! <br>
<b>Vaš mejl je</b> <?php echo $_POST["mejl"]; ?>. <br>
<b>Vaša poruka: </b> <?php echo $_POST["poruka"]; ?> <br><br>
<?php
}
else
{
// Prikaži napomenu
if(!empty($napomena)){echo '<div style=" color:red; margin-bottom:10px; border:1px solid red; padding:10px;">'.$napomena.'</div>';}
?>
<?php }?>
<?php
$kor_unos = $_POST['upis'];
$tacan_unos = $_POST['sakriven_ispis'];
if ($kor_unos == $tacan_unos)
{
echo "Kod koji ste uneli se slaže sa ispisom na početku!";
}
else
{
echo "Kod koji ste uneli se ne slaže sa ispisom na početku!";
}
?>
</body>
meta tag sam u main.php morao da dodam jer sam primetio da od skoro stranice na 000webhost nešto brljaju pa neće da mi prikažu latinična slova (č,š,ć,ž,đ).
Ostalo je da se sve zaokruži sa mail() funkcijom ako se ne varam?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 18 Jun 2013 21:02
|
offline
- Pridružio: 13 Sep 2012
- Poruke: 2138
|
Možda ne bi bilo loše uraditi AJAX na celoj formi... Ovako je za početak super ispalo!
|
|
|
|
Poslao: 19 Jun 2013 07:54
|
offline
- FoxVanis
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
Napisano: 19 Jun 2013 7:35
Odlično!!!
Sad ispravi samo da se dok traju greške forma za upis vidi. Tek kada je sve u redu onda neka forma nestaje.
SLEDEĆI ZADATAK:
Koristi mail() funkciju da se pošalje poruka. RADI SIGURNOSTI kada korisnik bude slao poruku neka pošalje sam sebi na svoj email sa svog email-a.
Ako ti nebude radila mail() funkcija na tom besplatnom hostu, koristi phpMailer ali prvo kreni od snove.
Dopuna: 19 Jun 2013 7:54
Obećao sam administratoru objašnjenje korak->po->korak.
Ispod sam u kodu stavio komentare za svaki korak.
<?php
// Proveri dali su sva polja aktivna i dali je metod POST poslat
if(isset($_POST["ime"]) & isset($_POST["prezime"]) & isset($_POST["mejl"]) & isset($_POST["poruka"]) & isset($_POST["upis"]))
{
// Dozvoljavam dalji prolaz ako nema ni jedne greške
$pass=true;
// Ispisuje reč GREŠKA i pravi novi red
$napomena='GREŠKA:<br />';
// Proverava da li je polje IME i PREZIME popunjeno
if (empty($_POST["ime"]) || empty($_POST["prezime"]))
{
// Nije popunjeno i ispisuje grešku
$napomena.= "Polja za ime i prezime moraju biti popunjena!<br>";
// Blokira prolaz
$pass=false;
}
// Proverava da li je polje za EMAIL popunjeno
if (empty($_POST["mejl"]))
{
// Nije popunjeno i ispisuje grešku
$napomena.= "Polje za mejl je obavezno i mora biti popunjeno!<br>";
// Blokira prolaz
$pass=false;
}
// Proverava da li je polje za PORUKU popunjeno
if (empty($_POST["poruka"]))
{
// Nije popunjeno i ispisuje grešku
$napomena.= "Niste uneli sadržaj poruke!<br>";
// Blokira prolaz
$pass=false;
}
// Proverava da li je polje za TAJNI KOD popunjeno
if (empty($_POST["upis"]))
{
// Nije popunjeno i ispisuje grešku
$napomena.= "Morate uneti kod kako bi potvrdili da niste robot!<br>";
// Blokira prolaz
$pass=false;
}
else
{
// TAJNI KOD je upisan pa proveri da li je ispravan
if ($_POST['upis'] != $_POST['sakriven_ispis'])
{
// TAJNI KOD nije ispravan ispiši grešku
echo "Kod koji ste uneli se ne slaže sa ispisom na početku!";
// Blokira prolaz
$pass=false;
}
}
## U KOLIKO NIJE BILO NI JEDNE GREŠKE VARIJABLA $pass SA POČETKA DOZVOLJAVA PROLAZ ##
}
// PROLAZ JE DOZVOLJEN
if($pass)
{
// Poslata poruka
?>
<b>Dobrodošli</b> <?php echo $_POST["ime"] . " " . $_POST["prezime"] ?>! <br>
<b>Vaš mejl je</b> <?php echo $_POST["mejl"]; ?>. <br>
<b>Vaša poruka: </b> <?php echo $_POST["poruka"]; ?> <br><br>
<?php
}
else
{
// Prikaži napomenu
if(!empty($napomena)){echo '<div style=" color:red; margin-bottom:10px; border:1px solid red; padding:10px;">'.$napomena.'</div>';}
// Generiši kod
$ispis = substr(uniqid ('', true), -7);
// ISpiši taj kod
echo "Vaš kod je " . $ispis .". " . "Upišite ga u polje za <i>kod</i>.";
?>
<form action="provera.php" method="post">
<br/>
<table>
<tr><td><b>Ime:</b></td><td><input type="text" name="ime"/></td></tr>
<tr><td><b>Prezime:</b></td><td><input type="text" name="prezime"/></td></tr>
<tr><td><b>E-mail:</b></td><td><input type="text" name="mejl" /></td></tr>
<tr><td><b>Poruka:</b></td><td><textarea name="poruka" cols="20" rows="5" value=""></textarea></td></tr>
<tr><td><b>Kod:</b></td><td><input type="text" name="upis" /></td></tr>
<tr><td><input type="submit" value="Posalji!" /></td></tr>
<tr><input type="hidden" name="sakriven_ispis" value="<?php echo $ispis; ?>" /></tr>
</table>
</form>
<?php }?>
Ispravio sam neke sitne greške unutar koda.
|
|
|
|
Poslao: 19 Jun 2013 11:01
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Napisano: 19 Jun 2013 10:57
Hvala Fox Baš sam mislio da te pitam kad ćeš da objasniš kod, ali juče sam ga malo proanalizirao i shvatio da je ta varijabla pass za prolaz.
Dopuna: 19 Jun 2013 11:01
FoxVanis ::Napisano: 19 Jun 2013 7:35
SLEDEĆI ZADATAK:
Koristi mail() funkciju da se pošalje poruka. RADI SIGURNOSTI kada korisnik bude slao poruku neka pošalje sam sebi na svoj email sa svog email-a.
Ček, ček, znači da stavim da polje u koje unosi mejl PHP pročita i da napravim nešto ovako:
$mail_za_slanje = $_POST["mejl"];
$mail_za_primanje = $mail_za_slanje;
Da pošiljaoc i primaoc bude znači jedna osoba ili da napravim formu koja će poslati isti mejl i pošiljaocu i ciljanoj osobi?
|
|
|
|
Poslao: 26 Jun 2013 10:20
|
offline
- FoxVanis
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
E.L.I.T.E. ::
Ček, ček, znači da stavim da polje u koje unosi mejl PHP pročita i da napravim nešto ovako:
$mail_za_slanje = $_POST["mejl"];
$mail_za_primanje = $mail_za_slanje;
Da pošiljaoc i primaoc bude znači jedna osoba ili da napravim formu koja će poslati isti mejl i pošiljaocu i ciljanoj osobi?
Tako je. Ja posetim tvoju stranicu i pošaljem poruku sam sebi. To je sigurnije jer svakako sada testiraš kod.
|
|
|
|
|