ugrás a tartalomhoz

változók

daniel takacs · 2005. Jún. 11. (Szo), 10.56
hello
van egy kis problémám. egyszerűen nem hajlandó felismerni az apacsom a globális változókat. átállítottam a methodot, próbáltam a globals-szal, de nem megy egyik sem... az egész elég cikis, mert az űrlapfeldolgozások és az adatbázis-lekérdezések is meg vannak lőve... (a szerver easyphp néven fut, ami tartalmaz egy 1.3.27es apacsot (php 4.3.3), meg mysqlt (4.0.15öt) de az most nem lényeges).
valszeg láma vagyok, de ezt negligálnám. segítsetek!
dani
 
1

apacs?

Anonymous · 2005. Jún. 11. (Szo), 13.47
Pontosan miről is van szó?
A POST-olt, és GET-elt adatokat nem ismeri fel? Az nem az apache, hanem a php dolga.
Allitsd át a register_globals-t "on"-ra. Bár ez a lehető legkorszerűtlenebb megoldás. Inkább hivatkozz a változókra úgy, hogy $_POST['valtozo']
Vagy ha nem akarod az egész programot újraírni, akkor tegyél egy
extract($_POST,EXTR_OVERWRITE);
extract($_GET,EXTR_OVERWRITE);

sort valamelyik include-olt file-ba.

Gyulus
2

függvény

bbalint · 2005. Jún. 11. (Szo), 14.13
van olyan is, hogy import_request_variables(), ami a fentebb levő két extract() függvényhívást hivatott helyettesíteni; illetve a $_POST, $_GET mellett a $_COOKIE tömb elemeit is a globális név-térbe helyezi el szépen.
ha használsz munkamenet-kezelést (session) akkor még esetleg a $_SESSION tömböt is érdemes beimportálni:

<?php
  @import_request_variables('GPC', ''); // GET, POST metódusú és "süti" adatok importyálása
  extract($_SESSION, EXTR_OVERWRITE);
?>
viszont, figyelem: ha a munkamenetben tárolt dolgokat meg akarod változtatni, akkor hivatkozz rájuk a $_SESSION tömbbel

bbalint
3

hát ez az, a $_GET['...']

daniel takacs · 2005. Jún. 11. (Szo), 18.23
hát ez az, a $_GET['...'] és a $_POST['...'] -ot nem ismeri fel. igazából ezért is írtam, mert ezeknek illene működni bárhogy, bármikor, nem?
de köszönöm a tanácsokat, kipróbálom őket.
4

php.ini

Anonymous · 2005. Jún. 11. (Szo), 20.24
Mintha valamelyik előző életemből arra emlékeznék, hogy érdemes ilyenkor megnézni, hogy a php megtalálja-e a php.ini-t.
Csinálj egy üres php file-t, írd bele, hogy <? phpinfo(); ?>, és futtasd le.
Nézd meg, hogy mit hisz, szerinte hol van a php.ini. Ha a valóságban nem ott van, akkor tedd oda. Ha igen, akkor passz.

Gyulus
5

igen

bbalint · 2005. Jún. 11. (Szo), 21.51
ilyen szuperglobális változók a PHP 4.1.0 óta vannak; nézd meg, hogy legalább olyan verzió számú-e a program.
ha igen, akkor nézd meg, egyáltalán mi van az emlegetett tömbökben:

<?php
  print_r($_GET);
  print_r($_POST);
  print_r($HTTP_GET_VARS);
  print_r($HTTP_POST_VARS);
?>
bbalint
6

köszönöm:)

daniel takacs · 2005. Jún. 13. (H), 07.59
köszönöm:)
7

részletezés

daniel takacs · 2005. Jún. 14. (K), 13.01
kicsit konrketizálnám a dolgot, leirom, hogy mi van és mit ir ki erre a gép:

<html>
...
<?php
function index() {
$fa = fopen ("index.con", 'r');
while (! feof($fa)) {
$tart = fgets($fa);
}
fclose ($fa);
};
?>
... (<head>...</head><body>)
<div id="content" name="content">
<div id="contenthead" name="contenthead"><br><br></div>
<?php
echo $tart;
?>
</div>
...
<div id="menu" name="menu">
<div id="menuhead" name="menuhead">menü</div>
<span id="index" onclick="<?php index(); ?>">kezdõlap</span>
</div>
...(</body></html>)

namármost, erre a reakció:
Notice: Undefined variable: tart in c:\program files\easyphp1-8\www\uj\html\index.php on line 81

a 81. sor az echo $tart-ra vonatkozik. mit lehet ezen jobban definiálni? hasonló hibaüzi, ha (mint a témanyitásnál emlitettem) globális változókat szeretnék használni.
(a php.ini-t megnéztem, helyén van.)
8

egész érdekes...

Anonymous · 2005. Jún. 14. (K), 13.25
1. a $tart változó csak az index fv-edben létezik.

2. <span id="index" onclick="<?php index(); ?>">kezdõlap</span> azt eredményezi, hogy minden oldallekérésnél lefut az index fv-ed, mivel a php a szerver oldalon hajtódik végre, és a php csak az "index();" parancsot veszi figyelembe. az onclick esemény a kliensoldalon hajtódik végre, oda nem lehet php parancsokat írni...
9

aha. valszeg akkor azért

daniel takacs · 2005. Jún. 14. (K), 14.08
aha. valszeg akkor azért irtam igy, mert javascripttel oldottam meg már hasonló problémát, és nem állt át az agyam. ezek szerint az egész menüt phpval irjam ki? vagy hogy? elég lúzer dolog, tudom...
és hol deklaráljam a változókat, hogy ne legyen ez a probléma?