[ verodostojan @ 16.03.2012. 18:36 ] @
Počeo sam da učim php kad odjednom problemi.

Koristim jasne primere iz knjige (PHP4 od početka...) međutim, kada pogledam rezultat u browseru, ne ispisuje mi celokupan rezultat.
Evo i jasnog primera:

HTML file sačunan kao checkbox.html
Code:
  
<html>
 <head>

 </head>

 <body>

 <form method = post action = "checkboxes.php">
  
Have you ever eaten haggis before?
<input name = "choise1" type = "checkbox" value = "haggis">
<br>

Have you ever eaten snails before?
<input name = "choise2" type = "checkbox" value = "snails">
<br>

Have you ever eaten locutus before?
<input name = "choise3" type = "checkbox" value = "locutus">
<br>

<input type = submit>

 </body>
</html>


Drugi file sačuvan kao checkboxes.php
Code:

<html>
<head></head>
<body>

<?php

echo "$choise1<br>";
echo "$choise2<br>";
echo "$choise3<br>";

?>

</body>

</html>


Kada pokrenem file checkbox.html i odaberem nešto od ponuđenog, nakon pritiska na "Submit"u browseru dobijam praznu stranu umesto neko od izavranih jela.
Proveravao sam 80 puta, isto tako piše i u knjizi samo što treba da da neki rezultat.
Instalirao sam WAMP koji pokreće PHP5, ovo jeste knjiga za PHP4 mada ne vidim razlog zašto ova jednostavna skripta nebi radila.
Isti problem se javlja kada koristim radiobox


Ako neko zna u čemu je zapravo problem, bio bih mu veoma zahvalan.

Pozdrav.
[ pajaja @ 16.03.2012. 18:43 ] @
Probaj
Code (php):

echo $_POST['choise1'];
...
 
[ verodostojan @ 16.03.2012. 19:00 ] @
Radi!!!
Hvala veliko!

U čemu je bio problem?

Da li mogu da nastavim sa primerima iz knjige ili ko blesav da za svaku sitnicu postavljam teme na forumu?

[ pajaja @ 16.03.2012. 19:38 ] @
Kada HTTP post metodom prosledis neke parametre oni se svi smestaju u niz predstavljen globalnom promenljivom $_POST. Tako da promenljivim pristupas kao $_POST['name']. $choise1, $choise2, $choise3 iz tog gore primera nisu definisane nigde, pa se zato nije pojavljivalo nista. Koja je knjiga u pitanju? Cudno je sto postoji ovakva greska.
[ PHPovac @ 16.03.2012. 19:42 ] @
Knjiga se oslanja na register_globals koji je bio aktuelan u vreme php4.
Za pokretača teme - uči php5, beži od php4. zastareo je, ne radi na php5 serverima i nije siguran!
[ Nemanja Avramović @ 16.03.2012. 20:02 ] @
Ako je PHP(4) kod lepo pisan radiće i na serverima koji imaju PHP5 (većina). Ja od početka koristim _POST i _GET

Poenta je, kao što je neko pomenuo, da je taj kod iz knjige toliko star da je pisan uzimajući u obzir register_globals podešavanje PHP-a, koje je automatski sve parametre prosleđene stranici (bilo POST ili GET metodom) automatski pretvaralo u PHP promenljive.

E sad, neiskusni programer bi mogao ovako nešto da napiše:
Code:

//...

if (korisnik_je_administrator())
{
$admin = true;
//odradi jos nesto
}

if ($admin == true)
{
 //prikazi osetljive informacije
}

//...



Recimo da imamo funkciju korisnik_je_administrator() koja vraca true ili false (da li je korisnik administrator). U slučaju da korisnik jeste administrator promenljiva $admin bi bila setovana na true i to bi za rezultat imalo prikaz osetljivih informacija. Ako korisnik nije administrator funkcija ce vratiti false, $admin NEĆE biti setovan (i neće biti true) i informacije neće biti prikazane.

Međutim, ukoliko je register_globals uključen (a po defaultu više nije, i to je dobro), slanje ovakvog HTTP zahteva bi prevarilo sistem:

stranica.php?admin=1

register_globals bi napravio promenljivu $admin i setovao bi je na 1, a pošto je php prilično labav kada su tipovi podataka u pitanju, on bi to prepoznao i kao true (osim ako se za poređenje koristi ===).

Od kada je isključen register_globals GET parametrima se pristupa preko $_GET['parametar'] a POST parametrima se pristupa preko $_POST['parametar']

Zato ti prijateljski savetujem da promeniš knjigu kako ne bi dolazio u slične situacije :)
[ verodostojan @ 16.03.2012. 20:29 ] @
Hvala brate moj!

Knjigu bataljujem, pocinjem sa w3school i phpmanual.

Nadam se da ce biti dobro za pocetak.

Hvala svima jos jednom.
[ Milos911 @ 17.03.2012. 00:27 ] @
Moj savet je da probas http://www.tizag.com/phpT/ umesto w3... Kad sam pocinjao, iako u osnovi isti, tutoriali na tizagu su mi bili mnogo vise razumljivi od onih na w3...
[ plus_minus @ 17.03.2012. 20:38 ] @
@verodostojan

Ne treba ti ni w3.

Na w3schools malo umeju da izmlate.

Tamo možeš naći par lepih php/ajax primerea, itd....
koliko sam ja mogao da primetim... a nešto nisam vičan posećivanju tog sajta.

Na tom sajtu imaju fin arsenal objašnjenja, za css.. recimo.

Samo Php Manual ti treba.

Još jedna lokacija gde ima izuzetno kvalitetnih odgovora na gotovo sve, jeste Stack Overflow.

A php inače i treba (po meni) da bude tako 'nerazumljiv', jer programiranje ustvari i jeste - rešavanje problema.

Dakle, obrni - okreni, php.net sajt ima veoma kvalitetno ispisano štivo. Baš onakvo kakvo treba da bude.

Ako imaš dovoljno vremena, cilj i volju da ostvariš ono što si naumio, te solidno poznaješ engleski jezik, ostvarićeš napredak i krenuti da koristiš php sa ljubavlju, vrlo brzo, nemoj ni da sumnjaš u to.