home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2001 November / MICD2001_11_NR1.iso / Www / WebArea / index.php@id=12 < prev    next >
Text File  |  2001-09-26  |  39KB  |  955 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=13">U┐ycie XML</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>Pliki.</h2>
  119. <p align="justify">ASP umo┐liwia dostΩp do plik≤w, katalog≤w oraz dysk≤w poprzez obiekt <code>FileSystemObject</code>.
  120. Poprzez ten obiekt mo┐na tworzyµ inne obiekty, tj. <code>File</code>, <code>Folder</code>
  121. lub <code>Drive</code>, kt≤re okre╢laj▒ pliki, katalogi lub dyski komputera
  122. lokalnego. Obiekty <code>FileSystemObject</code> i <code>File</code> dostarczaj▒
  123. metod i w│a╢ciwo╢ci umo┐liwiaj▒cych tworzenie obiekt≤w <code>TextStream</code>,
  124. kt≤re okre╢laj▒ pliki wej╢ciowe i wyj╢ciowe. Pliki tekstowe mod▒ zast▒piµ
  125. bazΩ danych w przypadkach gdy bΩdzie potrzeba przechowywania niewielkiej ilo╢ci
  126. danych.</p>
  127. <p align="justify"><code>DostΩp do pliku tekstowego</code></p>
  128. <p align="justify">Obiekt <code>TextSream</code> dostarcza niezbΩdnych metod i w│a╢ciwo╢ci
  129. umo┐liwiaj▒cych odczytywanie i zapisywanie informacji do pliku tekstowego.
  130. Metody obiektu <code>TextStream</code> s▒ nastΩpuj▒ce:</p>
  131. <table border="0">
  132.   <tbody>
  133.     <tr>
  134.       <td vAlign="top">Read</td>
  135.       <td vAlign="top">-</td>
  136.       <td vAlign="top">odczytuje okre╢lon▒ ilo╢µ znak≤w z
  137.         obiektu <code>TextStream</code> i zwraca j▒ w postaci │a±cucha</td>
  138.     </tr>
  139.     <tr>
  140.       <td vAlign="top">ReadLine</td>
  141.       <td vAlign="top">-</td>
  142.       <td vAlign="top">odczytuje ca│▒ liniΩ z obiektu <code>TextStream</code>
  143.         i zwraca j▒ w postaci │a±cucha bez znaku ko±ca linii</td>
  144.     </tr>
  145.     <tr>
  146.       <td vAlign="top">ReadAll</td>
  147.       <td vAlign="top">-</td>
  148.       <td vAlign="top">odczytuje ca│y plik <code>TextStream</code>
  149.         i w rezultacie go zwraca</td>
  150.     </tr>
  151.     <tr>
  152.       <td vAlign="top">Write</td>
  153.       <td vAlign="top">-</td>
  154.       <td vAlign="top">zapisuje │a±cuch do pliku <code>TextStream</code></td>
  155.     </tr>
  156.     <tr>
  157.       <td vAlign="top">WriteLine</td>
  158.       <td vAlign="top">-</td>
  159.       <td vAlign="top">zapisuje │a±cuch do pliku <code>TextStream</code>
  160.         i dodaje znak ko±ca linii</td>
  161.     </tr>
  162.     <tr>
  163.       <td vAlign="top">Close</td>
  164.       <td vAlign="top">-</td>
  165.       <td vAlign="top">zamyka obiekt <code>TextStream</code></td>
  166.     </tr>
  167.   </tbody>
  168. </table>
  169. <p align="justify">za╢ w│a╢ciwo╢ci:</p>
  170. <table border="0">
  171.   <tbody>
  172.     <tr>
  173.       <td vAlign="top">AtEndOfLine</td>
  174.       <td vAlign="top">-</td>
  175.       <td vAlign="top">zwraca warto╢µ <code>TRUE</code> je╢li
  176.         wska╝nik pliku <code>TextStream</code> znajduje siΩ przed znakiem ko±ca
  177.         linii, a <code>FALSE</code> w przeciwnym wypadku</td>
  178.     </tr>
  179.     <tr>
  180.       <td vAlign="top">AtEndOfStream</td>
  181.       <td vAlign="top">-</td>
  182.       <td vAlign="top">zwraca warto╢µ <code>TRUE</code> je╢li
  183.         wska╝nik pliku znajduje siΩ na ko±cu pliku</td>
  184.     </tr>
  185.     <tr>
  186.       <td vAlign="top">Column</td>
  187.       <td vAlign="top">-</td>
  188.       <td vAlign="top">zwraca warto╢µ okre╢laj▒c▒ bie┐▒c▒
  189.         kolumnΩ, w kt≤rej znajduje siΩ wska╝nik pliku</td>
  190.     </tr>
  191.     <tr>
  192.       <td vAlign="top">Line</td>
  193.       <td vAlign="top">-</td>
  194.       <td vAlign="top">zwraca warto╢µ okre╢laj▒c▒ bie┐▒c▒
  195.         liniΩ, w kt≤rej znajduje siΩ wska╝nik pliku</td>
  196.     </tr>
  197.   </tbody>
  198. </table>
  199. <p align="justify">Poni┐szy skrypt ASP demonstruje u┐ycie podstawowych metod oraz w│a╢ciwo╢ci
  200. obiektu <code>TextStream</code>. Skrypt otwiera plik <code><i>C:\plik.txt</i></code>
  201. lub w przypadku, gdy nie istnieje, tworzy go. NastΩpnie dodawany jest napis
  202. "<i>To zosta│o napisane</i>" oraz data tego wpisu, po czym plik jest
  203. zamykany. W dalszej czΩ╢ci plik jest otwierany, odczytywana i wy╢wietlana
  204. jego zawarto╢µ, a nastΩpnie plik jest zamykany.</p>
  205. <table border="0">
  206.   <tbody>
  207.     <tr>
  208.       <td vAlign="top">1:<br>
  209.         2:<br>
  210.         3:<br>
  211.         4:<br>
  212.         5:<br>
  213.         6:<br>
  214.         7:<br>
  215.         8:<br>
  216.         9:<br>
  217.         10:<br>
  218.         11:<br>
  219.         12:</td>
  220.       <td colSpan="2" vAlign="top"><% <code>@LANGUAGE = VBScript</code>
  221.         %><br>
  222.         <% <code>Option Explicit</code> %><br>
  223.         <%<br>
  224.         <code>Const doOdczytu = 1, doZapisu = 2, doDopisu = 8<br>
  225.         Const TristateUseDefault = -2 'Otwiera plik u┐uwaj▒c systemu domy╢lnego<br>
  226.         Const TristateTrue = -1 'Otwiera plik jako Unicode<br>
  227.         Const TristateFalse = 0 'Otwiera plik jako ASCII<br>
  228.         Dim objFS, objTextStream, strLine<br>
  229.         <br>
  230.         ' Do│▒czenie tekstu do pliku<br>
  231.         Set objFS = Server.CreateObject("Scripting.FileSystemObject")<br>
  232.         If objFS.FileExists("C:\plik.txt") = True Then</code></td>
  233.     </tr>
  234.     <tr>
  235.       <td vAlign="top">13:</td>
  236.       <td vAlign="top"></td>
  237.       <td vAlign="top"><code>Set objTextStream =
  238.         objFS.OpenTextFile("C:\plik.txt", doDopisu, False,
  239.         TristateFalse)</code></td>
  240.     </tr>
  241.     <tr>
  242.       <td vAlign="top">14:</td>
  243.       <td colSpan="2" vAlign="top"><code>Else</code></td>
  244.     </tr>
  245.     <tr>
  246.       <td vAlign="top">15:</td>
  247.       <td vAlign="top"></td>
  248.       <td vAlign="top"><code>Set objTextStream =
  249.         objFS.CreateTextFile("C:\plik.txt", False, False)</code></td>
  250.     </tr>
  251.     <tr>
  252.       <td vAlign="top">16:<br>
  253.         17:<br>
  254.         18:<br>
  255.         19:<br>
  256.         20:<br>
  257.         21:</td>
  258.       <td colSpan="2" vAlign="top"><code>End If<br>
  259.         objTextStream.WriteLine "To zosta│o napisane " & Now
  260.         & "."<br>
  261.         objTextStream.Close<br>
  262.         <br>
  263.         ' Odczytanie zawarto╢ci pliku<br>
  264.         Set objTextStream = objFS.OpenTextFile("C:\plik.txt",
  265.         doOdczytu, TristateFalse)</code></td>
  266.     </tr>
  267.     <tr>
  268.       <td vAlign="top">22:<br>
  269.         23:</td>
  270.       <td colSpan="2" vAlign="top"><code>Response.Write "<P>Zawarto╢µ
  271.         pliku jest nastΩpuj▒ca:</P>" & VbCrLf<br>
  272.         Do While objTextStream.AtEndOfStream <> True</code></td>
  273.     </tr>
  274.     <tr>
  275.       <td vAlign="top">24:<br>
  276.         25:<br>
  277.         26:</td>
  278.       <td vAlign="top"></td>
  279.       <td vAlign="top"><code>strLine = objTextStream.ReadLine<br>
  280.         strLine = Server.HTMLEncode(strLine)<br>
  281.         Response.Write strLine & "<BR>" & VbCrLf</code></td>
  282.     </tr>
  283.     <tr>
  284.       <td vAlign="top">27:<br>
  285.         28:<br>
  286.         29:<br>
  287.         30:<br>
  288.         31:<br>
  289.         32:</td>
  290.       <td colSpan="2" vAlign="top"><code>Loop<br>
  291.         objTextStream.Close<br>
  292.         <br>
  293.         Set objTextStream = Nothing<br>
  294.         Set objFS = Nothing</code><br>
  295.         %></td>
  296.     </tr>
  297.   </tbody>
  298. </table>
  299. <p align="justify">W liniach 5-7 deklarowane s▒ sta│e obiektu <code>FileSystemObject</code>. W
  300. linii 8 znajduje siΩ deklaracja zmiennych u┐ytych w skrypcie. W linii 11
  301. tworzony jest obiekt <code>FileSystemObject</code> i przechowywany w zmiennej <code>objFS</code>.
  302. W liniach 12-16 sprawdzane jest czy plik o podanej nazwie istnieje poprzez wywo│anie
  303. metody <code>FileExists</code>. Otwierany jest plik <code><i>C:\plik.txt</i></code>
  304. lub w przypadku gdy on nie istnieje, zostaje utworzony. Linia 13</p>
  305. <table border="0">
  306.   <tbody>
  307.     <tr>
  308.       <td vAlign="top">Set objTextS = objFS.OpenTextFile("C:\plik.txt",
  309.         doDopisu, False, TristateFalse)</td>
  310.     </tr>
  311.   </tbody>
  312. </table>
  313. <p align="justify">otwiera plik <code><i>C:\plik.txt</i></code> (pierwszy parametr) poprzez wywo│anie
  314. metody <code>OpenTextFile</code>. Metoda posiada nastΩpuj▒ce parametry:</p>
  315. <table border="0">
  316.   <tbody>
  317.     <tr>
  318.       <td vAlign="top">1.</td>
  319.       <td vAlign="top">Nazwa_pliku</td>
  320.       <td vAlign="top">-</td>
  321.       <td vAlign="top">│a±cuch zawieraj▒cy nazwΩ otwieranego
  322.         pliku</td>
  323.     </tr>
  324.     <tr>
  325.       <td vAlign="top">2.</td>
  326.       <td vAlign="top">Tryb_We/Wy</td>
  327.       <td vAlign="top">-</td>
  328.       <td vAlign="top">okre╢la jakie operacje bΩd▒ wykonywane
  329.         na pliku, np. odczyt <code>doOdczytu</code> (<code>1</code>),
  330.         dopisywanie <code>doDopisu</code> (<code>8</code>); parametr opcjonalny</td>
  331.     </tr>
  332.     <tr>
  333.       <td vAlign="top">3.</td>
  334.       <td vAlign="top">Utworzyµ_je╢li_nie_istnieje</td>
  335.       <td vAlign="top">-</td>
  336.       <td vAlign="top">warto╢µ boolowska okre╢laj▒ca czy plik
  337.         ma zostaµ utworzony w razie gdyby nie istnia│; parametr opcjonalny</td>
  338.     </tr>
  339.     <tr>
  340.       <td vAlign="top">4.</td>
  341.       <td vAlign="top">Format</td>
  342.       <td vAlign="top">-</td>
  343.       <td vAlign="top">okre╢la format otwartego pliku; warto╢µ
  344.         domy╢lna to plik ASCII; parametr opcjonalny</td>
  345.     </tr>
  346.   </tbody>
  347. </table>
  348. <p align="justify">Odno╢nik do otwartego pliku jest przechowywany jako <code>TextStream</code>
  349. w zmiennej <code>objTextStream</code> (instrukcja <code>Set</code>). Komenda w
  350. linii 15 tworzy plik tekstowy <code><i>C:\plik.txt</i></code>, je╢li taki nie
  351. istnieje. Parametry metody <code>CreateTextFile</code> s▒ nastΩpuj▒ce:</p>
  352. <table border="0">
  353.   <tbody>
  354.     <tr>
  355.       <td vAlign="top">1.</td>
  356.       <td vAlign="top">Nazwa_pliku</td>
  357.       <td vAlign="top">-</td>
  358.       <td vAlign="top">│a±cuch zawieraj▒cy nazwΩ otwieranego
  359.         pliku</td>
  360.     </tr>
  361.     <tr>
  362.       <td vAlign="top">2.</td>
  363.       <td vAlign="top">Nadpisaµ_je╢li_istnieje</td>
  364.       <td vAlign="top">-</td>
  365.       <td vAlign="top">warto╢µ boolowska, okre╢laj▒ca czy
  366.         plik ma zostaµ nadpisany w razie gdyby istnia│; warto╢µ FALSE uniemo┐liwia
  367.         metodzie nadpisanie pliku; parametr opcjonalny</td>
  368.     </tr>
  369.     <tr>
  370.       <td vAlign="top">3.</td>
  371.       <td vAlign="top">Plik_Unicode</td>
  372.       <td vAlign="top">-</td>
  373.       <td vAlign="top">warto╢µ boolowska, okre╢laj▒ca czy
  374.         plik ma zostaµ utworzony jako plik unicode; parametr opcjonalny</td>
  375.     </tr>
  376.   </tbody>
  377. </table>
  378. <p align="justify">Linie 12-16 mo┐na zast▒piµ pojedyncz▒ lini▒, wygl▒daj▒c▒ nastΩpuj▒co:</p>
  379. <table border="0">
  380.   <tbody>
  381.     <tr>
  382.       <td vAlign="top">Set objTextStream =
  383.         objFS.OpenTextFile("C:\plik.txt", doDopisu, True,
  384.         TristateFalse)</td>
  385.     </tr>
  386.   </tbody>
  387. </table>
  388. <p align="justify">Powy┐sza instrukcja automatycznie tworzy plik <code><i>C:\plik.txt</i></code>
  389. przed jego otwarciem, je╢li taki jeszcze nie istnieje (trzeci parametr). W
  390. linii 17 do pliku dopisywany jest tekst zako±czony przej╢ciem do nastΩpnej
  391. linii (metoda <code>WriteLine</code>). Tre╢µ tekstu jest nastΩpuj▒ca: "<i>To
  392. zosta│o napisane</i>" oraz data pobrana w momencie dopisywania tego
  393. tekstu. Instrukcja w linii 18 zamyka obiekt <code>TextStream</code>, gdy┐ wywo│ana
  394. zosta│a metoda <code>Close</code> obiektu.<br>
  395. W nastΩpnej czΩ╢ci skryptu, czyli w liniach 20-28, nastΩpuje otwarcie
  396. istniej▒cego ju┐ pliku (utworzonego w pierwszej czΩ╢ci skryptu) i wy╢wietlenie
  397. jego zawarto╢ci. W linii 21 plik <code><i>C:\plik.txt</i></code> zosta│
  398. otwarty, wywo│ana zosta│a metoda <code>OpenTextFile</code>, w trybie do
  399. odczytu (drugi parametr - <code>doOdczytu</code>) oraz jako plik ASCII (parametr
  400. trzeci - <code>TristateFalse</code>). Zawarto╢µ pliku jest wys│ana do przegl▒darki
  401. (klienta) w linii 23-27. Warunek w <a class="LINK" href="#petlaDoWhile">pΩtli
  402. Do While</a> dotyczy okre╢lenia ko±ca pliku. Je╢li wyst▒pi informacja o ko±cu
  403. pliku, warto╢µ w│a╢ciwo╢ci <code>AtEndOfStream</code> bΩdzie r≤wna warto╢ci
  404. <code>TRUE</code> i pΩtla zako±czy swoje wykonywanie. W linii 24 zostaje
  405. odczytana pojedyncza linia znajduj▒ca siΩ w pliku i zapisana w zmiennej <code>strLine</code>.
  406. W linii 25 zawarto╢µ zmiennej <code>strLine</code> jest przetwarzana na tekst
  407. HTML i w linii 27 wy╢wietlana w oknie przegl▒darki. Po zako±czeniu
  408. wykonywania siΩ pΩtli Do While,
  409. obiekt <code>TextStream</code> zosta│ zamkniΩty (linia 28) i zasoby serwera
  410. dotycz▒ce obiekt≤w <code>objTextStream</code> oraz <code>objFS</code> zosta│y
  411. zwolnione w liniach 30-31.</p>
  412. <p align="justify"><code>Odczytanie w│a╢ciwo╢ci dysku</code></p>
  413. <p align="justify">W celu pobrania informacji o dysku nale┐y pos│u┐yµ siΩ obiektem <code>Drive</code>,
  414. kt≤ry zawiera w swoich w│a╢ciwo╢ciach informacje na temat wszystkich
  415. zamontowanych na serwerze napΩd≤w dyskowych. Obiekt posiada 11 w│a╢ciwo╢ci
  416. i nie posiada ┐adnej metody. Poni┐ej przedstawiony skrypt ASP odczytuje
  417. wszystkie w│a╢ciwo╢ci napΩdu, na kt≤rym sam siΩ znajduje i wy╢wietla je w
  418. oknie przegl▒darki.</p>
  419. <table border="0">
  420.   <tbody>
  421.     <tr>
  422.       <td vAlign="top">1:<br>
  423.         2:<br>
  424.         3:<br>
  425.         4:<br>
  426.         5:<br>
  427.         6:<br>
  428.         7:<br>
  429.         8:<br>
  430.         9:<br>
  431.         10:<br>
  432.         11:<br>
  433.         12:<br>
  434.         13:<br>
  435.         14:<br>
  436.         15:<br>
  437.         16:<br>
  438.         17:<br>
  439.         18:<br>
  440.         19:<br>
  441.         20:<br>
  442.         21:<br>
  443.         22:</td>
  444.       <td colSpan="2" vAlign="top"><% <code>@LANGUAGE = VBScript</code>
  445.         %><br>
  446.         <% <code>Option Explicit</code> %><br>
  447.         <%<br>
  448.         <code>Const doOdczytu = 1, doZapisu = 2, doDopisu = 8<br>
  449.         Const TristateUseDefault = -2 'Otwiera plik u┐ywaj▒c domy╢lnych
  450.         ustawie±<br>
  451.         Const TristateTrue = -1 'Otwiera plik jako Unicode<br>
  452.         Const TristateFalse = 0 'Otwiera plik jako ASCII<br>
  453.         Dim objFS, strFile, strDriveName, objDrive<br>
  454.         Dim strDriveType, R<br>
  455.         <br>
  456.         Set objFS = Server.CreateObject("Scripting.FileSystemObject")<br>
  457.         strFile = Request.ServerVariables("SCRIPT_NAME")<br>
  458.         strFile = Server.MapPath(strFile)<br>
  459.         strDriveName = objFS.GetDriveName(strFile)<br>
  460.         Set objDrive = objFS.GetDrive(strDriveName)<br>
  461.         <br>
  462.         R = "W│a╢ciwo╢ci napΩdu " & strDriveName &
  463.         "<BR>"<br>
  464.         R = R & "Nazwa napΩdu = " & objDrive.DriveLetter
  465.         & "<BR>"<br>
  466.         R = R & "ªcie┐ka = " & objDrive.Path &
  467.         "<BR>"<br>
  468.         R = R & "System plik≤w = " & objDrive.FileSystem
  469.         & "<BR>"<br>
  470.         R = R & "Nazwa wolumenu = " & objDrive.VolumeName
  471.         & "<BR>"<br>
  472.         R = R & "Wolne miejsce = " &
  473.         FormatNumber(objDrive.FreeSpace/1024, 0) & " KB<BR>"</code></td>
  474.     </tr>
  475.     <tr>
  476.       <td vAlign="top">23:</td>
  477.       <td colSpan="2" vAlign="top"><code>R = R & "Pojemno╢µ
  478.         = " & FormatNumber(objDrive.TotalSize/1024, 0) & "
  479.         KB<BR>"</code></td>
  480.     </tr>
  481.     <tr>
  482.       <td vAlign="top">24:<br>
  483.         25:<br>
  484.         26:<br>
  485.         27:<br>
  486.         28:</td>
  487.       <td colSpan="2" vAlign="top"><code>R = R & "Katalog
  488.         g│≤wny = " & objDrive.RootFolder & "<BR>"<br>
  489.         R = R & "Numer seryjny = " & objDrive.SerialNumber
  490.         & "<BR>"<br>
  491.         R = R & "Nazwa udzia│u = " & objDrive.ShareName &
  492.         "<BR>"<br>
  493.         <br>
  494.         If objDrive.IsReady = True Then</code></td>
  495.     </tr>
  496.     <tr>
  497.       <td vAlign="top">29:</td>
  498.       <td vAlign="top"></td>
  499.       <td vAlign="top"><code>R = R & "Stan dostΩpu =
  500.         gotowy" & "<BR>"</code></td>
  501.     </tr>
  502.     <tr>
  503.       <td vAlign="top">30:</td>
  504.       <td colSpan="2" vAlign="top"><code>Else</code></td>
  505.     </tr>
  506.     <tr>
  507.       <td vAlign="top">31:</td>
  508.       <td vAlign="top"></td>
  509.       <td vAlign="top"><code>R = R & "Stan dostΩpu = brak
  510.         goto╢ci" & "<BR>"</code></td>
  511.     </tr>
  512.     <tr>
  513.       <td vAlign="top">32:<br>
  514.         33:</td>
  515.       <td colSpan="2" vAlign="top"><code>End If<br>
  516.         Select Case objDrive.DriveType</code></td>
  517.     </tr>
  518.     <tr>
  519.       <td vAlign="top">34:<br>
  520.         35:<br>
  521.         36:<br>
  522.         37:<br>
  523.         38:<br>
  524.         39:</td>
  525.       <td vAlign="top"></td>
  526.       <td vAlign="top"><code>Case 0: strDriveType =
  527.         "Nieznany"<br>
  528.         Case 1: strDriveType = "Wymienialny"<br>
  529.         Case 2: strDriveType = "Sta│y"<br>
  530.         Case 3: strDriveType = "Sieciowy"<br>
  531.         Case 4: strDriveType = "CD-ROM"<br>
  532.         Case 5: strDriveType = "Dysk RAM"</code></td>
  533.     </tr>
  534.     <tr>
  535.       <td vAlign="top">40:<br>
  536.         41:<br>
  537.         42:<br>
  538.         43:<br>
  539.         44:<br>
  540.         45:<br>
  541.         46:<br>
  542.         47:</td>
  543.       <td colSpan="2" vAlign="top"><code>End Select<br>
  544.         R = R & "Typ napΩdu = " & strDriveType &
  545.         "<BR>"<br>
  546.         <br>
  547.         Response.Write R<br>
  548.         <br>
  549.         Set objDrive = Nothing<br>
  550.         Set objFS = Nothing</code><br>
  551.         %></td>
  552.     </tr>
  553.   </tbody>
  554. </table>
  555. <p align="justify">W liniach 4-7 zosta│y zdefiniowane sta│e u┐yte w skrypcie, za╢ deklaracja
  556. zmiennych w liniach 8-9. W linii 11 zosta│ stworzony obiekt <code>FileSystemObject</code>,
  557. niezbΩdny w celu utworzenia obiektu <code>Drive</code>. W linii 12 zmiennej <code>strFile</code>
  558. zosta│a przypisana warto╢µ zmiennej ╢rodowiskowej <code>SCRIPT_NAME</code>.
  559. Od tej pory zmienna <code>strFile</code> zawiera wirtualn▒ ╢cie┐kΩ do bie┐▒cego
  560. skryptu. W linii 13 nastΩpuje odczytanie fizycznej ╢cie┐ki przez
  561. wykorzystanie zmiennej <code>strFile</code> oraz metody <code>MapPath</code>. W
  562. linii 14 nazwa dysku, na kt≤rym znajduje siΩ skrypt, jest przypisana do
  563. zmiennej <code>strDriveName</code> za pomoc▒ metody <code>GetDriveName</code>
  564. obiektu <code>FileSystemObject</code>. Obiekt <code>Drive</code> jest utworzony
  565. w linii 15 przez wywo│anie metody <code>GetDrive</code> obiektu <code>FileSystemObject</code>
  566. i przechowywany w zmiennej <code>objDrive</code>. W liniach 17-41 nastΩpuje
  567. zapisanie wszystkich informacji dotycz▒cych bie┐▒cego dysku (obiektu <code>Drive</code>)
  568. do zmiennej <code>R</code> w postaci │a±cucha. Ka┐da w│a╢ciwo╢µ obiektu <code>Drive</code>
  569. zosta│a om≤wiona ju┐ w skrypcie wiΩc nie ma potrzeby do tego wracaµ. Linia
  570. 43 wysy│a do przegl▒darki (klienta) zawarto╢µ zmiennej <code>R</code>. W
  571. liniach 45-46 nastΩpuje zwolnienie zasob≤w serwera przeznaczonych dla obiekt≤w
  572. <code>objDrive</code> oraz <code>objFS</code>.</p>
  573. <p align="justify"><code>Wykonywanie operacji na katalogach</code></p>
  574. <p align="justify">W celu dokonywania jakichkolwiek operacji na katalogach nale┐ pos│u┐yµ siΩ
  575. obiektem <code>Folder</code>. Za pomoc▒ jego metod mo┐na przenosiµ, kopiowaµ
  576. oraz kasowaµ katalogi. Mo┐na tak┐e utworzyµ plik tekstowy u┐ywaj▒c metody <code>CreateTextFile</code>
  577. obiektu <code>Folder</code>.<br>
  578. Poni┐szy skrypt wy╢wietla fizyczn▒ strukturΩ katalogu g│≤wnego WWW wraz z
  579. wszystkimi podkatalogami i plikami.</p>
  580. <table border="0">
  581.   <tbody>
  582.     <tr>
  583.       <td vAlign="top">1:<br>
  584.         2:<br>
  585.         3:<br>
  586.         4:<br>
  587.         5:<br>
  588.         6:<br>
  589.         7:</td>
  590.       <td colSpan="3" vAlign="top"><% <code>@LANGUAGE = VBScript</code>
  591.         %><br>
  592.         <% <code>Option Explicit</code> %><br>
  593.         <HTML><br>
  594.         <BODY><br>
  595.         <P>Struktura katalogu:</P><br>
  596.         <%<br>
  597.         <code>Function Akapit(glebokosc)</code></td>
  598.     </tr>
  599.     <tr>
  600.       <td vAlign="top">8:<br>
  601.         9:</td>
  602.       <td vAlign="top"></td>
  603.       <td colSpan="2" vAlign="top"><code>Dim i, wyjscie<br>
  604.         For i = 1 To glebokosc</code></td>
  605.     </tr>
  606.     <tr>
  607.       <td vAlign="top">10:</td>
  608.       <td vAlign="top"></td>
  609.       <td vAlign="top"></td>
  610.       <td vAlign="top"><code>wyjscie = wyjscie & "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"</code></td>
  611.     </tr>
  612.     <tr>
  613.       <td vAlign="top">11:<br>
  614.         12:</td>
  615.       <td vAlign="top"></td>
  616.       <td colSpan="2" vAlign="top"><code>Next<br>
  617.         Akapit = wyjscie</code></td>
  618.     </tr>
  619.     <tr>
  620.       <td vAlign="top">13:<br>
  621.         14:<br>
  622.         15:</td>
  623.       <td colSpan="3" vAlign="top"><code>End Function<br>
  624.         <br>
  625.         Function SprawdzKatalogi(ByRef objKatalog, ByVal glebokosc)</code></td>
  626.     </tr>
  627.     <tr>
  628.       <td vAlign="top">16:<br>
  629.         17:<br>
  630.         18:<br>
  631.         19:</td>
  632.       <td vAlign="top"></td>
  633.       <td colSpan="2" vAlign="top"><code>Dim Katalog, Plik, i<br>
  634.         i = Akapit(glebokosc - 1)<br>
  635.         Response.Write i & "<B>" & objKatalog.Name &
  636.         "</B><BR>"<br>
  637.         For Each Katalog In objKatalog.SubFolders</code></td>
  638.     </tr>
  639.     <tr>
  640.       <td vAlign="top">20:</td>
  641.       <td vAlign="top"></td>
  642.       <td vAlign="top"></td>
  643.       <td vAlign="top"><code>SprawdzKatalogi Katalog, glebokosc + 1</code></td>
  644.     </tr>
  645.     <tr>
  646.       <td vAlign="top">21:<br>
  647.         22:<br>
  648.         23:</td>
  649.       <td vAlign="top"></td>
  650.       <td colSpan="2" vAlign="top"><code>Next<br>
  651.         i = Akapit(glebokosc)<br>
  652.         For Each Plik In objKatalog.Files</code></td>
  653.     </tr>
  654.     <tr>
  655.       <td vAlign="top">24:</td>
  656.       <td vAlign="top"></td>
  657.       <td vAlign="top"></td>
  658.       <td vAlign="top"><code>Response.Write i & Plik.Name &
  659.         "<BR>"</code></td>
  660.     </tr>
  661.     <tr>
  662.       <td vAlign="top">25:</td>
  663.       <td vAlign="top"></td>
  664.       <td colSpan="2" vAlign="top"><code>Next</code></td>
  665.     </tr>
  666.     <tr>
  667.       <td vAlign="top">26:<br>
  668.         27:<br>
  669.         28:<br>
  670.         29:<br>
  671.         30:<br>
  672.         31:<br>
  673.         32:<br>
  674.         33:<br>
  675.         34:<br>
  676.         35:<br>
  677.         36:<br>
  678.         37:<br>
  679.         38:<br>
  680.         39:<br>
  681.         40:<br>
  682.         41:</td>
  683.       <td colSpan="3" vAlign="top"><code>End Function<br>
  684.         <br>
  685.         ' Pocz▒tek programu g│≤wnego<br>
  686.         Dim objFS, objRootFolder, strVirtualRoot<br>
  687.         <br>
  688.         strVirtualRoot = Server.MapPath("/")<br>
  689.         Set objFS = Server.CreateObject("Scripting.FileSystemObject")<br>
  690.         Set objRootFolder = objFS.GetFolder(strVirtualRoot)<br>
  691.         <br>
  692.         SprawdzKatalogi objRootFolder, 1<br>
  693.         <br>
  694.         Set objRootFolder = Nothing<br>
  695.         Set objFS = Nothing</code><br>
  696.         %><br>
  697.         </BODY><br>
  698.         </HTML></td>
  699.     </tr>
  700.   </tbody>
  701. </table>
  702. <p align="justify">Powy┐szy skrypt zawiera dwie funkcje (linie 7-26) oraz czΩ╢µ g│≤wn▒
  703. skryptu (28-38). W czΩ╢ci g│≤wnej znajduje siΩ deklaracja zmiennych (linia
  704. 29) oraz tworzone s▒ obiekty <code>FileSystemObject</code> i <code>Folder</code>.
  705. Wywo│anie funkcji <code>SprawdzKatalogi</code> z parametrami znajduje siΩ w
  706. linii 35. Wywo│anie funkcji z parametrami mo┐e przyj▒µ tak┐e postaµ:</p>
  707. <table border="0">
  708.   <tbody>
  709.     <tr>
  710.       <td vAlign="top">SprawdzKatalogi(objRootFolder, 1)</td>
  711.     </tr>
  712.   </tbody>
  713. </table>
  714. <p align="justify">Funkcja za chwilΩ bΩdzie omawiana. Ostatni fragment czΩ╢ci g│≤wnej
  715. zwalnia zasoby serwera zajmowane przez obiekty <code>objRootFolder</code> i <code>objFS</code>.</p>
  716. <p align="justify">Funkcja <code>Akapit(</code>glebokosc<code>)</code> zwraca │a±cuch z pozycj▒
  717. (odstΩpem obrazuj▒cym wizualnie lokalizacjΩ) pliku lub katalogu. Parametrem
  718. wej╢ciowym jest <code>glebokosc</code>, kt≤ry zawiera pozycjΩ (g│Ωboko╢µ)
  719. pliku lub katalogu. Przypisanie warto╢ci zwrotnej funkcji znajduje siΩ w linii
  720. 12. Instrukcja informuj▒ca o ko±cu funkcji znajduje siΩ w linii 13.</p>
  721. <p align="justify">Funkcja <code>SprawdzKatalogi(</code>ByRef objKatalog, ByVal glebokosc<code>)</code>
  722. pe│ni rolΩ procedury, gdy┐ nie zwraca warto╢ci.<br>
  723. W pierwszej czΩ╢ci, linia 16 to deklaracja zmiennych wewnΩtrznych funkcji,
  724. tj. <code>Katalog</code>, <code>Plik</code> oraz <code>i</code>. W linii 17 nastΩpuje
  725. przyporz▒dkowanie │a±cucha zwr≤conego przez funkcjΩ <code>Akapit</code>
  726. zmiennej <code>i</code> (parametrem wej╢ciowym jest pozycja bie┐▒cego
  727. katalogu zmniejszona o jeden), kt≤ra jest wysy│ana wraz z nazw▒ bie┐▒cego
  728. katalogu do przegl▒darki (klienta) w linii 18. <a class="LINK" href="#petlaForEach">PΩtla
  729. For Each</a> znajduj▒ca siΩ w liniach 19-21 w przypadku wyst▒pienia
  730. podkatalog≤w w katalogu bie┐▒cym wywo│uje siΩ ona sama, z t▒ r≤┐nic▒,
  731. ┐e jej parametrami s▒ teraz:</p>
  732. <table border="0">
  733.   <tbody>
  734.     <tr>
  735.       <td vAlign="top">-</td>
  736.       <td vAlign="top">bie┐▒cy podkatalog,</td>
  737.     </tr>
  738.     <tr>
  739.       <td vAlign="top">-</td>
  740.       <td vAlign="top">pozycja (g│Ωboko╢µ) zwiΩkszona o jeden
  741.         bie┐▒cego katalogu.</td>
  742.     </tr>
  743.   </tbody>
  744. </table>
  745. <p align="justify">W dalszej czΩ╢ci, linia 22, zmiennej <code>i</code> przypisywana jest warto╢µ
  746. │a±cucha zwr≤conego przez funkcjΩ <code>Akapit</code> z parametrem wej╢ciowym
  747. r≤wnym poziomowi (g│Ωboko╢ci) bie┐▒cego katalogu. W liniach 23-25 znajduje
  748. siΩ kolejna <a class="LINK" href="#petlaForEach">pΩtla For Each</a>, kt≤ra wy╢wietla
  749. nazwy wszystkich plik≤w znajduj▒cych siΩ w bie┐▒cym katalogu. Linia 24
  750. informuje o zako±czeniu funkcji <code>SprawdzKatalogi</code>. Funkcja <code>SprawdzKatalogi</code>
  751. jest funkcj▒ rekurencyjn▒ i jej dzia│anie jest trochΩ z│o┐one. Poni┐sza
  752. funkcja (<code>PokazBiezacyKatalog</code>) mog│aby zast▒piµ funkcjΩ <code>SprawdzKatalogi</code>
  753. w przypadku, gdyby nale┐a│o wy╢wietliµ informacje tylko na temat bie┐▒cego
  754. katalogu, bez wgl▒du w strukturΩ wewnΩtrzn▒ podkatalog≤w. Funkcja <code>PokazBiezacyKatalog</code>
  755. nie posiada parametru wej╢ciowego okre╢laj▒cego poziom (g│Ωboko╢µ)
  756. umieszczonych plik≤w oraz podkatalog≤w, nie jest funkcj▒ rekurencyjn▒, gdy┐
  757. nie wywo│uje siΩ sama z kodu wewnΩtrznego.</p>
  758. <table border="0">
  759.   <tbody>
  760.     <tr>
  761.       <td vAlign="top">1:</td>
  762.       <td colSpan="3" vAlign="top">Function
  763.         PokazBiezacyKatalog(ByRef objKatalog)</td>
  764.     </tr>
  765.     <tr>
  766.       <td vAlign="top">2:<br>
  767.         3:<br>
  768.         4:<br>
  769.         5:</td>
  770.       <td vAlign="top"></td>
  771.       <td colSpan="2" vAlign="top">Dim Katalog, Plik, i<br>
  772.         i = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"<br>
  773.         Response.Write "<B>" & objKatalog.Name &
  774.         "</B><BR>"<br>
  775.         For Each Katalog In objKatalog.SubFolders</td>
  776.     </tr>
  777.     <tr>
  778.       <td vAlign="top">6:</td>
  779.       <td vAlign="top"></td>
  780.       <td vAlign="top"></td>
  781.       <td vAlign="top">Response.Write i & "<B>"
  782.         & Katalog.Name & "</B><BR>"</td>
  783.     </tr>
  784.     <tr>
  785.       <td vAlign="top">7:<br>
  786.         8:</td>
  787.       <td vAlign="top"></td>
  788.       <td colSpan="2" vAlign="top">Next<br>
  789.         For Each Plik In objKatalog.Files</td>
  790.     </tr>
  791.     <tr>
  792.       <td vAlign="top">9:</td>
  793.       <td vAlign="top"></td>
  794.       <td vAlign="top"></td>
  795.       <td vAlign="top">Response.Write i & Plik.Name &
  796.         "<BR>"</td>
  797.     </tr>
  798.     <tr>
  799.       <td vAlign="top">10:</td>
  800.       <td vAlign="top"></td>
  801.       <td colSpan="2" vAlign="top">Next</td>
  802.     </tr>
  803.     <tr>
  804.       <td vAlign="top">11:</td>
  805.       <td colSpan="3" vAlign="top">End Function</td>
  806.     </tr>
  807.   </tbody>
  808. </table>
  809. <p align="justify"><code>Przenoszenie, kopiowanie i kasowanie plik≤w i katalog≤w</code></p>
  810. <p align="justify">Obiekt <code>FileSystemObject</code> dostarcza metod umo┐liwiaj▒cych
  811. przenoszenie, kopiowanie oraz kasowanie plik≤w i folder≤w. Oto one:</p>
  812. <table border="0">
  813.   <tbody>
  814.     <tr>
  815.       <td vAlign="top">Copy</td>
  816.       <td vAlign="top">-</td>
  817.       <td vAlign="top">kopiuje okre╢lony plik lub katalog z
  818.         jednego miejsca na drugie</td>
  819.     </tr>
  820.     <tr>
  821.       <td vAlign="top">Delete</td>
  822.       <td vAlign="top">-</td>
  823.       <td vAlign="top">usuwa okre╢lony plik lub katalog</td>
  824.     </tr>
  825.     <tr>
  826.       <td vAlign="top">Move</td>
  827.       <td vAlign="top">-</td>
  828.       <td vAlign="top">przenosi okre╢lony plik lub katalog z
  829.         jednego miejsca na drugie</td>
  830.     </tr>
  831.   </tbody>
  832. </table>
  833. <table border="0">
  834.   <tbody>
  835.     <tr>
  836.       <td vAlign="top">OpenAsTextStream</td>
  837.       <td vAlign="top">-</td>
  838.       <td vAlign="top">tworzy okre╢lony plik i zwraca obiekt <code>TextStream</code>,
  839.         kt≤ry mo┐e byµ u┐yty w celu odczytu i zapisu do pliku (metoda nie
  840.         jest dostΩpna dla obiektu <code>File</code>)</td>
  841.     </tr>
  842.   </tbody>
  843. </table>
  844.  
  845. <hr size="1" color="#FFFFFF"><span class="stopa">
  846. <b>Autor:</b> <a href="mailto:stelmi@friko2.onet.pl" class="stopka">Krzysztof Stelmach</a><br>
  847. <b>Artyku│ ze strony:</b> <a href="http://www.asp.z.pl/" class="stopka" target="_blank">http://www.asp.z.pl/</a>
  848. </span><br></td>
  849.     </tr></table>
  850.     </div>
  851. </td>
  852. <td width="142" valign="top">
  853.  
  854.         <br>
  855.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  856.         <tr>
  857.         <td width="142" valign="top"><img src="img/login.gif" border="0" width="142" height="13" alt="LOGIN"></td>
  858.         </tr>
  859.         <tr>
  860.         <td width="142" valign="top" background="img/okno1.gif">
  861.         
  862.             
  863.             <div align="center">
  864.             <table cellpadding="0" cellspacing="2" border="0" width="98%">
  865.             <form method="post" action="subskrypcja/login.php">
  866.             <tr><td width="30%"><span class="t">Login:</span></td><td width="68%"><input type="text" name="login" size="15" class="login"></td></tr>
  867.             <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>
  868.             
  869.             <tr><td colspan="2"><center><input type="image" src="img/ok.gif"></td></tr>
  870.             </form></table></div>
  871.         
  872.         </td>
  873.         </tr>
  874.         <tr>
  875.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  876.         </tr></table>
  877.  
  878.         <br>
  879.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  880.         <tr>
  881.         <td width="142" valign="top"><img src="img/art.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  882.         </tr>
  883.         <tr>
  884.         <td width="142" valign="top" background="img/okno1.gif">
  885.         
  886.         <span class="m">
  887.         
  888.          -<a href="index.php@id=1" class="menu">"Edytory HTML'a"</a><br>
  889.          -<a href="index.php@id=2" class="menu">"Publikowanie witryny"</a><br>
  890.          -<a href="index.php@id=3" class="menu">"PHP w domu"</a><br>
  891.          -<a href="index.php@id=4" class="menu">"Przeszukiwanie stron"</a><br>
  892.          -<a href="index.php@id=204" class="menu">"Wprowadzenie do Javy"</a><br>
  893.          -<a href="index.php@id=210" class="menu">"Grafika w PHP"</a>
  894.         </span>
  895.         
  896.         </td>
  897.         </tr>
  898.         <tr>
  899.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  900.         </tr></table>
  901.         
  902.         <br>
  903.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  904.         <tr>
  905.         <td width="142" valign="top"><img src="img/stat.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  906.         </tr>
  907.         <tr>
  908.         <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: 24121</span>        </ol>
  909.         <center><a href="http://stat.webmedia.pl/cgi-bin/anal?webarea" target="_blank">
  910. <img border=0 src="http://stat.webmedia.pl/cgi-bin/stat?webarea&stat4ur" alt="stat4u" width="40" height="10"></a></center>
  911.         </td></tr></table></div>
  912.         </td>
  913.         </tr>
  914.         <tr>
  915.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  916.         </tr></table>
  917.         
  918.         <br>
  919.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  920.         <tr>
  921.         <td width="142" valign="top"><img src="img/sponsor.gif" border="0" width="142" height="13" alt="SPONSOR"></td>
  922.         </tr>
  923.         <tr>
  924.         <td width="142" valign="top" background="img/okno1.gif"><br>
  925.         <center><EMBED src="img/beep2.swf" quality=high bgcolor=#000000 WIDTH=120 HEIGHT=30></center>                            
  926.         </td>
  927.         </tr>
  928.         <tr>
  929.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  930.         </tr></table>
  931.  
  932.         <br>
  933.             <div align="center"><table border="0" cellpadding="2" cellspacing="0" width="120">
  934.             <tr>
  935.             <td width="120"><a href="button.php@id=1" target="_blank"><img src="img/cgi.gif" border="0"></a></td>
  936.             </tr>
  937.             <tr>
  938.             <td width="120"><a href="button.php@id=2" target="_blank"><img src="img/ygreg.gif" border="0"></a></td>
  939.             </tr>
  940.             <tr>
  941.             <td width="120"></td>
  942.             </tr>
  943.             </table>
  944.             </div>
  945.         
  946.  
  947. </td>
  948. </tr>
  949. <tr>
  950. <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>
  951. </tr></table></div>
  952.  
  953.  
  954. </body>
  955. </html>