Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Internet > Web razvoj > Web dizajn

Web dizajn Saveti u vezi dizajna sajtova

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 14.10.2011, 13:35   #1
Dark Champion
Član
 
Član od: 22.12.2007.
Poruke: 245
Zahvalnice: 12
Zahvaljeno 80 puta na 42 poruka
Određen forumom PHP Problem

Poceo sam juce da ucim php i dosao sam do funkcija. Shvatio sam ono osnovno tipa:
PHP kod:
<?php
function test() {
echo 
"Isprobavam funkcije";
}
test();
?>
To kapiram i prelagano je. A sada sam hteo da testiram prethodnu lekciju u kombinaciji sa novom i to da kombinujem formu koja ce biti povezana sa php fajlom. I ovakav kod sam uradio:

Kod:
<html>
<body>
<form action="test.php" method="post">
<input name="ime" type="text" />
<input type="submit" />
</form>
</body>
</html>
I napravio test.php

PHP kod:
<?php
$ime 
$_POST['ime'];
function 
prikazi_ime() {
echo 
"Zdravo" $ime ".<br />";
echo 
"Dobrodosao!";
}
prikazi_ime();
?>
E sada me interesuje zasto nece da uzem ime koje se otkuca u formi i izbaci tekst Zdravo pa promenljiva ime (tj. to sto korisnik otkuca)? Polomi se ali ne mogu da ukapiram gde gresim.
Dark Champion je offline   Odgovor sa citatom ove poruke
Stara 14.10.2011, 14:09   #2
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: PHP Problem

Problem je sa scope-om - funkcije nemaju pristup globalnim promenljivama.

Tačnije, imaju, ali na sledeći način:

PHP kod:
<?php
$ime 
$_POST['ime'];
function 
prikazi_ime() {
    global 
$ime;
    
    echo 
"Zdravo" $ime ".<br />";
    echo 
"Dobrodosao!";
}
prikazi_ime();
Obrati pažnju na keyword global.
EclipsE je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku EclipsE na korisnoj poruci:
Dark Champion (14.10.2011)
Stara 14.10.2011, 14:20   #3
Dark Champion
Član
 
Član od: 22.12.2007.
Poruke: 245
Zahvalnice: 12
Zahvaljeno 80 puta na 42 poruka
Određen forumom Re: PHP Problem

E mozes mi sada objasniti zasto se mora koristiti global da bih kairao logicki a ne napamet
Dark Champion je offline   Odgovor sa citatom ove poruke
Stara 14.10.2011, 14:27   #4
Neutrino
Deo inventara foruma
 
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
Određen forumom Re: PHP Problem

Ili još bolje koristi $_POST direktno u funkciji jer su superglobalne promenjljive (http://www.php.net/manual/en/languag...perglobals.php) dostupne svuda u skriptu pa ne moraš da koristiš omraženo deklarisanje globalnih promenjljivih.

PHP kod:
<?php 
function prikazi_ime() { 
    echo 
"Zdravo" htmlentities($_POSTENT_QUOTES"utf-8") . ".<br />"
    echo 
"Dobrodosao!"

prikazi_ime();
?>
Nemoj da te buni ova htmlentities funkcija koju za sada možeš da ignorišeš potpuno. Ona služi da zaštiti kod od zloupotreba jer prikazuješ sadržaj koji dolazi direktno od korisnika.

Imaš i drugu varijantu u kojoj možeš ime da proslediš kao argument funkciji.
PHP kod:
<?php 
function prikazi_ime($ime) {      
    echo 
"Zdravo" htmlentities($imeENT_QUOTES"utf-8") . ".<br />"
    echo 
"Dobrodosao!"
}
$ime $_POST['ime'];
prikazi_ime($ime);
?>
Citat:
Dark Champion kaže: Pregled poruke
E mozes mi sada objasniti zasto se mora koristiti global da bih kairao logicki a ne napamet
Ajd ja ću a EclipsE se valjda neće ljutiti

U PHP-u za razliku od većine drugih jezika promenjljiva koja je definisana van bilo koje funkcije (kao tvoje $ime) nije automatski vidljiva kad izvršavanje "uđe" u funkciju. Bukvalno, svaka pozvana funkcija automatski stvara oko sebe izolaciju (scope) i može da vidi samo ono što je definisano u njoj (osim u par slučaja u koje ne bih zalazio da te ne bih zbunio).

E sad bitna stavka... Ova linija global $ime unutar funkcije ne znači "ok sad definišemo promenjljivu pod imenom $ime koja će biti vidljiva u ostalom delu programa" nego "ok negde u ostatku koda postoji promenjljiva $ime a mi hoćemo da možemo da joj pristupimo iz ove funkcije".

Dakle global ne započinje definisanje nove globalne promenjljive već samo omogućava funkciji da i ona može da pristupi promenjlivoj van nje.

http://www.php.net/manual/en/languag...bles.scope.php

Poslednja ispravka: Neutrino (14.10.2011 u 14:39)
Neutrino je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Neutrino na korisnoj poruci:
Dark Champion (14.10.2011)
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Problem - BSOD svaki dan po 2-3 puta Cursed996 Kvarovi 46 14.6.2011 8:52
Problem (valjda) sa pločom jonathan Kvarovi 21 28.2.2011 1:09
Problem sa znakom '%' u php skriptu dbaja Serverske aplikacije i baze podataka 5 2.6.2009 13:36
PHP MYSQL problem dark mesiah Serverske aplikacije i baze podataka 3 12.5.2009 18:00
Problem sa memory_limit u php Kasper_Dobri_Duh Web razvoj 4 11.11.2007 4:49


Sva vremena su po Griniču +2 h. Sada je 21:31.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com