Jak szybko przekazać zmienne?
Używam stworzonej przeze mnie klasy do wyswietlania stron, zmienia sie tylko zawartosc strony. nagłowek menu i stopka pozostaja bez zmian. Dane o nich sa zapisane w plikach *.req (używam takiego rozszerzenia od require). Klasa posiada funkcje do wyswietlania:
[php:1:0b9f477ce5]<?php
class strona
{
// atrybuty klasy
var $zawartosc = '0';
...
// operacje klasy
function ustaw_zawartosc ($nowa_zawartosc) // ustawienie zawartosci strony
{
$this->zawartosc = $nowa_zawartosc;
}
....
// funkacja sluzy do wyswietlania strony:
function wyswietl()
{
echo "<html><head>";
$this->wyswietl_meta();
$this->wyswietl_tytul($this->tytul);
$this->wyswietl_slowa_kluczowe($this->slowa_kluczowe);
$this->wyswietl_style();
echo "</head><body>";
$this->wyswietl_naglowek();
$this->wyswietl_menu();
$this->wyswietl_zawartosc($this->zawartosc);
$this->wyswietl_stopke();
echo "</body></html>";
}
// funkcje wykorzystywane przez wyswietl()
....
// aż do
function wyswietl_zawartosc($zawartosc)
{
if ($zawartosc != '0')
{
require "$zawartosc";
}
else
{
$zawartosc = require ('default/zawartosc.req');
echo $zawartosc;
} //end if
}
}
?>[/php:1:0b9f477ce5]
Strona z formularzem dodaj.php:
przesyła zawartosc do strony dodane.php
[/php]
[php:1:0b9f477ce5]<?php
require ('classes/strona.cls');
$dodaj = new strona();
$zawartosc_strony = 'pages/dodaj.req';
$dodaj -> ustaw_zawartosc ($zawartosc_strony);
$dodaj -> wyswietl();
?>[/php:1:0b9f477ce5]
przesyła zawartosc do strony dodane.php ktura wyglada podobnie.
Plik dodaj.req formularza konczy sie:
[xml:1:0b9f477ce5]
<INPUT TYPE="TEXT" NAME="ilosc_cd" MAXLENGHT="3"><BR>
</TD>
</TR>
<TR>
<TD>
<INPUT TYPE="SUBMIT" VALUE="DODAJ"><BR>
</TD>
</TR>
</TABLE>
</FORM>[/xml:1:0b9f477ce5]
na sronie dodane dodane.req nie działa
[php:1:0b9f477ce5]<?php
$nazwa = $HTTP_POST_VARS['nazwa'];
?>[/php:1:0b9f477ce5]
Ale na stronie dodane.php działa co jest grane?
Jeszcze raz dodam ze dodane.req jest wywoływane przez zagnierzdzone funkcje klasy w dodane.php.
Czy to chodzi o zasieg zmiennych? A jesli tak to czy [php:1:0b9f477ce5]$HTTP_POST_VARS[/php:1:0b9f477ce5]
nie jest zmienna superglobalna? Z góry dziekuje za wskazanie ewentualnych błedów lub rozwiązan.
PS. Znalazłem rozwiązanie poprzez zastosowanie pliku tymczasowego ale nie jest to rozwiazanie ani ładne ani wygodne. Plik jest tworzony przez skrypt w trakcie kilku pierwszych linijek a w polowie juz usuniety, wiec nim dojdzie do konca nie ma po tym tempi sladu. Czy jest to bezpieczne rozwiazanie?