Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie zminnych pomiędzy funkcjami
sztosz
post
Post #1





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sztosz
post
Post #2





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Spróbowałem tak jak mi radzono, ale nie dało to rezultatu, niestety, wszystko ładnie sie wyswietla jest ze sobą połączone ale nadal zmienne nie są przenoszone, niestety. Jedyny sposób jaki znam to albo pliki tymczasowe, albo wywoływanie zmiennych wraz z funkcjami czy jest jakikolwiek inny sposób?

|| Zrozumiałem, Przepraszam.
V
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 22:22