Početak učenja PHP-a

6

Početak učenja PHP-a

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

Evo ga konačno, gotovo je:

Isprobavanje: http://gajba.host22.com/main.php

Arrow 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      -->

Arrow 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.
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! Ziveli



offline
  • 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.

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

Napisano: 19 Jun 2013 10:57

Hvala Fox Ziveli 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?

offline
  • 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.

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

Napisano: 20 Jul 2013 15:13

ilovephp ::Možda ne bi bilo loše uraditi AJAX na celoj formi... Ovako je za početak super ispalo! Ziveli

To je dobar predlog, smanjio bi vreme za testiranje unosa. Pokušaću i to da dodam Wink

Dopuna: 20 Jul 2013 17:14

Zadatak uspešno završen Ziveli

Arrow main.php
<html> <body> <h1>Forma</h1> <?php $ispis = substr(uniqid ('', true), -7); echo "Vas kod je " . $ispis .". " . "Upisite 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>Vas 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> <tr><input type="hidden" name="sakriven_mejl" value="<?php $_POST['mejl']; ?>"/></tr> </table> </form> </body> </html> <!--     deo dva za proveru je u provera.php      -->

Arrow provera.php
<body> <head> <meta charset="utf-8"> </head> <?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!"; } ?> <?php $za = $_POST['mejl']; $naslov = "Test"; $poruka = $_POST['poruka']; mail($za,$naslov,$poruka); echo "Mejl je poslat." ?> <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>

Ko je trenutno na forumu
 

Ukupno su 1126 korisnika na forumu :: 40 registrovanih, 4 sakrivenih i 1082 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1798 - dana 19 Sep 2019 18:42

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _commandos_, A.R.Chafee.Jr., AK - 230, aljosa7, amaterSRB, azarakhsh, BlaCkMilK, bounty hunters, branko72, Buzdovan2, caesar2, Gama, Georgius, Kubovac, Ljubitelj2, madza, MarKhan, MB120mm, Mercury, misa1xx, MORAVA1, nenad812, nikoladi, ostoja, pedjolino76, pein, prekodrinski, RecA2, Recce, royst33, slonic_tonic, stug, theNedjeljko, Toni, vathra, versus2, vespa nikola, VJ, voja64, zoidbergs