Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $HTTP_COOKIE_VARS, unserialize i object-owka
Forum PHP.pl > Forum > PHP
pirat
To skrypt z ksiazki:
  1. <?php 
  2. // Ta strona wykorzystuje mechanizm szeregowania obiektów.
  3.  
  4. require_once &#092;"HtmlTemplate2.class\"; // Włączenie klasy.
  5. require_once &#092;"HtmlNavTemplate.class\"; // Włączenie klasy.
  6.  
  7. if ($HTTP_COOKIE_VARS['html_object']) {
  8.  
  9.     $page = unserialize (urldecode ($HTTP_COOKIE_VARS['html_object']));
  10.         
  11.     $page->CreatePage();
  12.        
  13. } elseif ($HTTP_POST_VARS['submit']) {
  14.  
  15.     $page = new HtmlNavTemplate (&#092;"template4.inc\"); // Utworzenie egzemplarza klasy i wskazanie szablonu, który będzie używany przez t
  16.  aplikację.
  17.  
  18.     $page->SetParameter (&#092;"PAGE_TITLE\", $page_title); // Ustawienie tytułu strony.
  19.     $page->SetParameter (&#092;"CSS_LINK\", \"style.css\"); // Ustawienie arkusza stylów.
  20.     $page->SetParameter (&#092;"BG_COLOR\", $bg_color); // Ustawienie koloru tła.
  21.     $page->SetParameter (&#092;"TEXT_COLOR\", $text_color); // Ustawienie koloru tekstu.
  22.     $page->SetParameter (&#092;"TABLE_WIDTH\", $table_width); // Ustawienie szerokości tabeli.
  23.     $page->SetParameter (&#092;"NAVIGATION_LINKS\", $page->DetermineLinks());
  24.     $page->SetParameter (&#092;"PAGE_CONTENT\", \"Oto nasza strona.\"); // Ustawienie głównej zawartości.
  25.     setcookie (&#092;"html_object\", urlencode (serialize($page)), time() + 100000, \"\", \"\", 0);
  26.     $page->CreatePage();
  27.         
  28. } else {
  29.  
  30.     $page = new HtmlNavTemplate (&#092;"template4.inc\"); // Utworzenie egzemplarza klasy i wskazanie szablonu, który będzie używany przez t
  31.  aplikację.
  32.  
  33.     $page->SetParameter (&#092;"PAGE_TITLE\", \"Ustaw swoje preferencje!\"); // Ustawienie tytułu strony.
  34.     $page->SetParameter (&#092;"CSS_LINK\", \"style.css\"); // Ustawienie arkusza stylów.
  35.     $page->SetParameter (&#092;"BG_COLOR\", \"WHITE\"); // Ustawienie koloru tła.
  36.     $page->SetParameter (&#092;"TEXT_COLOR\", \"BLACK\"); // Ustawienie koloru tekstu.
  37.     $page->SetParameter (&#092;"TABLE_WIDTH\", \"100\"); // Ustawienie szerokości tabeli.
  38.     $page->SetParameter (&#092;"NAVIGATION_LINKS\", $page->DetermineLinks());
  39.  
  40.     $content = '<form action=\"index.php\" method=post>
  41.     <table border=0 width=\"90%\" cellspacing=\"2\" cellpadding=\"2\" align=\"center\">
  42.         <tr align=\"center\" valign=\"top\">
  43.             <td colspan=\"2\" align=\"center\" valign=\"top\">Ustaw swoje preferencje układu strony HTML</td>
  44.         </tr>
  45.         <tr align=\"center\" valign=\"top\">
  46.             <td width=\"50%\" align=\"right\" valign=\"top\">Tytuł strony:</td>
  47.             <td width=\"50%\" align=\"left\" valign=\"top\"><input type=\"text\" name=\"page_title\" size=\"20\" maxsize=\"50\"></td>
  48.         </tr>
  49.         <tr align=\"center\" valign=\"top\">
  50.             <td width=\"50%\" align=\"right\" valign=\"top\">Kolor tła:</td>
  51.             <td width=\"50%\" align=\"left\" valign=\"top\">
  52.                 <select name=\"bg_color\">
  53.                 <option value=\"white\">BIAŁY</option>
  54.                 <option value=\"black\">CZARNY</option>
  55.                 <option value=\"blue\">NIEBIESKI</option>
  56.                 <option value=\"red\">CZERWONY</option>
  57.                 <option value=\"green\">ZIELONY</option>
  58.                 </select></td>
  59.         </tr>
  60.         <tr align=\"center\" valign=\"top\">
  61.             <td width=\"50%\" align=\"right\" valign=\"top\">Kolor tekstu:</td>
  62.             <td width=\"50%\" align=\"left\" valign=\"top\">
  63.                 <select name=\"text_color\">
  64.                 <option value=\"white\">BIAŁY</option>
  65.                 <option value=\"black\">CZARNY</option>
  66.                 <option value=\"blue\">NIEBIESKI</option>
  67.                 <option value=\"red\">CZERWONY</option>
  68.                 <option value=\"green\">ZIELONY</option>
  69.                 </select></td>
  70.         </tr>
  71.         <tr align=\"center\" valign=\"top\">
  72.             <td width=\"50%\" align=\"right\" valign=\"top\">Szerokość tabeli (0-100):</td>
  73.             <td width=\"50%\" align=\"left\" valign=\"top\"><input type=\"text\" name=\"table_width\" size=\"3\" maxsize=\"3\"></td>
  74.         </tr>
  75.         <tr align=\"center\" valign=\"top\">
  76.             <td colspan=\"2\" align=\"center\" valign=\"top\"><input type=\"submit\" name=\"submit\" value=\"Ustaw preferencje\"></td>
  77.         </tr>
  78.     </table>
  79.     </form>';
  80.  
  81.     $page->SetParameter (&#092;"PAGE_CONTENT\", $content); // Ustawienie zawartości.
  82.         
  83.     $page->CreatePage(); // Wysłanie strony do przeglądarki.
  84.         
  85. }
  86.  
  87. unset($page);
  88.  
  89.  
  90. ?>


działa wszystko w instrukcji else i elseif.... wsyztsko gra, ale.... gdy juz mam niby stworzony ten caly object i chce zeby zapamietal to co z formularza....czyli wykonal zaraz to co jest po if to mi mówi
Kod
Fatal error: Call to a member function on a non-object in index.php on line 11


Nie wiem w czym tkwi błąd.... czy to cos nie tak z tym serialize i unserialize?...
Vertical
Jak linia 11, skoro w tym kodzie 11 jest pusta? napisz linie od 7-15 identycznie jak było w książce...
pirat
ludzie prosze SKUPCIE sie... co moze byc zle? sad.gif

Edit: juz poprawione to u gory rolleyes.gif
Vertical
Niezdefiniowana lub źle zdefiniowana funkcja CreatePage(), albo jeszcze jest jedna możliwość, że powinno być:
  1. <?php
  2. if (isset($HTTP_COOKIE_VARS['html_object'])) {
  3. $page = unserialize (urldecode ($HTTP_COOKIE_VARS['html_object']));
  4. $page->CreatePage();
  5. ?>

Albo jeśli to by nie zadziałało, zamiast $HTTP_COOKIE_VARS['html_object'] dać zwykłe $_COOKIE['html_object']. Mam nadzieję, że któryś z tych przykładów zadziała smile.gif
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.