Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z wczytywaniem zmiennej do klasy
Dunio
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


Siemka wszystkim
Mam taki problem. Jakiś czas temu zbudowałem sobie kod klasy zawierający całą strukturę strony. Działał on mniej więcej na tej zasadzie że klasa posiadała zmienną odpowiadającą za wyświetlenie zawartości głównej okna strony. Wystarczyło zdeklarować tą zmienną przed wywołaniem funkcji klasy wyświetlającej całą strony. Problem pojawił się gdy chciałem tam wsadzić jakiś kod php.
Wyglądało to mniej więcej tak że w kodzie klasy była taka część
  1. <?php
  2. echo $this->zawartosc
  3. ?>

a kod każdej strony wyglądał tak:
  1. <?
  2.   require('include/style.inc');
  3.   $strona= new strona();
  4.   $strona->zawartosc = "echo'cos tam'; ";
  5.   $strona->wyswietl();
  6. ?>

Przy wywołaniu tego w ten sposób efekt był taki że w polu gdzie powinna znajdować się treść pojawiało się coś takiego :
  1. <?php
  2. echo'cos tam';
  3. ?>

Próbowałem odwołać się do tej zmiennej w klasie bez użycia "echo" ale wtedy pole okazywało się puste
A więc dzięki z góry za pomoc i pozdro
P.S. Nie umieszczałem kodu całej klasy bo uznałem to za niepotrzebne ale jeśli takie się okaże to piszcie.

