home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2001 November / MICD2001_11_NR1.iso / Www / WebArea / index.php@id=13 < prev    next >
Text File  |  2001-09-26  |  43KB  |  999 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4//PL">
  2. <html>
  3. <head>
  4. <title>WEB-AREA.org - serwis webmaster≤w</title>
  5. <link href="style.css" rel="stylesheet" type="text/css">
  6. <LINK REL="SHORTCUT ICON" HREF="favicon.ico"> 
  7. <meta http-equiv="Creation-date" content="28.08.2001">
  8. <meta http-equiv="Reply-to" content="web-area@web-area.org">
  9. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  10. <meta name="author" content="Jakub & Jan Filipowscy">
  11. <meta name="description" content="Serwis webmasterow. Znajdziesz tu kilka kursow popularnych internetowych jezykow programowania takich jak: HTML, CSS, WML, SGML, XML, PHP, Perl i Java. Zamiescilismy tu rowniez wiele skryptow JavaScript, PHP i CGI. Przeczytac mozna kilka artykulow i sciagnac kilka szablonow. Dla poczatkujacych jest dzial BeginnerZone. ">
  12. <meta http-equiv="keywords" content="WEB-AREA, web-area, web area, web, area, WEB-AREA.org, web-area.org, webara.org,strefa webmastera, strefa, webmastera, webmaster, WEBMASTER, Webmaster, tworzenie stron www, www, strona www, internet, world wide web, design, designerswo, designer, programowanie, jΩzyki, jΩzyk programowania, php, cgi, html, java, javascript, sgml, wml, PHP, CGI, HTML, Java, JavaScript, SGML, WML, wap, standarty, skrypty php, skrypty cgi, applety java, aplety, aplety java, aplety javy, applety javy, javascripty, JavaScripty, skrypty javy, publikowanie witryny, witryna, tworzenie witryn, tworzenie sklep≤w internetowych, edytory html, tekstowe edytory html, projekt syf, szablony, Szablony, free, darmowe, zadarmo, subskrypcja, lista mailingowa, mailing list, lista subskrypcyjna, bannery, formularze, liczniki, ksiΩgi go╢ci, linki, fora, pliki i operacje na nich, statystyki, wyszukiwarki, rankingi, darmowe skrypty, Jakub Filipowski, Jan Filipowski, katalog, Katalog stron zwi▒zanych z tematyk▒ webmasterstwa, webmasterswo, magazyn www, style, CSS, XML, ASP, jΩzyki skryptowe, generatory, anarchizm">
  13. </head>
  14. <body>
  15.  
  16.  
  17. <div align="left">
  18. <table border="0" cellpadding="0" cellspacing="0" width="770">
  19. <tr>
  20. <td width="770" valign="top" colspan="3">
  21.  
  22.     <table border="0" cellpadding="0" cellspacing="0" width="770">
  23.     <tr>
  24.     <td width="166" valign="top"><a href="index.php"><img src="img/logo.gif" border="0" width="166" height="70" alt="WEB-AREA.org - serwis webmaster≤w"></a></td>
  25.     <td width="604" height="70" background="img/gora.gif" align="right"><iframe src="banner.php" MARGINWIDTH="0" MARGINHEIGHT="0" HSPACE="0" VSPACE="0" FRAMEBORDER="0" SCROLLING="NO" WIDTH="468" HEIGHT="60">
  26. </iframe></td>
  27.     </tr></table>
  28.  
  29. </td>
  30. </tr><tr>
  31. <td width="770" valign="top" colspan="3">
  32.     <table border="0" cellpadding="1" cellspacing="0" width="770">
  33.         <tr><form method="post" action="szukaj.php">
  34.         <td width="260">    <input type="text" name="zapytanie" size="15"> <input type="submit" value="SZUKAJ"> <span class="m"><a href="index.php@url=redakcja_2Fszukaj">Jak szukaµ?</a></span></td></form>
  35.         <td width="510">
  36.         
  37.         <p align="center">
  38.         <a href="index.php@id=206" class="gora">Konkurs</a>   
  39.         <a href="subskrypcja/nowa.php" class="gora">Za│≤┐ subskrypcjΩ</a>    
  40.         <a href="index.php@id=128" class="gora">Katalog</a>    
  41.         <a href="forum.php" class="gora">Forum</a>    
  42.         <a href="index.php@id=15" class="gora">BeginnerZone</a>
  43.         
  44.         </td>
  45.     </tr></table>
  46. </td>
  47. </tr>
  48. <tr>
  49. <td width="142" valign="top">
  50.     
  51.     <br>
  52.     <table border="0" cellpadding="0" cellspacing="0" width="142">
  53.     <tr>
  54.     <td width="142" valign="top"><img src="img/menu.gif" border="0" width="142" height="13" alt="MENU"></td>
  55.     </tr>
  56.     <tr>
  57.     <td width="142" valign="top" background="img/okno1.gif">
  58.     <img src="img/s.gif" width="9" height="8"><b class="menu1">KURSY</b><br>
  59.       - <a href="index.php@id=50" class="menu">HTML</a><br>
  60.       - <a href="index.php@id=40" class="menu">CSS</a><br>
  61.       - <a href="index.php@id=62" class="menu">Java</a><br>
  62.       - <a href="index.php@id=145" class="menu">PHP</a><br>
  63.       - <a href="index.php@id=39" class="menu">CGI</a><br>
  64.       - <a href="index.php@id=5" class="menu">ASP</a><br>
  65.       - <a href="index.php@id=182" class="menu">WML</a><br>
  66.       - <a href="index.php@id=190" class="menu">XML</a><br>
  67.       - <a href="index.php@id=159" class="menu">SGML</a><br>
  68.  
  69.     <img src="img/s.gif" width="9" height="8"><b class="menu1">SKRYPTY</b><br>
  70.       - <a href="index.php@id=78" class="menu">JavaScript</a><br>
  71.       - <a href="index.php@id=135" class="menu">PHP</a><br>
  72.       - <a href="index.php@id=30" class="menu">CGI</a><br>
  73.  
  74.     <img src="img/s.gif" width="9" height="8"><b class="menu1">INNE</b><br>
  75.       - <a href="index.php@id=59" class="menu">Szablony</a><br>
  76.       - <a href="forum.php" class="menu">Forum</a><br>
  77.       - <a href="index.php@id=61" class="menu">Webmasterska lista</a><br>
  78.       - <a href="index.php@id=128" class="menu">Katalog</a><br>
  79.       - <a href="index.php@id=15" class="menu">BeginnerZone</a><br>
  80.       - <a href="index.php@id=206" class="menu">Konkurs</a><br>
  81.     
  82.     <img src="img/s.gif" width="9" height="8"><b class="menu1">SUBSKRYPCJA</b><br>
  83.       - <a href="subskrypcja/nowa.php" class="menu">Za│≤┐</a><br>
  84.       - <a href="subskrypcja/admin.php" class="menu">Administracja</a><br>
  85.  
  86.     <img src="img/s.gif" width="9" height="8"><b class="menu1">REDAKCJA</b><br>
  87.       - <a href="index.php@id=156" class="menu">Sk│ad</a><br>
  88.       - <a href="index.php@id=157" class="menu">Wsp≤│praca</a><br>
  89.       - <a href="index.php@id=158" class="menu">Reklama</a></td>
  90.     </tr>
  91.     <tr>
  92.     <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  93.     </tr></table>
  94.  
  95. </td>
  96. <td width="486" valign="top"><br>
  97.     <div align="center">
  98.     <table border="0" cellpadding="0" cellspacing="0" width="460">
  99.     <tr>
  100.     <td width="460" valign="top"><table border="0" cellpadding="0" cellspacing="0" width="460">
  101.         <tr>
  102.         <td width="460" valign="top"><img src="img/zobacz.gif" border="0" width="460" height="13" alt="ZOBACZ JESZCZE"></td>
  103.         </tr>
  104.         <tr>
  105.         <td width="460" valign="top" background="img/okno11.gif"><div align="center">
  106.                 <table border="0" cellpadding="0" cellspacing="0" width="450"><tr><td width="450"><a class="menu" href="index.php@id=6">Praca w ASP</a>
  107.  <a class="menu" href="index.php@id=7">Warunki i pΩtle</a>
  108.  <a class="menu" href="index.php@id=8">Wysy│anie i odbieranie danych od u┐ytkownika</a>
  109.  <a class="menu" href="index.php@id=9">Obiekt Sessions i Cookies</a>
  110.  <a class="menu" href="index.php@id=10">Wysy│anie i odbieranie poczty e-mail</a>
  111.  <a class="menu" href="index.php@id=11">Bazy danych</a>
  112.  <a class="menu" href="index.php@id=12">Pliki</a>
  113.  <a class="menu" href="index.php@id=14">Typy zmiennych</a> </td></tr></table></div></td>
  114.         </tr>
  115.         <tr>
  116.         <td width="460" valign="top"><img src="img/okno21.gif" border="0" width="460" height="10"></td>
  117.         </tr></table><span class="nag">Kurs ASP</span>
  118. <h2>U┐ycie XML.</h2>
  119.       <p align="justify">XML, <code>eXtensible Markup Language</code>, jest odmian▒ jΩzyka, kt≤ra
  120.       w por≤wnaniu do HTML nie posiada ogranicze± pod wzglΩdem definiowania
  121.       znacznik≤w. W HTML znaczniki s▒ na sztywno okre╢lone. Mo┐na okre╢liµ
  122.       w│asne znaczniki i stworzyµ dokument, kt≤ry s│u┐y│by do ╢ci╢le
  123.       okre╢lonych cel≤w. Do tej pory powsta│o wiele standard≤w, kt≤re bazuj▒
  124.       na XML, np:</p>
  125.       <table border="0">
  126.         <tbody>
  127.           <tr>
  128.             <td vAlign="top">-</td>
  129.             <td vAlign="top"><code>CDF</code>, Chanel Definiton
  130.               Format,</td>
  131.           </tr>
  132.           <tr>
  133.             <td vAlign="top">-</td>
  134.             <td vAlign="top"><code>SMIL</code>, Synchronized
  135.               Multimedia Integration Language,</td>
  136.           </tr>
  137.           <tr>
  138.             <td vAlign="top">-</td>
  139.             <td vAlign="top"><code>OFX</code>, Open Financial
  140.               Exchange,</td>
  141.           </tr>
  142.           <tr>
  143.             <td vAlign="top">-</td>
  144.             <td vAlign="top"><code>OSD</code>, Open Software
  145.               Description Format.</td>
  146.           </tr>
  147.         </tbody>
  148.       </table>
  149.       <p align="justify">Oto przyk│ad dokumentu XML:</p>
  150.       <table border="0">
  151.         <tbody>
  152.           <tr>
  153.             <td vAlign="top">1:<br>
  154.               2:<br>
  155.               3:</td>
  156.             <td colSpan="4" vAlign="top"><?xml version="1.0"?><br>
  157.               <notatnik wlasciciel="Autor"><br>
  158.               <wydarzenie></td>
  159.           </tr>
  160.           <tr>
  161.             <td vAlign="top">4:<br>
  162.               5:</td>
  163.             <td vAlign="top"></td>
  164.             <td colSpan="3" vAlign="top"><opis>Dzie±
  165.               urodzenia Moniki</opis><br>
  166.               <data></td>
  167.           </tr>
  168.           <tr>
  169.             <td vAlign="top">6:<br>
  170.               7:<br>
  171.               8:</td>
  172.             <td vAlign="top"></td>
  173.             <td colSpan="2" vAlign="top"></td>
  174.             <td vAlign="top"><dzien>17</dzien><br>
  175.               <miesiac>03</miesiac><br>
  176.               <rok>1974</rok></td>
  177.           </tr>
  178.           <tr>
  179.             <td vAlign="top">9:</td>
  180.             <td vAlign="top"></td>
  181.             <td colSpan="3" vAlign="top"></data></td>
  182.           </tr>
  183.           <tr>
  184.             <td vAlign="top">10:<br>
  185.               11:</td>
  186.             <td colSpan="4" vAlign="top"></wydarzenie><br>
  187.               <wydarzenie></td>
  188.           </tr>
  189.           <tr>
  190.             <td vAlign="top">12:<br>
  191.               13:</td>
  192.             <td colSpan="2" vAlign="top"></td>
  193.             <td colSpan="2" vAlign="top"><opis>Dzie± urodzin
  194.               mamy</opis><br>
  195.               <data></td>
  196.           </tr>
  197.           <tr>
  198.             <td vAlign="top">14:<br>
  199.               15:<br>
  200.               16:</td>
  201.             <td colSpan="2" vAlign="top"></td>
  202.             <td vAlign="top"></td>
  203.             <td vAlign="top"><dzien>2</dzien><br>
  204.               <miesiac>08</miesiac><br>
  205.               <rok>1958</rok></td>
  206.           </tr>
  207.           <tr>
  208.             <td vAlign="top">17:</td>
  209.             <td colSpan="2" vAlign="top"></td>
  210.             <td colSpan="2" vAlign="top"></data></td>
  211.           </tr>
  212.           <tr>
  213.             <td vAlign="top">18:<br>
  214.               19:</td>
  215.             <td colSpan="4" vAlign="top"></wydarzenie><br>
  216.               <wydarzenie></td>
  217.           </tr>
  218.           <tr>
  219.             <td vAlign="top">20:<br>
  220.               21:</td>
  221.             <td colSpan="2" vAlign="top"></td>
  222.             <td colSpan="2" vAlign="top"><opis>Dzie±
  223.               Matki</opis><br>
  224.               <data></td>
  225.           </tr>
  226.           <tr>
  227.             <td vAlign="top">22:<br>
  228.               23:<br>
  229.               24:</td>
  230.             <td colSpan="2" vAlign="top"></td>
  231.             <td vAlign="top"></td>
  232.             <td vAlign="top"><dzien>26</dzien><br>
  233.               <miesiac>05</miesiac><br>
  234.               <rok>2000</rok></td>
  235.           </tr>
  236.           <tr>
  237.             <td vAlign="top">25:</td>
  238.             <td colSpan="2" vAlign="top"></td>
  239.             <td colSpan="2" vAlign="top"></data></td>
  240.           </tr>
  241.           <tr>
  242.             <td vAlign="top">26:<br>
  243.               27:</td>
  244.             <td colSpan="4" vAlign="top"></wydarzenie><br>
  245.               </notatnik></td>
  246.           </tr>
  247.         </tbody>
  248.       </table>
  249.       <p align="justify">Jak widaµ XML wygl▒dem jest zbli┐ony do HTML, posiada znaczniki
  250.       otwieraj▒ce i zamykaj▒ce elementy oraz niekt≤re znaczniki posiadaj▒
  251.       atrybuty. Jedyn▒ chyba r≤┐nic▒ jest to, ┐e nazwy znacznik≤w s▒
  252.       tworzone przez samego autora tego dokumentu. Poni┐ej znajduje siΩ opis
  253.       przyk│adu.<br>
  254.       Linia pierwsza:</p>
  255.       <table border="0">
  256.         <tbody>
  257.           <tr>
  258.             <td><?xml version="1.0"?></td>
  259.           </tr>
  260.         </tbody>
  261.       </table>
  262.       <p align="justify">informuje przegl▒darkΩ, ┐e standardem bie┐▒cego dokumentu jest <code>XML
  263.       1.0</code>, kt≤ry w momencie pisania tego opisu by│ najbardziej
  264.       rozpowszechnionym standardem XML. Podstawowym elementem dokumentu XML w
  265.       powy┐szym przyk│adzie jest <code>notatnik</code>, kt≤ry musi sk│adaµ
  266.       siΩ ze znacznika pocz▒tku i ko±ca. Dokument bez tego podstawowego
  267.       elementu, zwanego tak┐e wΩz│em podstawowym, jest niepoprawny. Posiada
  268.       on tak┐e atrybut:</p>
  269.       <table border="0">
  270.         <tbody>
  271.           <tr>
  272.             <td><notatnik wlasciciel="Autor"></td>
  273.           </tr>
  274.         </tbody>
  275.       </table>
  276.       <p align="justify">Nazwa atrybutu to <code>wlasciciel</code>, jego warto╢µ okre╢la nazwΩ
  277.       w│a╢ciciela umieszczonych w dokumencie informacji. Oba elementy uzupe│niaj▒
  278.       s│ownictwo tego dokumentu. Chocia┐ XML posiada inne rodzaje element≤w
  279.       (np. komentarze, instrukcje, itp.), tylko te dwie s▒ niezbΩdne do
  280.       tworzenia struktury dokumentu.<br>
  281.       Element podstawowy, <code>notatnik</code>, zawiera w sobie inne elementy,
  282.       elementy potomne (podrzΩdne). W przyk│adzie s▒ nimi <code>wydarzenie</code>,
  283.       kt≤re zawiera opis wydarzenia wewn▒trz znacznika <code>opis</code> oraz
  284.       informacjΩ o dniu, miesi▒cu i roku danego wydarzenia, kt≤re zawarte s▒
  285.       w elementach potomnych w stosunku do <code>data</code>.<br>
  286.       Podczas tworzenia element≤w w XML nale┐y uwa┐aµ, aby nie zamkn▒µ
  287.       elementu nadrzΩdnego przed zamkniΩciem elementu potomnego.</p>
  288.       <p align="justify">Przedstawienie danych zawartych w dokumencie XML odbywa siΩ poprzez
  289.       interfejs <code>DOM</code> (Document Object Model). DOM jest potΩ┐nym
  290.       interfejsem programistycznym, kt≤ry mo┐e byµ u┐yty zar≤wno po stronie
  291.       klienckiej jak i po stronie serwera. Poni┐szy przyk│ad pokazuje jak mo┐na
  292.       przetworzyµ zawarto╢µ wcze╢niej zaprezentowanego dokumentu XML po
  293.       stronie serwera u┐ywaj▒c ASP oraz DOM i wy╢wietliµ go po stronie
  294.       klienckiej w oknie przegl▒darki w postaci zwyk│ego dokumentu HTML.</p>
  295.       <table border="0">
  296.         <tbody>
  297.           <tr>
  298.             <td vAlign="top">1:<br>
  299.               2:<br>
  300.               3:<br>
  301.               4:<br>
  302.               5:<br>
  303.               6:<br>
  304.               7:<br>
  305.               8:<br>
  306.               9:<br>
  307.               10:<br>
  308.               11:<br>
  309.               12:<br>
  310.               13:<br>
  311.               14:<br>
  312.               15:</td>
  313.             <td colSpan="5" vAlign="top"><% <code>@LANGUAGE =
  314.               VBScript</code> %><br>
  315.               <% <code>Option Explicite</code> %><br>
  316.               <HTML><br>
  317.               <HEAD><br>
  318.               <TITLE>Prezentacja zawarto╢ci pliku XML</TITLE><br>
  319.               </HEAD><br>
  320.               <BODY BGCOLOR="#FFFFFF"><br>
  321.               <%<br>
  322.               <code>Dim XMLDoc, rootNode, wydarzenie, element, i,
  323.               strDataWydarzenia<br>
  324.               Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")<br>
  325.               XMLDoc.Async = False<br>
  326.               XMLDoc.Load(Server.MapPath("notatnik.xml"))<br>
  327.               Set rootNode = XMLDoc.documentElement<br>
  328.               Response.Write "<H1>Notatnik, w│asno╢µ: "<br>
  329.               Response.Write
  330.               rootNode.attributes.getNamedItem("wlasciciel").text
  331.               & "</H1>" & VbCrLf</code></td>
  332.           </tr>
  333.           <tr>
  334.             <td vAlign="top">16:</td>
  335.             <td colSpan="5" vAlign="top"><code>If
  336.               rootNode.hasChildNodes() Then</code></td>
  337.           </tr>
  338.           <tr>
  339.             <td vAlign="top">17:<br>
  340.               18:</td>
  341.             <td vAlign="top"></td>
  342.             <td colSpan="4" vAlign="top"><code>For Each wydarzenie
  343.               In rootNode.childNodes<br>
  344.               For Each element In wydarzenie.childNodes</code></td>
  345.           </tr>
  346.           <tr>
  347.             <td vAlign="top">19:</td>
  348.             <td vAlign="top"></td>
  349.             <td vAlign="top"></td>
  350.             <td colSpan="3" vAlign="top"><code>If element.nodeName
  351.               = "opis" Then</code></td>
  352.           </tr>
  353.           <tr>
  354.             <td vAlign="top">20:</td>
  355.             <td vAlign="top"></td>
  356.             <td vAlign="top"></td>
  357.             <td vAlign="top"></td>
  358.             <td colSpan="2" vAlign="top"><code>Response.Write
  359.               "<B>" & element.Text & "</B><BR>"</code></td>
  360.           </tr>
  361.           <tr>
  362.             <td vAlign="top">21:</td>
  363.             <td vAlign="top"></td>
  364.             <td vAlign="top"></td>
  365.             <td colSpan="3" vAlign="top"><code>ElseIf
  366.               element.nodeName = "data" Then</code></td>
  367.           </tr>
  368.           <tr>
  369.             <td vAlign="top">22:<br>
  370.               23:</td>
  371.             <td vAlign="top"></td>
  372.             <td vAlign="top"></td>
  373.             <td vAlign="top"></td>
  374.             <td colSpan="2" vAlign="top"><code>strDataWydarzenia =
  375.               ""<br>
  376.               For i = 0 To element.childNodes.length - 1</code></td>
  377.           </tr>
  378.           <tr>
  379.             <td vAlign="top">24:</td>
  380.             <td vAlign="top"></td>
  381.             <td vAlign="top"></td>
  382.             <td vAlign="top"></td>
  383.             <td vAlign="top"></td>
  384.             <td vAlign="top"><code>strDataWydarzenia =
  385.               strDataWydarzenia & element.childNodes(i).Text &
  386.               "/"</code></td>
  387.           </tr>
  388.           <tr>
  389.             <td vAlign="top">25:<br>
  390.               26:</td>
  391.             <td vAlign="top"></td>
  392.             <td vAlign="top"></td>
  393.             <td vAlign="top"></td>
  394.             <td colSpan="2" vAlign="top"><code>Next<br>
  395.               strDataWydarzenia = Left(strDataWydarzenia, Len(strDataWydarzenia)
  396.               - 1) & "<BR>" & VbCrLf</code></td>
  397.           </tr>
  398.           <tr>
  399.             <td vAlign="top">27:</td>
  400.             <td vAlign="top"></td>
  401.             <td vAlign="top"></td>
  402.             <td vAlign="top"></td>
  403.             <td colSpan="2" vAlign="top"><code>Response.Write
  404.               strDataWydarzenia</code></td>
  405.           </tr>
  406.           <tr>
  407.             <td vAlign="top">28:</td>
  408.             <td vAlign="top"></td>
  409.             <td vAlign="top"></td>
  410.             <td colSpan="3" vAlign="top"><code>End If</code></td>
  411.           </tr>
  412.           <tr>
  413.             <td vAlign="top">29:<br>
  414.               30:</td>
  415.             <td vAlign="top"></td>
  416.             <td colSpan="4" vAlign="top"><code>Next<br>
  417.               Next</code></td>
  418.           </tr>
  419.           <tr>
  420.             <td vAlign="top">31:<br>
  421.               32:<br>
  422.               33:<br>
  423.               34:</td>
  424.             <td colSpan="5" vAlign="top"><code>End If</code><br>
  425.               %><br>
  426.               </BODY><br>
  427.               </HTML></td>
  428.           </tr>
  429.         </tbody>
  430.       </table>
  431.       <p align="justify">Interfejs DOM jest dostΩpny poprzez obiekt <code>Microsoft.XMLDOM</code>,
  432.       co ma miejsce w linii 10. W│a╢ciwo╢µ <code>Async</code>, kt≤ra jest u┐yta
  433.       w celu za│adowania dokumentu XML, nie jest niezbΩdna w przypadku
  434.       serwera, ale nie zaszkodzi, a nawet pomo┐e nie zapomnieµ o jej
  435.       ustawieniu w przypadku tworzenia XML po stronie klienckiej. W linii 12
  436.       metoda <code>MapPath</code> posiada parametr "<code>notatnik.xml</code>".
  437.       Jest to nazwa pliku XML zawieraj▒ca wcze╢niej zaprezentowany przyk│adowy
  438.       dokument XML. Pierwszy element w dokumencie XML, element podstawowy (najwy┐szego
  439.       rzΩdu) jest pobierany poprzez instrukcjΩ:</p>
  440.       <table border="0">
  441.         <tbody>
  442.           <tr>
  443.             <td>Set rootNode = XMLDoc.documentElement</td>
  444.           </tr>
  445.         </tbody>
  446.       </table>
  447.       <p align="justify">W przyk│adowym pliku XML jest to element <code>notatnik</code>, kt≤ry
  448.       posiada atrybut nazwany <code>wlasciciel</code> i jego zawarto╢µ jest
  449.       znajduje siΩ w</p>
  450.       <table border="0">
  451.         <tbody>
  452.           <tr>
  453.             <td>rootNode.attributes.getNamedItem("wlasciciel").Text</td>
  454.           </tr>
  455.         </tbody>
  456.       </table>
  457.       <p align="justify">Przed u┐yciem pΩtli pobieraj▒cej zawarto╢µ wszystkich element≤w
  458.       potomnych dla elementu <code>notatnik</code> u┐yta zosta│a instrukcja
  459.       warunkowa If sprawdzaj▒ca obecno╢µ takich element≤w w dokumencie
  460.       (linia 16). Dopiero po sprawdzeniu warunku nastΩpuje wykonanie pΩtli For
  461.       ... Each pobieraj▒cej wszystkie elementy potomne wzglΩdem elementu <code>notatnik</code>
  462.       (linia 17). Kolejna pΩtla (linia 18), r≤wnie┐ For ... Each, dotyczy
  463.       pobrania element≤w podrzΩdnych w stosunku do elementu <code>wydarzenie</code>.
  464.       Wewn▒trz pΩtli znajduje siΩ warunek sprawdzaj▒cy nazwΩ elementu podrzΩdnego.
  465.       Odbywa siΩ to poprzez wykorzystanie w│a╢ciwo╢ci <code>nodeName</code>:</p>
  466.       <table border="0" cellSpacing="0">
  467.         <tbody>
  468.           <tr>
  469.             <td colSpan="2">If element.nodeName = "name"
  470.               Then</td>
  471.           </tr>
  472.           <tr>
  473.             <td></td>
  474.             <td class="CIENKA">...</td>
  475.           </tr>
  476.           <tr>
  477.             <td colSpan="2">ElseIf element.nodeName =
  478.               "data" Then</td>
  479.           </tr>
  480.           <tr>
  481.             <td></td>
  482.             <td class="CIENKA">...</td>
  483.           </tr>
  484.           <tr>
  485.             <td colSpan="2">End If</td>
  486.           </tr>
  487.         </tbody>
  488.       </table>
  489.       <p align="justify">Zawarto╢µ element≤w dokumentu XML znajduje siΩ we w│a╢ciwo╢ci <code>Text</code>
  490.       danego elementu. Taka prezentacja zawarto╢ci dokumentu XML jest chyba
  491.       najszybsz▒ metod▒. Innym sposobem jest wykorzystanie dokumentu <code>XSL</code>
  492.       (eXtensible Stylesheet Language), kt≤ry umo┐liwia tw≤rcy opis wygl▒du
  493.       poszczeg≤lnych element≤w na stronie WWW.</p>
  494.       <h3>Wykorzystanie XSL</h3>
  495.       <p align="justify"><code>XSL</code> mo┐e byµ u┐yty w celu przekszta│cenia dokumentu
  496.       XML na dokument HTML. XSL nie tylko umo┐liwia definiowanie wygl▒du, ale
  497.       tak┐e selekcjΩ, dokonywanie operacji oraz sortowanie danych. XSL
  498.       definiuje szablon ko±cowy oraz okre╢la w jaki spos≤b elementy ╝r≤d│owe
  499.       maj▒ byµ przekszta│cone i w jaki spos≤b umieszczone w dokumencie HTML.
  500.       Poni┐ej przedstawiony zosta│ przyk│adowy dokument XSL.</p>
  501.       <table border="0">
  502.         <tbody>
  503.           <tr>
  504.             <td vAlign="top">1:<br>
  505.               2:</td>
  506.             <td colSpan="6" vAlign="top"><?xml version="1.0"
  507.               encoding="ISO-8859-2"?><br>
  508.               <HTML xmlns:xsl="http://www.w3c.org/TR/WD-xsl"></td>
  509.           </tr>
  510.           <tr>
  511.             <td vAlign="top">3:</td>
  512.             <td vAlign="top"></td>
  513.             <td colSpan="5" vAlign="top"><BODY STYLE="font-family:
  514.               Tahoma, Verdana, Arial; font-size: 12pt; background-color: #FFFFFF"></td>
  515.           </tr>
  516.           <tr>
  517.             <td vAlign="top">4:</td>
  518.             <td vAlign="top"></td>
  519.             <td vAlign="top"></td>
  520.             <td colSpan="4" vAlign="top"><DIV STYLE="font-weight:
  521.               bold; font-size: 16pt"></td>
  522.           </tr>
  523.           <tr>
  524.             <td vAlign="top">5:</td>
  525.             <td vAlign="top"></td>
  526.             <td vAlign="top"></td>
  527.             <td vAlign="top"></td>
  528.             <td colSpan="3" vAlign="top">Notatnik, w│asno╢µ:
  529.               <xsl:value-of select="@wlasciciel"/></td>
  530.           </tr>
  531.           <tr>
  532.             <td vAlign="top">6:<br>
  533.               7:</td>
  534.             <td vAlign="top"></td>
  535.             <td vAlign="top"></td>
  536.             <td colSpan="4" vAlign="top"></DIV><br>
  537.               <xsl:for-each select="wydarzenie" order-by="+
  538.               opis"></td>
  539.           </tr>
  540.           <tr>
  541.             <td vAlign="top">8:</td>
  542.             <td vAlign="top"></td>
  543.             <td vAlign="top"></td>
  544.             <td vAlign="top"></td>
  545.             <td colSpan="3" vAlign="top"><DIV STYLE="background-color:
  546.               #44AAFF; color: #000000; padding: 2px"></td>
  547.           </tr>
  548.           <tr>
  549.             <td vAlign="top">9:</td>
  550.             <td vAlign="top"></td>
  551.             <td vAlign="top"></td>
  552.             <td vAlign="top"></td>
  553.             <td colSpan="2" vAlign="top"></td>
  554.             <td vAlign="top"><SPAN STYLE="font-weight: bold;
  555.               color: weight"><xsl:value-of select="opis"/></SPAN></td>
  556.           </tr>
  557.           <tr>
  558.             <td vAlign="top">10:</td>
  559.             <td vAlign="top"></td>
  560.             <td vAlign="top"></td>
  561.             <td vAlign="top"></td>
  562.             <td colSpan="3" vAlign="top"></DIV></td>
  563.           </tr>
  564.           <tr>
  565.             <td vAlign="top">11:</td>
  566.             <td vAlign="top"></td>
  567.             <td vAlign="top"></td>
  568.             <td colSpan="4" vAlign="top"><xsl:for-each select="data"></td>
  569.           </tr>
  570.           <tr>
  571.             <td vAlign="top">12:<br>
  572.               13:</td>
  573.             <td vAlign="top"></td>
  574.             <td vAlign="top"></td>
  575.             <td colSpan="2" vAlign="top"></td>
  576.             <td colSpan="2" vAlign="top"><DIV STYLE="font-weight:
  577.               bold"><br>
  578.               <SPAN STYLE="font-weight: bold">Data:</td>
  579.           </tr>
  580.           <tr>
  581.             <td vAlign="top">14:</td>
  582.             <td vAlign="top"></td>
  583.             <td vAlign="top"></td>
  584.             <td colSpan="4" vAlign="top"><xsl:value-of select="dzien"/>/<xsl:value-of
  585.               select="miesiac"/>/<xsl:value-of select="rok"/></SPAN></td>
  586.           </tr>
  587.           <tr>
  588.             <td vAlign="top">15:<br>
  589.               16:<br>
  590.               17:</td>
  591.             <td vAlign="top"></td>
  592.             <td vAlign="top"></td>
  593.             <td colSpan="4" vAlign="top"></DIV><br>
  594.               </xsl:for-each><br>
  595.               </xsl:for-each></td>
  596.           </tr>
  597.           <tr>
  598.             <td vAlign="top">18:</td>
  599.             <td vAlign="top"></td>
  600.             <td colSpan="5" vAlign="top"></BODY></td>
  601.           </tr>
  602.           <tr>
  603.             <td vAlign="top">19:</td>
  604.             <td colSpan="6" vAlign="top"></HTML></td>
  605.           </tr>
  606.         </tbody>
  607.       </table>
  608.       <p align="justify">Podstawowy (nadrzΩdny) element dokumentu XML jest w│a╢ciwie dostΩpny
  609.       od samego pocz▒tku, a jego atrybut jest umieszczony w linii 5:</p>
  610.       <table border="0">
  611.         <tbody>
  612.           <tr>
  613.             <td><xsl:value-of select="@wlasciciel"/></td>
  614.           </tr>
  615.         </tbody>
  616.       </table>
  617.       <p align="justify">Warto╢µ atrybutu jest dostΩpna, poniewa┐ jego nazwa zosta│a
  618.       poprzedzona znakiem <code>@</code>, kt≤ry odr≤┐nia nazwy atrybut≤w od
  619.       nazw element≤w. Nazwy element≤w nie s▒ poprzedzane ┐adnym znakiem.
  620.       Nale┐y zauwa┐yµ, ┐e ten znacznik nie posiada znacznika ko±ca elementu
  621.       XSL. Jest to zwi▒zane z tym, ┐e ka┐dy element XSL mo┐na zamkn▒µ
  622.       poprzez umieszczenie znaku <code>/</code> przed symbolem zamkniΩcia
  623.       znacznika, tak jak jest to zrobione w linii 5.<br>
  624.       Przemieszczanie siΩ po wydarzeniach (elementach potomnych w stosunku do
  625.       elementu podstawowego) jest zrealizowane poprzez u┐ycie:</p>
  626.       <table border="0">
  627.         <tbody>
  628.           <tr>
  629.             <td><xsl:for-each select="wydarzenie"
  630.               order-by="+ opis"><br>
  631.               </xsl:for-each></td>
  632.           </tr>
  633.         </tbody>
  634.       </table>
  635.       <p align="justify">Ciekawym elementem tej instrukcji jest to, ┐e istnieje mo┐liwo╢µ (i
  636.       jest to zrobione) dokonania sortowania po elementach <code>opis</code>.
  637.       Sortowanie jest rosn▒ce, o czym ╢wiadczy znak "<code>+</code>"
  638.       przed nazw▒ elementu. Umieszczenie znaku "<code>-</code>"
  639.       spowodowa│oby sortowanie malej▒ce. WewnΩtrzny element <code>xsl:for-each</code>
  640.       (linie 11-16) dokumentu XSL wykonuje siΩ w przypadku elementu podrzΩdnego
  641.       w stosunku do elementu wydarzenia jakim jest <code>data</code>. Pozosta│e
  642.       znaczniki s▒ identyczne jak w przypadku dokumentu HTML i nie bΩd▒
  643.       omawiane w tej czΩ╢ci.</p>
  644.       <p align="justify">Teraz kiedy stworzony zosta│ dokument XML oraz dokument XSL nale┐a│oby
  645.       wykorzystaµ je w celu prezentacji zawarto╢ci pliku XML u┐ywaj▒c ASP.
  646.       Oto przyk│ad skryptu ASP:</p>
  647.       <table border="0">
  648.         <tbody>
  649.           <tr>
  650.             <td vAlign="top">1:<br>
  651.               2:<br>
  652.               3:<br>
  653.               4:<br>
  654.               5:<br>
  655.               6:<br>
  656.               7:<br>
  657.               8:<br>
  658.               9:<br>
  659.               10:<br>
  660.               11:<br>
  661.               12:<br>
  662.               13:<br>
  663.               14:<br>
  664.               15:<br>
  665.               16:</td>
  666.             <td vAlign="top"><% <code>@LANGUAGE = VBScript</code>
  667.               %><br>
  668.               <% <code>Option Explicit</code> %><br>
  669.               <HTML><br>
  670.               <HEAD><br>
  671.               <TITLE>Przyk│ad po│▒czenia XML i XSL</TITLE><br>
  672.               </HEAD><br>
  673.               <BODY BGCOLOR="#FFFFFF"><br>
  674.               <%<br>
  675.               <code>Dim XMLDoc, XSLDoc<br>
  676.               Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")<br>
  677.               Set XSLDoc = Server.CreateObject("Microsoft.XMLDOM")<br>
  678.               XML.Async = False<br>
  679.               XMLDoc.Load(Server.MapPaht("notatnik.xml"))<br>
  680.               XSLDoc.Async = False<br>
  681.               XSLDoc.Load(Server.MapPath("notatnik.xsl"))<br>
  682.               Response.Write(XMLDoc.documentElement.transformNode(XSLDoc.documentElement))</code></td>
  683.           </tr>
  684.           <tr>
  685.             <td vAlign="top">17:<br>
  686.               18:<br>
  687.               19:</td>
  688.             <td vAlign="top">%><br>
  689.               </BODY><br>
  690.               </HTML></td>
  691.           </tr>
  692.         </tbody>
  693.       </table>
  694.       <p align="justify">W liniach 10 i 11 zosta│y utworzone dwa obiekty XML DOM. Pierwszy │aduje
  695.       <code>notatnik</code>, za╢ drugi opis wygl▒du dokumentu ko±cowego. U┐ycie
  696.       opisu wygl▒du z dokumentu XSL na danych zawartych w pliku XML odbywa siΩ
  697.       poprzez wywo│anie metody:</p>
  698.       <table border="0">
  699.         <tbody>
  700.           <tr>
  701.             <td>XMLDoc.documentElement.transformNode(XSLDoc.documentElement)</td>
  702.           </tr>
  703.         </tbody>
  704.       </table>
  705.       <h3>Tworzenie dokumentu XML</h3>
  706.       <p align="justify">Istnieje mo┐liwo╢µ stworzenia dokumentu XML poprzez wykorzystanie
  707.       DOM oraz ASP. Oto przyk│ad pokazuj▒cy w jaki spos≤b siΩ to realizuje.
  708.       Poni┐szy skrypt tworzy dokument XML zawieraj▒cy tylko jeden element <code>wydarzenie</code>
  709.       wraz z <code>opisem</code> i <code>dat▒</code>.</p>
  710.       <table border="0">
  711.         <tbody>
  712.           <tr>
  713.             <td vAlign="top">1:<br>
  714.               2:<br>
  715.               3:<br>
  716.               4:<br>
  717.               5:<br>
  718.               6:<br>
  719.               7:<br>
  720.               8:<br>
  721.               9:<br>
  722.               10:<br>
  723.               11:<br>
  724.               12:<br>
  725.               13:<br>
  726.               14:<br>
  727.               15:<br>
  728.               16:<br>
  729.               17:<br>
  730.               18:<br>
  731.               19:<br>
  732.               20:<br>
  733.               21:<br>
  734.               22:<br>
  735.               23:<br>
  736.               24:<br>
  737.               25:<br>
  738.               26:<br>
  739.               27:<br>
  740.               28:<br>
  741.               29:<br>
  742.               30:<br>
  743.               31:<br>
  744.               32:<br>
  745.               33:<br>
  746.               34:</td>
  747.             <td vAlign="top"><%<br>
  748.               Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")<br>
  749.               <br>
  750.               ' stworzenie elementu podstawowego i do│▒czenie go do dokumentu
  751.               XML<br>
  752.               Set notatnik = XMLDoc.CreateElement("notatnik")<br>
  753.               Set atrWlasciciel = XMLDoc.CreateAttribute("wlasciciel")<br>
  754.               atrWlascicial.Text = "Autor"<br>
  755.               wydarzenie.attributes.setNamedItem(atrWlasciciel)<br>
  756.               Set XMLDoc.documentElement = notatnik<br>
  757.               <br>
  758.               ' dodanie wydarzenia<br>
  759.               Set wydarzenie = XMLDoc.CreateElement("wydarzenie")<br>
  760.               notatnik.AppendChild(wydarzenie)<br>
  761.               Set opis = XMLDoc.CreateElement("opis")<br>
  762.               opis.Text = "Dzie± urodzin Moniki"<br>
  763.               wydarzenie.AppendChild(opis)<br>
  764.               <br>
  765.               ' dodanie daty wydarzenia<br>
  766.               Set data = XMLDoc.CreateElement("data")<br>
  767.               wydarzenie.AppendChild(data)<br>
  768.               Set dzien = XMLDoc.CreateElement("dzien")<br>
  769.               dzien.Text = "17"<br>
  770.               data.AppendChild(dzien)<br>
  771.               Set miesiac = XMLDoc.CreateElement("miesiac")<br>
  772.               miesiac.Text = "03"<br>
  773.               data.AppendChild(miesiac)<br>
  774.               Set rok = XMLDoc.CreateElement("rok")<br>
  775.               rok.Text = "1974"<br>
  776.               data.AppendChild(rok)<br>
  777.               <br>
  778.               ' wys│anie dokumentu do przegl▒darki<br>
  779.               Response.Write "<?xml version=""1.0""?>"<br>
  780.               Response.Write notatnik.xml<br>
  781.               %></td>
  782.           </tr>
  783.         </tbody>
  784.       </table>
  785.       <p align="justify">Pierwszym krokiem, jest oczywi╢cie stworzenie obiektu XML DOM, kt≤ry
  786.       automatycznie stworzy dokument, ale nie stworzy elementu podstawowego -
  787.       nale┐y zrobiµ to samemu (linia 4). NastΩpnie zapis:</p>
  788.       <table border="0">
  789.         <tbody>
  790.           <tr>
  791.             <td>Set atrWlasciciel =
  792.               XMLDoc.CreateAttribute("wlasciciel")<br>
  793.               atrWlascicial.Text = "Autor"<br>
  794.               wydarzenie.attributes.setNamedItem(atrWlasciciel)</td>
  795.           </tr>
  796.         </tbody>
  797.       </table>
  798.       <p align="justify">tworzy atrybut dla elementu podstawowego i nadaje mu warto╢µ "<code>Autor</code>".
  799.       Element podstawowy jest dopiero do│▒czony do dokumentu XML w linii 8. W│a╢ciwo╢µ
  800.       <code>documentElement</code> przechowuje element podstawowy. Pozosta│a czΩ╢µ
  801.       skryptu tworzy elementy wydarzenia i odpowiednio je podporz▒dkowuje. Na
  802.       uwagΩ zas│uguje metoda <code>AppendChild()</code>, kt≤ra umo┐liwia
  803.       dodanie do dowolnego elementu jego podelementu, czyli elementu podrzΩdnego:</p>
  804.       <table border="0">
  805.         <tbody>
  806.           <tr>
  807.             <td>element.AppendChild(podelement)</td>
  808.           </tr>
  809.         </tbody>
  810.       </table>
  811.       <p align="justify">Tak utworzony ca│y dokument XML zostaje przekazany do klienta (przegl▒darki)
  812.       poprzez u┐ycie komend:</p>
  813.       <table border="0">
  814.         <tbody>
  815.           <tr>
  816.             <td>Response.Write "<?xml version=""1.0""?>"<br>
  817.               Response.Write notatnik.xml</td>
  818.           </tr>
  819.         </tbody>
  820.       </table>
  821.       <p align="justify">kt≤re informuj▒ przegl▒darkΩ o wersji dokumentu XML oraz wysy│aj▒
  822.       ca│y stworzony dokument XML. Stworzony dokument nie jest jeszcze tym co
  823.       chcia│oby siΩ zaprezentowaµ klientowi (u┐ytkownikowi). Teraz nale┐a│oby
  824.       stworzyµ dokument HTML dzia│aj▒cy po stronie klienta.</p>
  825.       <table border="0">
  826.         <tbody>
  827.           <tr>
  828.             <td vAlign="top">1:<br>
  829.               2:<br>
  830.               3:<br>
  831.               4:<br>
  832.               5:<br>
  833.               6:<br>
  834.               7:<br>
  835.               8:<br>
  836.               9:</td>
  837.             <td colSpan="2" vAlign="top"><HTML><br>
  838.               <HEAD><br>
  839.               <TITLE>Po│▒czenie XML i XSL w IE 5.0 - wykonywane po
  840.               stronie klienta (przegl▒darki)</TITLE><br>
  841.               </HEAD><br>
  842.               <BODY BGCOLOR="#FFFFFF"><br>
  843.               <XML ID="XMLDoc"></XML><br>
  844.               <XML ID="XSLDoc"></XML><br>
  845.               <DIV ID="sformatowanyHTML"></DIV><br>
  846.               <SCRIPT LANGUAGE = VBScript></td>
  847.           </tr>
  848.           <tr>
  849.             <td vAlign="top">10:<br>
  850.               11:<br>
  851.               12:<br>
  852.               13:<br>
  853.               14:</td>
  854.             <td vAlign="top"></td>
  855.             <td vAlign="top"><code>XMLDoc.Async = False<br>
  856.               XMLDoc.Load("notatnik.asp")<br>
  857.               XSLDoc.Async = False<br>
  858.               XSLDoc.Load("notatnik.xsl")<br>
  859.               result =
  860.               XMLDoc.documentElement.transformNode(XSLDoc.documentElement)</code></td>
  861.           </tr>
  862.           <tr>
  863.             <td vAlign="top">15:</td>
  864.             <td vAlign="top"></td>
  865.             <td vAlign="top"><code>sformatowanyHTML.innerHTML =
  866.               result</code></td>
  867.           </tr>
  868.           <tr>
  869.             <td vAlign="top">16:<br>
  870.               17:<br>
  871.               18:</td>
  872.             <td colSpan="2" vAlign="top"></SCRIPT><br>
  873.               </BODY><br>
  874.               </HTML></td>
  875.           </tr>
  876.         </tbody>
  877.       </table>
  878.       <p align="justify">Wygl▒d jest bardzo podobny do przyk│adu (skryptu ASP) wykonywanego po
  879.       stronie serwera. Przyk│adowe obiekty XML DOM dla plik≤w XML i XSL s▒
  880.       zdefiniowane w liniach 7 i 8 oraz znacznik <code>DIV</code>, kt≤ry bΩdzie
  881.       przechowywa│ przekszta│cony dokument XML. W czΩ╢ci skryptu │adowane s▒
  882.       oba dokumenty XML oraz XSL, a nastΩpnie dokonuje siΩ przekszta│cenie
  883.       dokumentu XML, w taki spos≤b, jaki zosta│ opisany w XSL. Jedyn▒ r≤┐nic▒
  884.       w por≤wnaniu do skryptu wykonuj▒cego siΩ po stronie serwera jest to, ┐e
  885.       rezultat zostanie zapisany wewn▒trz znacznika <code>DIV</code>
  886.       (instrukcja <code>innerHTML</code>).</p>
  887.  
  888.  
  889. <hr size="1" color="#FFFFFF"><span class="stopa">
  890. <b>Autor:</b> <a href="mailto:stelmi@friko2.onet.pl" class="stopka">Krzysztof Stelmach</a><br>
  891. <b>Artyku│ ze strony:</b> <a href="http://www.asp.z.pl/" class="stopka" target="_blank">http://www.asp.z.pl/</a>
  892. </span><br></td>
  893.     </tr></table>
  894.     </div>
  895. </td>
  896. <td width="142" valign="top">
  897.  
  898.         <br>
  899.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  900.         <tr>
  901.         <td width="142" valign="top"><img src="img/login.gif" border="0" width="142" height="13" alt="LOGIN"></td>
  902.         </tr>
  903.         <tr>
  904.         <td width="142" valign="top" background="img/okno1.gif">
  905.         
  906.             
  907.             <div align="center">
  908.             <table cellpadding="0" cellspacing="2" border="0" width="98%">
  909.             <form method="post" action="subskrypcja/login.php">
  910.             <tr><td width="30%"><span class="t">Login:</span></td><td width="68%"><input type="text" name="login" size="15" class="login"></td></tr>
  911.             <tr><td width="30%"><span class="t">Has│o:</span></td><td width="68%"><input type="password" name="haslo" size="15" class="login"></td></tr>
  912.             
  913.             <tr><td colspan="2"><center><input type="image" src="img/ok.gif"></td></tr>
  914.             </form></table></div>
  915.         
  916.         </td>
  917.         </tr>
  918.         <tr>
  919.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  920.         </tr></table>
  921.  
  922.         <br>
  923.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  924.         <tr>
  925.         <td width="142" valign="top"><img src="img/art.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  926.         </tr>
  927.         <tr>
  928.         <td width="142" valign="top" background="img/okno1.gif">
  929.         
  930.         <span class="m">
  931.         
  932.          -<a href="index.php@id=1" class="menu">"Edytory HTML'a"</a><br>
  933.          -<a href="index.php@id=2" class="menu">"Publikowanie witryny"</a><br>
  934.          -<a href="index.php@id=3" class="menu">"PHP w domu"</a><br>
  935.          -<a href="index.php@id=4" class="menu">"Przeszukiwanie stron"</a><br>
  936.          -<a href="index.php@id=204" class="menu">"Wprowadzenie do Javy"</a><br>
  937.          -<a href="index.php@id=210" class="menu">"Grafika w PHP"</a>
  938.         </span>
  939.         
  940.         </td>
  941.         </tr>
  942.         <tr>
  943.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  944.         </tr></table>
  945.         
  946.         <br>
  947.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  948.         <tr>
  949.         <td width="142" valign="top"><img src="img/stat.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  950.         </tr>
  951.         <tr>
  952.         <td width="142" valign="top" background="img/okno1.gif"><div align="left"><table border="0" cellpadding="0" cellspacing="0" width="138"><tr><td width="138"><ol><li><a href="index.php@id=135" class="stat">PHP - przyk│adowe skrypty</a> <span class="maleczarne">(1491)</span><br><li><a href="index.php@id=59" class="stat">Szablony 1</a> <span class="maleczarne">(833)</span><br><li><a href="index.php@id=145" class="stat">Kurs PHP</a> <span class="maleczarne">(817)</span><br><br><span class="maleczarne">ú▒cznie: 24123</span>        </ol>
  953.         <center><a href="http://stat.webmedia.pl/cgi-bin/anal?webarea" target="_blank">
  954. <img border=0 src="http://stat.webmedia.pl/cgi-bin/stat?webarea&stat4ur" alt="stat4u" width="40" height="10"></a></center>
  955.         </td></tr></table></div>
  956.         </td>
  957.         </tr>
  958.         <tr>
  959.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  960.         </tr></table>
  961.         
  962.         <br>
  963.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  964.         <tr>
  965.         <td width="142" valign="top"><img src="img/sponsor.gif" border="0" width="142" height="13" alt="SPONSOR"></td>
  966.         </tr>
  967.         <tr>
  968.         <td width="142" valign="top" background="img/okno1.gif"><br>
  969.         <center><EMBED src="img/beep2.swf" quality=high bgcolor=#000000 WIDTH=120 HEIGHT=30></center>                            
  970.         </td>
  971.         </tr>
  972.         <tr>
  973.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  974.         </tr></table>
  975.  
  976.         <br>
  977.             <div align="center"><table border="0" cellpadding="2" cellspacing="0" width="120">
  978.             <tr>
  979.             <td width="120"><a href="button.php@id=1" target="_blank"><img src="img/cgi.gif" border="0"></a></td>
  980.             </tr>
  981.             <tr>
  982.             <td width="120"><a href="button.php@id=2" target="_blank"><img src="img/ygreg.gif" border="0"></a></td>
  983.             </tr>
  984.             <tr>
  985.             <td width="120"></td>
  986.             </tr>
  987.             </table>
  988.             </div>
  989.         
  990.  
  991. </td>
  992. </tr>
  993. <tr>
  994. <td width="770" valign="top" colspan="3" align="right"><br><br><span class="m">All rights reserved by <a href="mailto:web-area@web-area.org">J&J Filipowscy Design & Code</a></td>
  995. </tr></table></div>
  996.  
  997.  
  998. </body>
  999. </html>