[ Girl_from_Tomici @ 28.01.2015. 16:00 ] @
[att_img][att_img]Pozdrav

počela sam da radim php,
napravila sam formu u koju se upisuje ime, mail, pol, godine i komentar

u formi pozovem php fajl provjera.php koji vrši provjeru da li su svi podaci upisani i izbača određeno upozorenje

Citat:
<form action="provjera.php" method="POST">



a evo koda iz provjera.php

Citat:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<meta name="author" content="lolkittens" />

<title>Untitled 3</title>
<style type="text/css" title="text/css" media="all">
.errors {
font-weight: bold;
color: #C00;
}</style>
</head>

<body>

<? #script

if ($pol == 'M') {
$pozzz='<p><b>Dobar dan, Gospodine!</B></p>';
}
elseif ($pol == 'Z') {
$pozzz = '<p><b>Dobar dan, Gospodo!</b></p>';
}
else $pol = null;
{echo '<p class="errors"> Pol nije oznacen!!!</P>';}

if (!empty($_POST['ime'])){
$ime=$_POST['ime'];
ECHO 'Vase ime je $ime';
} else {
$ime = null;
echo '<p class="errors"> Zaboravili ste upisati ime</p>';
}
if (!empty($_POST['mail'])) {
$mail=$_POST['mail'];
echo 'Vaš mail je: $mail';
} else {
$mail=null;
echo '<p class="errors"> Zaboravili ste upisati email adresu!!! </p>';
}
if (!empty($_POST['kom'])) {
$kom=$_POST['kom'];
echo 'Vaš komentar je <br><br> $kom';
} else {
echo '<p class="errors"> Molim Vas, unesite komentar! </p>';
}
if (!empty ($_POST['god'])) {
$god = $_POST['god'];
} else {
echo '<p class="errors"> Molim Vas, odaberite Vaše godine! </p>';
}
?>
</body>
</html>


problem je u tome, što kad u formi stisnem dugme pošalji, otvara mi stranicu u kojoj izbača sve redom echo poruke i izbača između tih poruka kod
da li znate u čemu je problem

hvala
[ vuxor @ 28.01.2015. 16:53 ] @
Proveri da li ti je PHP instaliran
php -v
[ Girl_from_Tomici @ 28.01.2015. 16:57 ] @
instaliran mi je php desinger u kojem pišem i wamp server

[ bane1234 @ 29.01.2015. 07:18 ] @
ima tu vise gresaka... na brzinu pogledano:
<?php - ovako pocinje php scripta, moze i bez php ali nikako sa #script... verovatno ti zbog toga sve ispisuje
proveri obavezno da li je forma submitovana pre dalje obrade podataka
[ Girl_from_Tomici @ 29.01.2015. 16:00 ] @
ovako, uklonila sam php i submit je sasvim ok, ali opet isto. radi rješavanja problema, našla sam najobičniji php skript na w3school

Citat:
<html>
<body>

Welcome <? echo $_POST["ime"]; ?><br>
Your email address is: <? echo $_POST["mail"]; ?>

</body>
</html>


ovaj skript sam ubačila u ovu istu formu i radi, ali sam onda opet napravila sljedeću prepravku:

Citat:
<html>
<body>

Welcome <?
if (!empty($_POST["ime"])) {
echo $_POST["ime"];
} else {
echo "Molim Vas upišite Vaše ime!";}
?>
Your email address is: <? echo $_POST["mail"]; ?>

</body>
</html>


i sad nakon ubačanja if-a, opet ne radi, izbača
Citat:
Welcome Your email address is:


ne izbača vrijednost polja ime i mail

interesuje me, da li ja ovaj uslov za provjeru postavljam pogrešno?

hvala

[Ovu poruku je menjao Girl_from_Tomici dana 29.01.2015. u 17:16 GMT+1]
[ ŽIKI @ 29.01.2015. 20:11 ] @
Uslov nije problem, vidiš da za email nemaš uslov a da ti ništa ne izbacuje.
Piši uvek <?php umesto <? mislim da će ti to rešiti ovaj problem
[ D4n1L0 @ 03.02.2015. 13:07 ] @
Pozdrav Girl_from_Tomici,

Za proveru ispravnosti unetih podataka u polja forme koristi se JavaScript (Client Side programski jezik).
PHP je Server Side programski jezik i sluzi da obradi unete podatke u polja forme ali i za mnoge druge operacije koje se izvrsavaju na samom serveru.
Tako da bih vam preporucio da za proveru ispravnosti unetih podataka u formu koristite JavaScript jer je to i njegova uloga (ali opet da napomenem da mu to nije i jedni posao). Znaci bitno je rasclaniti da je JavaScrip (client side), a PHP (Server Side).

Ima mnogo primera na internetu vezano za proveru ispravnosti unetih podataka u formu uz pomoc JavaScript-a, a i verujem da vam nece biti problem da to savladate jer je princip (logika) ista samo je razlika u sintaksi.
[ Jbyn4e @ 03.02.2015. 17:41 ] @
Jes' baš lepo učiš ljude... i onda ja lepo isključim javascript i submitujem formular... ili pomoću firebug-a recimo izmenim javasctipt da ne vrši validaciju, i pošaljem lepo pogrešne podatke.

