![]() |
![]() ![]() |
![]() |
![]()
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? -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[php:1:d0bc6e4d85]<?php
class test { var $zmienna; // tu deklarujemy zmienna function setVar($var) { $this->zmienna = $var; // tutaj ja przypisujemy } function printVar() { echo $this->zmienna; // tutaj odnosimy sie do tej zmiennej } } $test->new test; $test->setVar("Oto nasz maly tescik"); $test->printVar(); ?>[/php:1:d0bc6e4d85] powinno wydrukowac napis "Oto nasz maly tescik" w klasach wpierw przypisujesz zmienne $this->NAZWAZMIENNEJ a pozniej w dowolnym momencie klasy odnosisz sie przez ten sam zwrot czyli $this->NAZWAZMIENNEJ |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 866 Pomógł: 32 Dołączył: 2.06.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
czy dobrze rozumiem?
[php:1:af6e076ed6]<?php function wyswietl_zawartosc($zawartosc) { if ($zawartosc != '0') { require "$zawartosc"; } else { $zawartosc = require ('default/zawartosc.req'); echo $zawartosc; } //end if } ?>[/php:1:af6e076ed6] Powinno wyglądac tak: [php:1:af6e076ed6]<?php function wyswietl_zawartosc() { if ($this->zawartosc != '0') { require "$this->zawartosc"; } else { $zawartosc = require ('default/zawartosc.req'); echo $zawartosc; } //end if } ?>[/php:1:af6e076ed6] I wtedy bedzie ok? Sprawdze jak tylko wroce z pracy. -------------------- |
|
|
![]()
Post
#4
|
|
![]() 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 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Proszę edytować swoje posty i nie pisać jednego pod drugim.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 12:04 |