Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wersja skrócona print, echo
Forum PHP.pl > Forum > PHP > Object-oriented programming
Tomplus
Próbuje przerobić stronę z PHP4 na PHP5, ale już w pierwszej chwili pojawił mi się błąd,

mianowicie z otwarcie parsera <?, to nie było problemem gdyż tylko wystarczy dodać <?php i bo kłopocie, ale nie o to mi się rozchodzi.

w plikach które zawierały wiele textu stosowałem zagnieżdzanie php
Kod
<?=$var?>

i było to dobre.

w PHP5 już tak nie jest zamiast zmiennej $var to drukuje się cały ten kawałek skryptu.

dopisując po ? php też nic nie daje,
a jakoś nie widzi mi się aby wszędzie pisać
Kod
<?php print $var;?>


jest jakaś zastępczy sposób wyświetlania tej met. drukowania textu jak
Kod
<?=$var?>

questionmark.gif
dtb
manual:

Cytat
short_open_tag boolean

Tells whether the short form (<? ?>) of php's open tag should be allowed. If you want to use php in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with php, for example: <?php echo '<?xml version="1.0"'; ?>. Also if disabled, you must use the long form of the php open tag (<?php ?>).

Notatka: This directive also affects the shorthand <?=, which is identical to <? echo. Use of this shortcut requires short_open_tag to be on.


ustaw opcje short_open_tag na 1 w pliku php.ini, lub na początku pliku php daj:
  1. <?php
  2. ini_set('short_open_tag', 1);
  3. ?>
Tomplus
i właśnie tutaj mam problem, gdyż sam już wczesniej ustawiłem short_open_tag na ON zamiana na TRUE, 1 tez nic nie dawało, ale spróbowałem z za radą i zastosowałem w skrypcie ini_set()
i wciąż nie działa tak jakbym ja chciał

Kod
short_open_tag = On




Kod
<?php
ini_set('short_open_tag', 1);
?>
... text ...
<?=$var?>
... text ...



a wyświetla

Kod
... text ...
... text ...



bez czy z ini_set() rezulatat ten sam.
co jest nie tak?
NetJaro
Utwórz plik .htaccess i daj w nim:

Kod
phpflag short_open_tag 1
Tomplus
ehh, nadal nic, to samo, bez zmian
plik oczywiście umieściłem w katalogu /conf apacza
NetJaro
Tzn. masz dostęp do konf. apache/php? Jak tak, to.. LOL winksmiley.jpg

Plik .htacces działa tylko na Unix winksmiley.jpg
dr_bonzo
Podstawowe pytania:
1.
  1. <?php
  2. ini_set('short_open_tag', 1);
  3. ?>
  4. ... text ...
  5. <?=$var?>
  6. ... text ...

^^ to jest caly kod, ktory testujesz? masz zdefiniowana wartosc $var?


2. Resetowales apacha po zmianch w php.ini?
Tomplus
@netjaro
to chyba nei powiedziałem
mam serwer WAMP

@dr_bozno
zawsze! zawsze resetuje jak robie jakieś zmiany.

$var jest zdefiuniowany wcześniej $var=$_GET['var']; gdyż pobiera dane z URLa, ale podając na początku skryptu np. zaraz za ini_set() to daje ten sam rezulatat.
czyli $var napewno zawiera jakąś treść.
NetJaro
WAMP = Windows, więc htaccess nic nie da..
Tomplus
nie sposób zauwazyć że się nie działa
dr_bonzo
1.
Cytat
zawsze! zawsze resetuje jak robie jakieś zmiany.
OK

2. Czemu .htaccess mialby nie dzialac pod windowsem?

3. Zawsze mozesz latwo zamienic "<?=" na "<?php echo "

4.
  1. <?php
  2. $var = "lol";
  3. ?>
  4. blabla
  5. [<?=$var?>]
  6. the end.
  7. ==========

i dostaje
Kod
blabla
[lol]
the end.
==========

a w php.ini mam ustawione
short_open_tag = On

5.
Jak mowi manual:
short_open_tag --> PHP_INI_PERDIR
PHP_INI_PERDIR 2 Entry can be set in php.ini, .htaccess or httpd.conf

czyli
ini_set('short_open_tag', 1);
nie zadziala

6. moze php nie akceptuje ci pliku php.ini? Sprawdz czy zmiany w nim sa zauwazalne, np.
  1. <?php
  2. echo $zmiennaNiezadeklarowana
  3. ?>

powinienes dostac notice'a
zmien error_reporting na E_ALL a potem na zero (0) i sprawdz czy to cos zmieni
Tomplus
Cytat(dr_bonzo @ 2006-03-04 15:00:26)
6. moze php nie akceptuje ci pliku php.ini? Sprawdz czy zmiany w nim sa zauwazalne, np.
  1. <?php
  2. echo $zmiennaNiezadeklarowana
  3. ?>

powinienes dostac notice'a
zmien error_reporting na E_ALL a potem na zero (0) i sprawdz czy to cos zmieni

error_reporting = 0 a później error_reporting = E_ALL

nic nie zmieniło, żadnych błędów.

oczywiście nie potrzebne error_reporting wykomentowałem ;
Wave
Cytat("NetJaro")
Plik .htacces działa tylko na Unix

rotfl, skąd bierzesz takie rewelacje?
Cytat
plik oczywiście umieściłem w katalogu /conf apacza

A nie powinnien on być w katalogu ze skryptem?
Tomplus
Cytat(Wave @ 2006-03-04 15:25:43)
Cytat
plik oczywiście umieściłem w katalogu /conf apacza

A nie powinnien on być w katalogu ze skryptem?

yy, pewnie masz racje ze katalogu ze skryptem, tylko dlaczego jak dodaje ten plik wyskauje mi error 500 ?
Internal Server Error

he?

error_raporting ustawiłem na E_ALL & ~E_NOTICE & ~E_STRICT, ale na porzpednich (za rada dr_bonzo) też jest ten blad .
NetJaro
Tom+, kontakt z Administratorem tongue.gif

Wave, pomyłka biggrin.gif Nigdy nie bawiłem się w php na Windowsach biggrin.gif
Tomplus
@NetJaro
ja jestem tym adminem winksmiley.jpg
fakt że na Windowsie, ale od czegoś trzeba zaczać
dr_bonzo
sprawdz czy php uzywa php.ini (zajrzyj do manuala od instalacji php na windowsie -- zam tego nie robilem od kilku lat wiec nie znam szczegolow, gdzie jaki plik przeniesc):

zobacz wynik funkcji phpinfo() i sprawdz wartosc:
"Configuration File (php.ini) Path"
i tam wrzuc php.ini
Tomplus
Cytat(dr_bonzo @ 2006-03-04 17:17:13)
zobacz wynik funkcji phpinfo() i sprawdz wartosc:
"Configuration File (php.ini) Path"
i tam wrzuc php.ini

brakowało tej rady!!

dzięki!

teraz już działa tak jak trzeba winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.