Dakle, server side provera uvek, a client side ako se želi dodatna provera pre slanja serveru... mogu obe, ali nikako samo client side.
[ D4n1L0 @ 03.02.2015. 22:45 ] @
Postovanje @Jbyn4e,
Ne zelim da od ove teme pravim offtopic.. Pre svega sam imao najbolju nameru i izneo svoje misljenje, a i tu smo da prodiskutujemo i da jedni od odrugih nesto naucimo.
Ako se cela forma uradi pomocu JavaScripta, koja poziva kasnije PHP koji dalje obradjuje podatke, ukoliko iskljucite JavaScript necete biti u mogucnosti da prosledite podatke. A sto se tice FireBug-a nisam se time bavio i ne znam kako taj dodatak pregledacu radi, ali verujem da ste upravu.

U svakom slucaju slazem se da treba da se odradi i provera na serveru.
[ plus_minus @ 20.03.2015. 01:57 ] @
^^ ... ali ukoliko ima uključen js i zna kako da zezne tu proveru, jer, js ne možeš da sakriješ od nikoga, znači, može da se napravi "bušotina" ..

Osim toga, ne da treba da se odradi provera na serveru, već jedino tako programer i može da bude 100% siguran, kada uz pomoć koda koji niko (osim 'servera' i developera) ne vidi, provuče detalje kroz "iglene uši", pa ako su detalji prošli, prošli su. Bez obzira jel' taj server side kod php, asp, perl, java... itd.

Javaskripta treba prevashodno da se koristi zarad poboljšane "kozmetike" .. žive interakcije u smislu DomStorage-a, npr.. da pamti stanje ako ima mnogo tabova negde.. drag and drop.. da žongliraš klase, to jest da vršiš manipulaciju nad atributima, uklanjaš ih, dodaješ.. upucavaš style ili script tagove u glavu dokumenta ohoohoo nakon page-load === tuto-complete itd.. a ne za sve živo, samo zato što može, jer se 'sinčić' mnogo loži na to.

Javaskriptom možeš da "opomeneš" korisnika da je zaboravio da popuni to i to polje nakon gubljenja fokusa, dakle, da se korisnik jednostavno natera da popuni sva neophonda polja, to je već smisleno.
Sve preko toga po pitanju validacije - debilana. Čista.
[ ColdKeyboard @ 20.03.2015. 03:27 ] @
Kao sto je Ziki rekao uvek koristi kombinaciju <?php i ?> za php. <? i ?> ce nekada da radi nekada ne, zavisi od konfiguracije servera.

Ako imas WAMP instaliran, klikni na W ikonicu "pored sata" i proveri da li ti je cekiran "short open tag" kao na ovoj slici -> WAMP Short open tags


Evo ti primer skripte koja kada popunis polje i kliknes posalji, ispod ispise podatke koji su poslati, odnosno ako je polje prazno a kliknuto posalji, izbaci gresku da polje nije popunjeno.
Sacuvaj skriptu kao "skripta.php" i pokreni je iz browsera da vidis kako radi.

Code:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test 123</title>
</head>

<body>
<form action="skripta.php" method="post" name="form1" id="form1">
    <label for="email">Vasa email adresa:</label>
    <input type="text" name="email" id="email">
    <input name="submit" type="submit" id="submit" value="Submit">
</form>

<?php

$var_email = isset($_POST['email']) ? $_POST['email'] : '';
$var_forma_poslata = isset($_POST['submit']) ? true : false;

if($var_forma_poslata) { 
    if( !empty($var_email) ) 
    {
        echo "Vasa email adresa je: $var_email";     
    }
    else {
        echo "Niste uneli email adresu!";    
    }
}
?>

</body>
</html>



Takodje NIKADA ne treba proveru raditi iskljucivo u javascriptu. JavaScript je ok kada je provera za korisnika u pitanju, tipa da ustedis korisniku vremena i zivce pa mu odmah u startu kazes "to korisnicko ime nije dozvoljeno", "sifra je prekratka", "email vec postoji u bazi" ili sl.
Ali provera da li su podaci prihvatljivi i ispravni se iskljucivo radi na serverskoj strani, u ovom slucaju unutar php skripte. Takodje nikada ne treba koristiti varijable tipe $_POST['ime'] kada upisujes u data-bazu, ispisujes tekst ili sl.
Sta ce biti ako je korisnik namjerno upisao ime da mu je "; DROP database 'korisnici';" ili da je stavio da se zove "</body>" ? U najmanju ruku napravit ce problem. Zato uvek treba proveriti, da li je uneti podatak ispravan, uraditi sanitize, i tek onda raditi sa takvim podatkom i svugde dalje koristiti iskljucivo vec obradjeni podatak, nikako raw podatak preuzet od korisnika. Naravno, imajuci sve ovo u vidu, gore prilozena skripta niposto ne sme da se koristi u realnim uslovima vec ima iskljucivo edukativnu svrhu i treba da bude jos (mnogo) prepravljena/doradjena dok ne dodje u formu prave submit skripte. :)