Üdv!
Volt egy SuSE8.x rendszer. Migráltam Debian GNU/Linuxra (webszerver).
Az új rendszer Debian GNU/Linux Etch. Apache2 PHP5
Egyik weboldal joomlával megy. Az új rendszerben azonban ezzel a hibaüzenettel tér vissza egyik lap:
Sep 17 22:30:19 localhost php5: PHP Fatal error: Cannot redeclare gettext() in /var/www/nnh/mosaddphp/application_form.php on line 184
Megnéztem a mi van a fenti fájlban a fenti sornál:
function getText ($nl_datas,$field) { if (isset($nl_datas[$field])) { return $nl_datas[$field]; } else { return ""; } }
Nekem ebből úgy tűnik, hogy újra akarta a deklarálni a gettext függvényt, amely már létezik egyébként is.
(A baj az, hogy PHP-hez nem értek, de mégis nekem kell megcsinálnom.)
Kérdés: Nem lehet újradeklarálni? Vagy valamilyen feltételnek nem felel meg ez az újradeklaráció?
A CMS-ekhez sem értek. Ezt kódot a webmester adta hozzá a joomlához?
Nem hiszem, hogy mindent a számba kell rágni, de merre induljak? Vélemények is jól jönnének.
Előre is köszönöm!
termih
- 1320 megtekintés
Hozzászólások
Szia!
Ez azt mondja, hogy a PHP-hez fel van téve a gettext kiterjesztés, aminek szintén van egy gettext() nevű függévnye. Az lehet a megoldás a problémára, hogy a php.ini-ben kikommentezed az extension=gettext.so sort.
- A hozzászóláshoz be kell jelentkezni
Kedves Tgyurci!
Köszönöm a hozzászólásod!
A phpnek nincsen gettext kiterjesztése. Az alapból bele van "drotozva". Ezért nincs is mit kikomentezni. Az ini fájlok sem a php5-ben sem a php4-ben nem tartalmaznak gettext sort. Biztonság kedvéért azért rákerestem a gettext szóra a beállításfájlokba, de azokban nincs sajnos ilyen. Mondjátok, ha valaki nem ért ezzel egyet.
Vagy a csak a Debianban gyári változatban van így, és egyébként lehet kiterjesztésként fordítani?
Ui: A régi SuSE8.x rendszerben nem tudom, php3 vagy php4 volt. Ha php3 akkor talán érthető a gond.
De keresem tovább a megoldást.
Termih
- A hozzászóláshoz be kell jelentkezni
Még annyit szeretnék hozzátenni, hogy:
Kikommenteztem az új gettext függvényt. Akkor gondja van, hogy nem megfelelő paraméter.
Ebből arra következtetek, hogy a webmester ezek szerint valóban saját gettext függvényt, írt és csak
ennyi a gond. A régit érvényteleníteni kellene. Persze a globális megoldással az is gond lehet,
hogy más weblap meg az eredeti gettextet használja.
Nincs erre egyéb php megoldás? Nem szívesen fordítanék php-t forrásból. Ha jól tévedek,
az apache-al együtt lehet csak. Éles rendszerben nem szeretnék ilyet. De ha véleményetek
szerint csak ez van, kérlek azt is írjátok meg.
Szóval kérdés: Hogyan tudom érvényre juttatni, az új gettext függvényt?
A legcsunyább megoldás: átírom a függvény új megvalósításának nevét gettext2-re, majd minden függvényhívást is
átírok getext2-re. Persze ezt is szívesen elkerülném!
Vélemény?
Termih
- A hozzászóláshoz be kell jelentkezni
a php-gettext csomag minden bizonnyal telepitve van nalad, bar szeretned, hogy ne legyen.
pedig minden bizonnyal akkor jarsz a legjobban, ha a sajat megvalositas nem hasznal foglalt nevet.
sot, ha letezik dobozos megoldas, akkor hasznald. szoval atirni nem lenne rossz otlet.
- A hozzászóláshoz be kell jelentkezni
Kedves Rka!
Ehh, valóban. Van olyan csomag, és telepítve is van. Ezek szerint a korábbi rendszerben nem volt. Akkor most két lehetőségem van:
Leszedem a php-gettext csomagot, majd reménykedem, hogy egyik éles oldal sem használja.
És akkor a jövőben sem tudja használni.
Másik átírom a függvényneveket, és akkor reménykedem, hogy nem írtam semmit el,
de örökké jó lesz.
Köszönöm a segítséget!!!
- A hozzászóláshoz be kell jelentkezni
for i in *.php ;
do
sed -ri 's/gettext/mygettext/g' "$i"
done
... es nem irsz el semmit.
(php4.2.0-val jelent meg)
- A hozzászóláshoz be kell jelentkezni
Thx for bash script!!!
Termih
- A hozzászóláshoz be kell jelentkezni