Ten post edytował ayeo 24.07.2009, 06:38:57
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 20)
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Twoja klasa działa doskonale. Przecież wartością zmiennej jest właśnie string "echo'cos tam';"! Jednak użycie echo "kod_php"; nie spowoduje wykonania kodu spomiędzy cudzysłowów. Nie wiem jak wpadłeś na ten szalony pomysł, ale zapraszam do manuala (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Temat przenoszę na Przedszkole bo nie ma nic wspólnego z OOP.

Pozdrawiam!
Go to the top of the page
+Quote Post
Kojak
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 5
Dołączył: 11.09.2007
Skąd: Kielce

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


Gdy przypisujesz do zmiennej w klasie, to nie dawaj echo:

  1. <?
  2.   require('include/style.inc');
  3.   $strona= new strona();
  4.   $strona->zawartosc = "cos tam";
  5.   $strona->wyswietl();
  6. ?>
Go to the top of the page
+Quote Post
lukada
post
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 2
Dołączył: 4.02.2009

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


Cytat(Kojak @ 24.07.2009, 08:16:12 ) *
Gdy przypisujesz do zmiennej w klasie, to nie dawaj echo:

  1. <?php
  2. require('include/style.inc');
  3.   $strona= new strona();
  4.   $strona->zawartosc = &#092;"cos tam\";
  5.   $strona->wyswietl();
  6. ?>

Chyba najlepiej byłoby potem w funkcji wyswietl() widoku ją zwracać(return $this->zawartosc;), która jak dla mnie powinna stanowić zmienną prywatną klasy. Poza klasą zmieniałbyś ją po prostu za pomocą funkcji.
Go to the top of the page
+Quote Post
Dunio
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


no tak : wszystko by się zgadzało i też mi to przyszło do głowy ale problem w tym że bez "echo" nie wyświetla się nic !
Go to the top of the page
+Quote Post
ayeo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


A może pokażesz nam tajemniczą metodę wyświetl(); Bo nasz etatowy jasnowidz jest nad morzem w związku z urlopem i inaczej nic nie poradzimy. Na domiar złego szklana kula się gdzieś zapodziała. Nie ma rady, musisz wkleić kod swojej klasy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Pozdrawiam!
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


echo $obiekt->wyswietl() ?

Podstawy PHP.
Go to the top of the page
+Quote Post
ayeo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


~fifi209, nazwa mnie zmyliła (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) myślałem, że wyświetl() robi echo (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Dunio
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


no to macie kod klasy :
  1. <?
  2.  
  3. include('include/config.php');
  4. mysql_select_db($baza,$connection) or die ('mysql_error()');
  5.  
  6.   class strona
  7.   {
  8.      public $tytul='tytul strony';
  9.      public $zawartosc='';
  10.      
  11.      public function wyswietl(){
  12.         echo"<html><head>";
  13.         $this->wyswietltytul();
  14.         $this->wyswietlstyle();
  15.         echo"</head><body>";
  16.  
  17.         echo"<div id='container'>";
  18.         $this->wyswietltop();
  19.         $this->wyswietlgmenu();
  20.         $this->wyswietlpanelnews();
  21.         $this->wyswietllewemenu();
  22.         $this->zawartosc;
  23.         $this->wyswietlprawemenu();
  24.         echo"</div>";
  25.  
  26.         $this->wyswietlstopke();
  27.         echo"</body></html>";
  28.    }
  29.      public function  wyswietltytul(){
  30.         echo"<title>{$this->tytul}</title>";
  31.      }
  32.  
  33.      public function wyswietlstyle(){
  34.         echo"<link rel='Stylesheet' type='text/css' href='include/style.css'>";
  35.      }
  36.  
  37.      public function wyswietltop(){
  38.         include('include/config.php');
  39.        echo"
  40.        <div id='top_foto'>
  41.            <div id='wypelnienie_top'>            
  42.            </div>
  43.            <div id='logowanie'>
  44.        ";
  45.        
  46.        
  47.        
  48.         $this->wyloguj();
  49.         $this->sprawdzenie_danych ();
  50.         $this->wyswietl_formularz_logowania();
  51.         $this->przycisk_wyloguj();
  52.         $this->rejestracja();
  53.        
  54.        echo"            
  55.            </div>
  56.            </div>
  57.             ";
  58.      }
  59.  
  60.      public function wyswietlgmenu(){
  61.         echo"<div id='gmenu'>
  62.           <img src='grafika/przycisk.jpg'><img src='grafika/przycisk.jpg'><img src='grafika/przycisk.jpg'><img src='grafika/przycisk.jpg'><img src='grafika/przycisk.jpg'>
  63.         </div>";
  64.      }
  65.  
  66.      public function wyswietlpanelnews(){
  67.                      echo"<div id='panelnews'>
  68.                      <div id='panelnews_maly'>
  69.                      <table>
  70.                      ";
  71.                      
  72.                       include('include/config.php');
  73.                       $kategoria=$_GET['kate'];
  74.                       mysql_select_db ($baza)  or die ('mysql_error()');
  75.                       $pokaz="select * from news ORDER BY id DESC LIMIT 5";
  76.                       $rezultat=mysql_query($pokaz,$connection) or die ('blad');
  77.                       if($rezultat){
  78.                          while($wiersz=mysql_fetch_array($rezultat)){
  79.                                $id=$wiersz['id'];
  80.                                $nazwa=$wiersz['nazwa'];
  81.                                $opis=$wiersz['opis'];
  82.                                $autor=$wiersz['autor'];
  83.                                $data=$wiersz['data'];
  84.                                   echo"
  85.                                     <tr>
  86.                                     <td>
  87.                                        <table width='450' border='1'><tr><td width='370'>$nazwa</td><td width='80'>$data<br></td></tr></table>
  88.                                     </td>
  89.                                     </tr>
  90.                                   ";
  91.                            }
  92.                }
  93.                        
  94.                        echo"
  95.                        </table>
  96.                        </div>
  97.                        <div id='panelnews_maly2'>
  98.                        <table>
  99.                        ";        
  100.                          include('include/config.php');
  101.                          $kategoria=$_GET['kate'];
  102.                          mysql_select_db($baza,$connection) or die ("mysql_error");
  103.                          $pokaz="select * from music ORDER BY id DESC limit 5";
  104.                          $rezultat=mysql_query($pokaz,$connection) or die ('blad');
  105.                              if($rezultat){
  106.                                while($wiersz1=mysql_fetch_array($rezultat)){
  107.                                   $id1=$wiersz1['id'];
  108.                                   $nazwa1=$wiersz1['nazwa'];
  109.                                   $opis1=$wiersz1['opis'];
  110.                                   $link1=$wiersz1['link'];
  111.                                   $autor1=$wiersz1['autor'];
  112.                                   $data1=$wiersz1['data'];
  113.                                      echo"
  114.                                      <tr>
  115.                                      <td>
  116.                                        <table width='450' border='1'><tr><td width='370'>$nazwa1</td><td width='80'>$data1<br></td></tr></table>
  117.                                      </td>
  118.                                      </tr>
  119.                                      ";
  120.                                }
  121.                               }
  122.        
  123.                           echo"
  124.                           </table>
  125.                           </div>
  126.                           </div>
  127.                           ";
  128.                       }  
  129.      
  130.  
  131.      public function wyswietllewemenu(){
  132.         echo"<div id='lewemenu'>
  133.            <div class='zwezenie'>jakies tam menu</div>
  134.            </div>
  135.            <div id='zawartosc'>
  136.         <div class='zwezenie'>";
  137.      }
  138.  
  139.      public function wyswietlprawemenu(){
  140.         echo"</div></div>
  141.            <div id='prawemenu'>
  142.            <div class='zwezenie'>jakies tam menu</div>
  143.         </div>";
  144.      }
  145.      public function wyswietlstopke(){
  146.         echo"<div id='stopka'>stopka</div>";
  147.      }
  148.  
  149.  
  150.  
  151. //funkcje dodatkowe !      
  152.      public function wyswietl_formularz_logowania (){
  153.        
  154.         $sesja=$_SESSION['user'];
  155.      if($sesja===0||empty($sesja)){
  156.          echo"
  157.          <form method='POST'>
  158.           Nazwa użytkownika<br>
  159.          <input type='text' name='nazwa'><br>
  160.          Hasło użytkownika<br>
  161.          <input type='password' name='haslo'><br>
  162.          <input type='submit' value='zaloguj'>
  163.          </form>  
  164.          ";
  165.          }
  166.        
  167. }
  168. public function sprawdzenie_danych (){
  169.         $data=date("Y-m-d");
  170.         $sesja=$_SESSION['user'];
  171.         $pnazwa=$_POST['nazwa'];
  172.         $phaslo=$_POST['haslo'];
  173.         if (isset($pnazwa)&&isset($phaslo)){
  174.              $wybieranie_dane="select * from users where nazwa=\"$pnazwa\" ";
  175.              $pobieranie_dane=mysql_query($wybieranie_dane) or die ('nie znaleziono');
  176.              $dane=mysql_fetch_array($pobieranie_dane);
  177.              $nazwa_from_database=$dane['nazwa'];
  178.              $haslo_from_database=$dane['haslo'];
  179.              $uprawnienia=$dane['uprawnienia'];
  180.              $ilosc_logowan=$dane['logowania'];
  181.              $ilosc_logowan++;
  182.                       if($nazwa_from_database===$pnazwa && $haslo_from_database === md5($phaslo )){
  183.                       $edycja="UPDATE users SET data='\"$data\"' , logowania='\"$ilosc_logowan\"' where nazwa='\"$pnazwa\"'" or die ('lala');
  184.      
  185.                       $wczytanie=mysql_query($edycja);
  186.                       echo"Użytkownik <b> $pnazwa </b> został zalogowany poprawnie !! <br> ";
  187.                       if($uprawnienia>1){
  188.                       echo"<a href='admin/admin.php'>kliknij aby rozpocząć administrowanie strona <br>";
  189.                       }
  190.                      $_SESSION['nazwa']=$pnazwa;
  191.                      $_SESSION['haslo']=$phaslo;    
  192.                      $_SESSION['user']=$uprawnienia;
  193.    
  194.    
  195.                      }
  196.                      else{
  197.                      echo "Nie prawidłowe dane !! ";
  198.                      }
  199.            
  200.    }
  201. }
  202.  
  203. public function wyloguj(){
  204.  $sesja=$_SESSION['user'];
  205.  $akcja=$_GET['action'];
  206.  if($akcja==="wyloguj"&&$sesja!==0){
  207.  $_SESSION['user']=0;
  208.  echo"Zostałe wylogowany poprawnie";
  209.  
  210. }
  211. }
  212. public function przycisk_wyloguj(){
  213.  if($_SESSION['user']>0){
  214.    echo"
  215.  <form method='get'>
  216.  <input type='hidden' name='action' value='wyloguj'>
  217.  <input type='submit' value='wyloguj'><br>
  218.  ";
  219.  
  220. }
  221. }
  222. public function rejestracja(){
  223. if ($_SESSION['user']===0){
  224. echo"<a href='rejestracja.php'>Zarejestruj się !</a>";
  225. }
  226. }
  227.  
  228.  
  229.  
  230.      
  231. }  
  232.  
  233. ?>


sory za "nieporządny" kod ale do pewnego czasu używałem dziwnego programu, który za każdym uruchomieniem rozwalał kod ;/
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie potrzebny nam ten kod. Co nie działa?

P.S. Co do kodu, nie mieszaj php i html w klasie - bardzo zły nawyk. Tam nie powinno być skrawka html...
Go to the top of the page
+Quote Post
Dunio
post
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


Cytat(ayeo @ 24.07.2009, 12:23:11 ) *
A może pokażesz nam tajemniczą metodę wyświetl(); Bo nasz etatowy jasnowidz jest nad morzem w związku z urlopem i inaczej nic nie poradzimy. Na domiar złego szklana kula się gdzieś zapodziała. Nie ma rady, musisz wkleić kod swojej klasy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Pozdrawiam!


Tutaj napisaliście że to jest potrzebne. A w pierwszym poście chyba już się rozpisałem co jest nie tak.
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


W klasie:
$this->zawartosc;

Zmień na:
echo $this->zawartosc;
Go to the top of the page
+Quote Post
Dunio
post
Post #13





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


zdaje się że mnie nie rozumiecie. W pierwszym poście napisałem że tak właśnie miałem to powiedzieliście żeby to zmienić. Skoro jednak mam użyć to z "echo" to napiszcie jak sformułować deklaracje zmiennej ($this->zawartosc) tak aby wyświetlała efekt działania kodu php a nie sam kod.
Go to the top of the page
+Quote Post
Fifi209
post
Post #14





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


eval" title="Zobacz w manualu PHP" target="_manual

Hmm, poszukać nie zaszkodzi...
Go to the top of the page
+Quote Post
Dunio
post
Post #15





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


próbuje zastosować tą funkcję ale to nic nie daje ;/
Go to the top of the page
+Quote Post
Fifi209
post
Post #16





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


To pokaż jak próbujesz ją zastosować ?
Go to the top of the page
+Quote Post
Dunio
post
Post #17





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


tak:
  1. <?
  2.   require('include/style.inc');
  3.   $strona= new strona();
  4.   $strona->zawartosc = "eval(include('include/rejestracja.php'))";
  5.   $strona->wyswietl();
  6. ?>


i tak:

  1. <?
  2.   require('include/style.inc');
  3.   $strona= new strona();
  4.   $wykonaj="eval(include('include/rejestracja.php'))";
  5.   $strona->zawartosc = "$wykonaj";
  6.   $strona->wyswietl();
  7. ?>
Go to the top of the page
+Quote Post
Fifi209
post
Post #18





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Kod
$strona->zawartosc = "eval(include('include/rejestracja.php'))";

Tu masz błąd składni...

Ma być:
Kod
$strona->zawartosc = "eval(include('include/rejestracja.php');)";
Go to the top of the page
+Quote Post
Dunio
post
Post #19





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


to nic nie zmienia - nadal pojawia się kod w czystej postaci.
Go to the top of the page
+Quote Post
Fifi209
post
Post #20





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


A jakbyś bez " dał ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Dunio
post
Post #21





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 11.06.2009

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


nie działa ;/
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 5.10.2025 - 23:07