Poprawiłem strony z wyśrodkowaniem tekstów w CSS przy muzyce Country, jeszcze często popełniam, błędy, ale przez czytanie książek i ciągłe ćwiczenie nabieram wprawy w html i css, braki wynikają stąd, że przez dłuższy czas zajmowałem się językiem php i nauką SQL dla bazy MySQL, bo przez tworzenie prostych stron, a nie korzystanie z gotowców jak worpress i joomla, można dużo się nauczyć, instalować forum także potrafię, ale wolę napisać własne forum z mechanizmami jak ono działa w skrypcie php niż korzystać z gotowców, na początek polecam instalowanie i obsługę forum punbb, a dopiero póżniej rozbudowane phpbb

W forum phpbb chyba znajduje się tajne forum dla określonych grup, ale i tak tekst można podglądnąć w bazie MySQL, ponieważ nie jest szyfrowane..., gdyby było, a nie znany byłby sposób lub klucz do jego odszyfrowania, to mogłoby być wykorzystane bezprawnie, ale po adresach ip i tak można wskazać osoby w nim biorące udział w rozmowie wirtualnej.


Ostatnio do pobieralni (ranking plików) Dodałem skrypty na kategorie podobne do tych starych w allegro
i wyszukiwanie kategorii po podaniu szukanych tutaj owoców, jarzyn
- wszystko to wersja robocza - kod zawiera wiele komentarzy testowych
chodziło mi o to aby kategorie wyświetlał ten sam skrypt z identyfikatorami, a nie inne podstrony
i różne pliki html jak budują hierarchię inni - hierarchia jest w bazie i ważna jest kolumna glebokosc
danej kategorii.
zapytania w skrypcie bazują na samozłączeniach opisanych w książce SQL Receptury
ponadto utworzyłem łancuszek podkategorii ta funkcja jest najłatwiejsza do napisania
Nad tymi skryptami pracowałem w latach z przerwami nawet miesięcznymi od 2011 do 2017 roku
aż siię udało je wykonać
aby dodać przedmiot do ogłoszenia i wybrać pokolei podkategorie
Trzeba skorzystać ze skryptu Marcina Lisa z ksiązki Ajax i php albo z 101 skryptów Ajax
i rozbudowac skrypt ajax na cztery powiązane pola select, to rozwiązanie w formularzu przesyła metoda get
wybrane podkategorie w pasku adresu po identyfikatorach, które można zapisać w bazie w ozdzielnych kolumnach


Moje ulubione gry platformowe dotyczą sztuk walki to "ninja" i "international karate championship"
na komputer Atari 65 XE lub konsolę AtariWin na komputer osobisty - można pobrać ze stron o atari i uruchomić
by pokazać dzieciom w co się dawniej grało na komputerze PC mając tą konsolę i dodatki (romy) aby uruchomić grę.
oraz DOS-owa gra Sango Fighter - dwójka jest po chińsku obie przedstawiają techniki kung fu i wu shu
mortal combat przy tych grach to kicha, Sango Fighter jest w pełnej wersji dostępny w ed2k (1,46MB)

Pamiętam zajęcia z informatyki - jak moi koledzy mający już sieć rozgrywali pojedynki Quake
ja spróbowałem wtedy, kiedy kupiłem grę Vietcong za pół ceny przeszedłem całą,
ze zainstalowanym dodatkiem
instalowałem także dodatkowe rozszerzenia - plansze mapy, na których nikt nie chciał grać
bo takowych, nie instalowali inni użytkownicy, a ja nie mając stałego łącza nawiązałem kontakt
z grupą która korzystała z komunikatora TEAM SPEAK-a po podłączeniu się do tzw pokoju
słyszałem rozmówców obsługujących wspólną grę, jak człowiek nie spróbuje to się nie nauczy.
Widziałem, że wiekszość osób na allegro sprzedawało taktyczno strategiczną grę westernową
HELLDORADO za grosze, bo być może miały problemy
z zainstalowaniem ogrinalnej gry z DVD, nie działa tam aplikacja PsychX, mam odpowiednią wersję
należy podczas instalowania gry w pewnym momencie zainstalować wersję 8.0 i zignorować tą wersję z DVD
a gra na sprzęcie Athlon XP 3200, grafika 512mb Geforce 6800 zadziała.
Gra się miała nazywać jak zaproponowałem na forum.spellbound.de COOPER IN COLORADO
ale ktoś z zespołu zadrwił sobie i nazwał HELLDORADO, kilka moich pomysłów zastosowano w tej grze
taktycznej zespołowej, trójwymiarowej z przenoszeniem do planszy izometrycznej.


Do gier specjalnie zmontowałem komputer na windows 2000, bo jest najmniej pamięciożerny
ale stoi bezużyteczny bo nie gram już od ponad 10 lat. Mam pełną szuflade orginalnych gier ciekawych większość 3D,
ale nie sprzedam, ich bo musiałbyś mieć czytelniku stary komputer :)

A teraz do rzeczy w Polsce została wydana dobra książka do E-commerce posiadające logo Helion i APRESS
bazuje na już zdeprecjonowanym module PEAR DB, w drugim wydaniu angielskim zauważyłem,
że autorzy przestawili się na obsługę bazy przez rozszerzenie php PDO
można jeszcze z sieci www pobrać odpowiednią wersję do starszego PHP modułu DB
i zainstalować moduł ręcznie na localhoscie,
ale będzie ciezko chyba znaleźć dostawcę ze starszą wersją PHP
- na hostingu hekko można jeszcze ustawić php 5.2 jako najstarszą obsługiwaną wersję dla własnej strony
podobnie ma się rzecz z książką z dziobakiem autora z Australii,
ale nie znalazłem na razie wznowienia książki - za rok być może okazać się, że ukaże się ósma wersja php :)
nie chodzi o to, żeby być na bieżąco, ale żeby coś dobrze się nauczyć
4 ksiązki do php 7 z packt publisching znalazłem w ed2k, jeszcze nie ma polskich tych autorów

przedstawiam nie ukończony do końca projekt wyszukiwarki tekstów -
projekt jest zapisanych w oddzielnych tabelach
i podałem sposób połączenia ich w zapytaniu,
które się zmienia od postawionych warunków.
przyklad wyszukiwarki stworzonej na bazie odzielnych tabel
przykłady skryptów php tej wyszukiwarki w pobieralni.
Projekt działa ale nie jest estetycznie wykończony,
można ten projekt bardziej rozwinąć -
podaję go jako przykład bo eksperymentowałem nad nim.
w przykładzie tej wyszukiwarki celowo podałem złaczenia INNER JOIN
dla silnika MYISAM byc może dla silnika InnoDB, gdzie wymaga się zdefiniowanie
relacji kluczy głownych i obcych nie trzeba tak rozbudowywać zapytania
jak przebrnę przez nowszą literaturę to podam przykład

Odnośnie nowoczesnego javascriptu polecam pobrać plik js z archiwum html5shiv-master
html5shiv-master - będzie on potrzebny do ksiązki Larrego Ulmana pt "Nowoczesny język Javascript"
dla starszych przeglądarek, aby skrypty w nich działały.
Nie wiem czemu jeszcze ale już jest to chyba ksiązka przestarzała dla nowszych przeglądarek,
odkąd weszło ECMAScript 6, a ksiażka obejmuje piątkę w którejs tam wersji...

zabezpieczanie stron przed SQL INJECTION
http://webandy.hekko24.pl/shimano/model.php?id=3 <-możesz teraz, cokolwiek wpisać za trójką, a nic Ci to nie da!

Zauważyłem, że odnośnik do mojej strony na rosyjskim forum
anticzat zawiera zapytanie po UNION kod SQL z którego można odczytać dane
odnośnie bazy danych
- rozwiązanie jakie mi podsuneło to zabezpieczenie zmiennej id
i sprawdzenie w skrypcie czy ma wartość numeryczną - funkcja is_numeric() oto zadba,
zanim przypisze się, dane z adresu do zmiennej.ot kod model.php dla instrukcji shimano po drobnej poprawce:
<?php
 
include('mysql_connect.php');

 if((isset(
$_GET['id']))&&(is_numeric($_GET['id'])))
 {
  
$id_czesci $_GET['id'];
 } else { echo 
"<h2><font color=\"blue\">It hasn't easy for injection SQL!!!</font></h2>";; }
 echo 
'<body background="PIASEK2.jpg">';
 echo 
'<table bgcolor="orange" width="100%" align="center"><tr><td><center>
 <a href="_shimano.php"><img  border=0 src="SHIMANO.gif"></a></center></td></tr>'
;
 echo 
'<tr><td><table align="center"><tr><td>';
 
  
$zapytanie "SELECT rok, nazwa_ANG, model, grupa, jpg1, jpg2, gif1, gif2, jp_gif
    FROM czesci_mtb WHERE id_czesci="
.$id_czesci;       //kod wrazliwy na SQL INJECTION
      //echo $zapytanie."<br>";
     // echo '<td width="140">';
      
if($wynik mysql_query($zapytanie$dbc)){
      
$liczba_wynikow mysql_num_rows($wynik);
        if(
$liczba_wynikow>0)
        {
         while (
$wiersz mysql_fetch_array($wynik)) {
          
$rok $wiersz['rok'];
          
$nazwa_ang $wiersz['nazwa_ANG'];
          
$model $wiersz['model'];
          
$grupa $wiersz['grupa'];
          
$jpg1 $wiersz['jpg1'];
          
$jpg2 $wiersz['jpg2'];
          
$gif1 $wiersz['gif1'];
          
$gif2 $wiersz['gif2'];
          
$jp_gif $wiersz['jp_gif'];
          echo 
'<b>';
          echo 
$rok;
          echo 
'<br>';
          echo 
$model;
          echo 
'<br>';
          echo 
$grupa;
          echo 
'<br>';
          echo 
'</b>';
          if((
$jpg1!=='')&&($jpg1!=='brak'))
          {
          echo 
'<a href="jpg/'.$jpg1.'">JPG1</a>';
          echo 
'<br>';
          }
          if((
$jpg2!=='')&&($jpg2!=='brak'))
          {
          echo 
'<a href="jpg/'.$jpg2.'">JPG2</a>';
          echo 
'<br>';
          }
          if((
$gif1!=='')&&($gif1!=='brak'))
          {
          echo 
'<a href="TM/'.$gif1.'">GIF1</a>';
          echo 
'<br>';
          }
          if((
$gif2!=='')&&($gif2!=='brak'))
          {
          echo 
'<a href="TM/'.$gif2.'">GIF2</a>';
          echo 
'<br>';
          }
          if((
$jp_gif!=='')&&($jp_gif!=='brak'))
          {
          echo 
'<a href="jp_gif/'.$jp_gif.'">JP_GIF</a>';
          echo 
'<br>';
          }
          echo 
'</td></tr></table><br><table><tr><td>';
          
          if(((
$jpg1!=='')&&($jpg1!=='brak'))||(($gif1!=='')&&($gif1!=='brak')))
          {
                      if((
$jpg1!=='')&&($jpg1!=='brak'))
                        {
                        echo 
'<br>przyklad<BR>';
                        echo 
'<img src="jpg/'.$jpg1.'">';
                        }
                        elseif((
$gif1!=='')&&($gif1!=='brak'))
                        {
                        echo 
'<br>przyklad<BR>';
                        echo 
'<img src="TM/'.$gif1.'">';
                        } else { echo 
'brak instrukcji w JPG'; }
          } else { echo 
'brak europejskich instrukcji w JPG i GIF'; }
        }
       } else { echo 
'&nbsp'; }
     }
 echo 
'</td></tr></table></body>';
      
?>

Wystarczy przeczytać pewną ksiażkę, dlatego:Polecam ksiązkę nieżyjącego Marcina Lisa - pt. "Tworzenie bezpiecznych aplikacji internetowych"

UWAGA kody wyszukiwarek, które udostępniłem, nie mają zabezpieczeń antyhackerskich- trzeba najpierw, przeczytać ksiązkę Marcina Lisa, którą podałem wyżej

Przykład logiki stosowanej w wyszukiwarkach na stronę:
<?php

echo "wpisz w polu tekstowym np. pies -kot </br>";
echo 
"kliknij szukaj,a otrzymasz fragment zapytania sql.";

 if(isset(
$_GET['szukaj']))
 {
 
  if(isset(
$_GET['fraza']))
  {
    
$fraza=$_GET['fraza'];
    
$array=explode(" "$fraza);
   echo 
$count=count($array);
  
    
$takzewopisach='wopisach';
    echo 
"<p>".$_GET['fraza']."</p>";
  
$x=0$warunek1 " "$por " ";
  
// echo 'wariant pierwszy<BR>';

   
while ($count $x) {
    if(
$x>0) {
    
//$warunek1 =" ";
      
$por ' AND ';  //OR
     
}
     if((
$takzewopisach)=='wopisach') {
     
     
//echo strpos($array[$x], "-");
     
     
if(strpos($array[$x], "-")!==0)
     {
      echo 
$array[$x]=str_replace("+""",$array[$x]);
      
$warunek1 $warunek1.$por.'( tytuly.tytul_PL LIKE \'%'.$array[$x].'%\'
      OR tytuly.tytul_oryginalny LIKE \'%'
.$array[$x].'%\'
      OR opis LIKE \'%'
.$array[$x].'%\')';
     }
     else
     {
      echo 
$array[$x]=str_replace("-""",$array[$x]);
      
$warunek1.=$warunek.$por.'( tytuly.tytul_PL NOT LIKE \'%'.$array[$x].'%\'
      OR tytuly.tytul_oryginalny NOT LIKE \'%'
.$array[$x].'%\'
      OR opis NOT LIKE \'%'
.$array[$x].'%\')';
     }
     }
     
$x++;
    }
  echo 
"<p><b>";
  echo 
$warunek1;
  echo 
"</b></p>";
?>
<form action="<? echo $_SERVER['PHP_SELF'];?>" method="get">
<input type="text" name="fraza" value="<?php echo $_GET['fraza'];?>">
<input type="submit" name="szukaj" value="szukaj">
</form>
<?
 
} }
 else
 {
?>
 <form action="<? echo $_SERVER['PHP_SELF'];?>" method="get">
<input type="text" name="fraza" value="<?php echo $_GET['fraza'];?>">
<input type="submit" name="szukaj" value="szukaj">
</form>
<?php
 
}
?>
wpisz w polu tekstowym np. pies -kot
kliknij szukaj,a otrzymasz fragment zapytania sql z NOT LIKE.

logika.php

Z pobieralnii pobierz szukarka_przyklady.rar,
aby zobaczyć jak tworzy się proste szukarki na stronę, np. ze stronicowaniem
W pliku szkola_bear_Andrzej Szczepan.rar -przyklad szukarki w praktyce
Zamiast korzystać z wyszukiwania pełnotekstowego ze słowem MATCH
można stworzyć własną logikę w jak powyższym przykładzie, gdy mamy mało danych w bazie


Oto kod poufnej wiadomosci - przykład jeszcze niedopracowany <?php

  
include('mysql_connect.php');

  echo 
"<br>Napisz poufną wiadomość...Nie zapomnij podać adresu e-mail";
  echo 
"<br>Jeśli chcesz mnie spotkać - ustalmy hasło i odzew";
  echo 
"<br>W Ameryce tak ludzie się poznają z uwagi na podobieństwo osób";
  echo 
"<br>Np. hasło: Niebieski gołąb, leci do białego...";
  echo 
"<br>Odzew czyli odpowiedź: Po prostu znam się na gołębiach!";
  echo 
"<br>Można także stosować znak wodny na własnym zdjęciu";
  echo 
"<br>z własnym adresem strony internetowej!";
  echo
"<br>z adresem do własnej opłacanej strony internetowej";
  echo 
'<form action="poufna_wiadomosc.php" method="post">';
  echo 
'<textarea name="wiadomosc" cols="80" rows="10"></textarea>';
  echo 
'<br><input type="submit" value="Wyślij wiadomosc">';
  echo 
'</form>';
  if(isset(
$_POST['wiadomosc'])) {

  
$wiadomosc=$_POST['wiadomosc'];
  
$klucz 'haslo';  //ustanów swoje
  
srand();
  
$modul mcrypt_module_open(MCRYPT_RIJNDAEL_256,'''cbc','');

  
$iv mcrypt_create_iv(mcrypt_enc_get_iv_size($modul), MCRYPT_RAND);

  
mcrypt_generic_init($modul$klucz$iv);
  
$encrypted mcrypt_generic($modul$wiadomosc);
  
  
$poufna_wiadomosc =  base64_encode($encrypted);
  echo 
"<b>To jest tekst tajny wiadomości:";
  echo 
"<p> $encrypted </p>";
  
  
  
mcrypt_generic_deinit($modul);
  
mcrypt_generic_init($modul$klucz$iv);
  
$decrypted mdecrypt_generic($modulbase64_decode($poufna_wiadomosc));

  echo 
"<p><b>Tekst jawny po odszyfrowaniu: </b></p>";
  echo 
"$decrypted";
  
  
mcrypt_generic_deinit($modul);
  
mcrypt_module_close($modul);
 
 
 
  
$wstawka="INSERT INTO poufne_wiadomosci(id, wiadomosc, iv, data_dodania) VALUES(0, '$poufna_wiadomosc', '$iv', NOW());";
  
$wynik=mysql_query($wstawka);

  } else { 
"wiadomosc nie została przesłana... spróbuj jeszcze raz";}

?>
plik odszyfrujący: <?php

  
include('mysql_connect.php');
  echo 
"<table><tr>";
  
$zapytanie 'SELECT * FROM poufne_wiadomosci ORDER BY data_dodania DESC;';
  
$wynik=mysql_query($zapytanie);
  if(
$wynik<>0)
  {

  
//srand();

  //$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($modul), MCRYPT_RAND);
  

  
   
while($wiersz=mysql_fetch_array($wynikMYSQL_ASSOC))
   {
    
$klucz 'haslo';  //ustanów swoje.
    //echo '<p><font color="red">'.$wiersz['iv'].'</font></p>';
    
    
$modul = @mcrypt_module_open(MCRYPT_RIJNDAEL_256,'''cbc','');
    @
mcrypt_generic_deinit($modul);
    @
mcrypt_generic_init($modul$klucz$wiersz['iv']);
    
$poufna_wiadomosc=$wiersz['wiadomosc'];
    
$decrypted = @mdecrypt_generic($modulbase64_decode($poufna_wiadomosc));

    @
mcrypt_generic_deinit($modul);
    @
mcrypt_module_close($modul);
    echo 
"<tr><td>".$wiersz['id']."</td><td>".$decrypted."</td><td>".$wiersz['data_dodania']."</td></tr>";
   }

  }
  

  echo 
"</tr></table>";
?>
oto kod SQL:                           -- phpMyAdmin SQL Dump
-- version 2.11.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 30 Gru 2018, 03:55
-- Wersja serwera: 5.0.45
-- Wersja PHP: 5.2.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Baza danych: `poufna_wiadomosc`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `poufne_wiadomosci`
--

CREATE TABLE `poufne_wiadomosci` (
  `id` int(11) NOT NULL auto_increment,
  `wiadomosc` text NOT NULL,
  `iv` text NOT NULL,
  `data_dodania` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=1 ;

--
-- Zrzut danych tabeli `poufne_wiadomosci`
--


Oto kod skryptu do pobierania plików w php:

<?php if(!empty($_GET['plik'])){
     
$option intval($_GET['plik']); // pobranie z adresu nr pliku
     
$filePath=dirname(__FILE__)."/pdf/";
    
/* $filePath = "http://127.0.0.1/pobieranie/mp3/"; */
    // adres katalogu z plikami
     
$fileName[1] = "WIKTOR CHOJNACKI - Układy nadawcze i odbiorcze dla krótkofalowców.pdf"// nazwa pliku nr 1 np. program.exe
     
$fileName[2] = "Systemy cyfrowego odbioru satelitarnego.pdf";
     
$fileName[3] = "CD i DVD w teorii i praktyce - Mirosław Sokół.pdf";
     
$fileName[4] = "710_28_a.pdf";
     
$fileName[5] = "710_30_b.pdf";
     
$fileName[6] = "711_05_2.pdf";
     
$fileName[7] = "Car_IV_1.pdf";
     
//$fileName[8] = ".pdf";

     
$handle fopen($filePath.$fileName[$option],"rb");
     
$size filesize($filePath.$fileName[$option]);
     
$contents fread($handle$size);

     
fclose($handle);

     
header("Content-Type: application/octet-stream");
     
header("Content-Length: $size;");
     
header("Content-Disposition: attachment; filename=$fileName[$option]");

     echo 
$contents;
}
else{
     echo 
"Nie wybrano pliku.";   //dirname(__FILE__);
}
?>
Pierwsza linijka sprawdza czy, dla zmiennej plik w adresie strony cokolwiek podano,
w drugiej linijce przypisana jest wartość zmiennej po przekształceniu przez funkcję typu liczbowego int,
jeśli podano tekst zostanie zwrócona negatywna wartość przez funkcję inval();
do zmiennej $filepath przypisuję scieżkę do folderu /pdf znajdującego się tam, gdzie skrypt nasz php
jeśli pliki mamy tam gdzie skrypt to zamiast pisać /pdf/
to wystarczy napisać jeden ukośnik $filePath=dirname(__FILE__)."/";
można podać adres tak jak w zakomentowanym tekscie ale z uwagi na przenoszenie z windowsa na linux
i z hostu lokalnego localhost (o adresie 127.0.0.1) warto stosować stałą __FILE__
tworzymy tablicę z plikami pdf ale numerująć ją nie od zera, a od jedynki zero niech oznacza fałsz
jesłi ktoś podałby coś w rodzaju ../../../passwords.php lub ../../mysql_connect.php
aby dostać się do haseł witryny, zapobiegniemy temu wymuszając, stosowanie liczb, a nie ciągów znakowych,
tak dla bezpieczeńśtwa naszej witryny
po tablicy pora na zmienną $handle czyli uchwyt do pliku, i funkcję otwierająca plik w trybie do odczytu
r i binarnym czyli rb podając wcześniej scieżkę i nazwę pliku w formie zmiennej tablicowej z numerem $options
określamy rozmiar pliku do zmiennej $size
odczytujemy plik przypisując go do pamięci czyli zmiennej $conntents dzięki funkcji fread z argumentami
uchwyt i rozmiar ($handle i $size)
możemy zwolnić już uchwyt z pamięci dzięki funkcji zamykającej fclose() z argumentem $handle
teraz postaraj się zauważyć, czy nie zrobiłeś jakiejś spacji przed znakami jeśli przekażemy coś
do przeglądarki w postaci html-a lub zwykłego tekstu lub wywołamy wczęsniej funkcję echo()
Teraz dopiero podajemy definicję nagłówków w postaci trzech linijek które zostaną wysłane do przeglądarki
informujące przeglądarkę, że chcemy pobrać plik, zanim zacznie się pobieranie pliku
Podajemy tam rozmiar w postaci zmiennych i plik który na interesuje w postaci zmiennej tablicowej $fileName
z numerem czyli opcją ($option)
dopiero teraz wywołujemy funkcję echo która przesyła plik do przeglądarkie z pamięci czyli zmiennej $conntents
konczymy pierwszy warunek i podajemy napis na ekran jeśli warunek nie zostanie spełniony dotyczący
numeru dla zmiennej plik np. pobierz_pdf.php?plik=1

Skrypt PHP i opis opracował: Andrzej Szczepan Strona autora skryptu

Małe jako łącze i duże zdjęcie w nowym oknie oto dwa skrypty php i javascript:

<?php 
$option
="default_charset";
ini_set($option"ISO-8859-2");

// scieżki do oryginału i miniatury 
$duze "foto/580236_8ZICQVWBMDGX3Q4T2H7MKH13R7UT6F_linvincibileninjakamui_H190530_L.jpg";
$male "foto/sm_580236_8ZICQVWBMDGX3Q4T2H7MKH13R7UT6F_linvincibileninjakamui_H190530_L.jpg";

// pobieram rozmiar oryginału 
$roz getimagesize($duze); 

// wy?wietlam miniaturę ze zdarzeniem onclick 
// którym wywołuję okno z oryginalnym zdjęciem 
echo "<img src=\"$male\" alt=\"Powiększ zdjęcie\" title=\"Powiększ zdjęcie\" style=\"cursor: pointer;\" onclick=\"window.open('podglad.php?z=$duze','podglad',
'width=$roz[0],height=$roz[1],left=750,top=0')\" />"
;

?>

W kodzie jawascript umieszczam linijkę z plikiem podglad.php i przypisaną w tym adresie zmienną z
do której poprzez = przypisuję nazwę dużego pliku przy pomocy zmiennej $duze bez średnika na koncu.

rozmiary zdjecia dla otwarcia okna o odpowiednich wymiarach uzyskuję z funkcji php getimagesize($duze);
funkcja zwraca tablicę dwumiarową dla wymiarów x i y;
nie pamiętam ale trzeba chyba mieć odkomentowaną bibliotegę graficzną gd2 w pliku konfiguracyjnym php.ini
na stronie webowej administrator włączył taką biblioteke więc działa wszystko.

A oto drugi skrypt wyskakujacego okienka o nazwie podglad.php:

<?php
$option
="default_charset";
ini_set($option"ISO-8859-2");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /> 
<title>Podgląd</title>
</head> 
<body marginheight="0" marginwidth="0" style="margin: 0;"> 
<?php 

// pobieram dane oryginału 
$z $_GET['z']; 

if(
$z) { 
    
// wyświetlam oryginał
    
echo "<a href=\"javascript:window.close();\"><img
 src=\"$z\" border=\"0\" title=\"Zamknij okno\" /></a>"



?> 
</body> 
</html>

A oto działanie skryptów obrazek Hittori Kamui bohatera serialu i komiksowej serii Ninja Kamui:

Powiększ zdjęcie

należy tylko zmienić wartości zmiennych left i top dla własnej strony w głównym skrypcie nie php, a javascript
w funkcji open().
w tym przykładzie left=450 a nie 750, a top=0

Skrypt PHP i opis opracował: Andrzej Szczepan Strona autora skryptu

licznik na stronę (z online do 5 minut przebywania na stronie)


nie jest to mój skrypt - został opracowany przez internautów, mimo to rozumiem jak działa.

<?php
// Konfiguracja obsługi błędów.
ini_set ('display_errors'1);
error_reporting (E_ALL & ~E_NOTICE);
error_reporting(E_ALL E_WARNING);

//session_start(); ?>  <!-- Musi znajdować się na samym początku pliku! -->
<?php

require_once ('bd.php'); //Wczytywanie pliku polaczenie.php

mysqli_query($db"SET NAMES 'utf-8'");  //Kodowanie bazy danych
$date date('Y-m-d');    //Data Rok-Miesiąc-Dzień
$time date('H:i:s');    //Czas Godzina:Minuta:Sekunda
$ip $_SERVER['REMOTE_ADDR']; //Pobiera IP odwiedzającego
$link mysqli_query($db"SELECT ip FROM online WHERE ip='$ip' and data='$date'"); //Zapytanie.
$ile mysqli_num_rows($link); //Pobiera ilość wyników
if ($ile == 0) {   //Jeżeli ilość wyników = 0
    
$asd mysqli_query($db"INSERT INTO online SET ip='$ip', data='$date', godzina='" date('H') . "', minuta='" date('i') . "'"); //Dodaje do tabeli dane

    
if (!$asd) {  //Jeżeli nie udało się dodać naszych danych
        
echo('Błąd bazy danych. 00<br />'); //Pojawia się komunikat o błędzie
    
}
} else { 
//Jeżeli ilość wyników <> 0
    
$asd mysqli_query($db"UPDATE online SET data='$date', godzina='" date('H') . "', minuta='" date('i') . "' WHERE ip='$ip' and data='$date'"); //Odświeża dane użytkownika w tabeli

    
if (!$asd) { //Jeżeli nie udało się odświerzyć naszych danych
        
echo('Blad bazy danych. 11<br />'); //Pojawia się komunikat o błędzie
    
}
}

$wczoraj = (int) date('d'); //Pobiera dzień
$wczoraj $wczoraj 1;  //odejmuje 1 dzień
$miesiac = (int) date('m'); //Pobiera miesiąc
if ($wczoraj == 0) { //Jeżeli wczoraj = 0
    
if (date('m') == || date('m') == || date('m') == || date('m') == || date('m') == 11) {
        
$wczoraj "31";
        
$miesiac -= "1";
    }
    if (
date('m') == 3) {
        
$wczoraj "28";
        
$miesiac -= "1";
    }
    if (
date('m') == || date('m') == || date('m') == 10 || date('m') == 12) {
        
$wczoraj "30";
        
$miesiac -= "1";
    }
    if (
date('m') == 2) {
        
$wczoraj "31";
        
$miesiac -= "12";
    }
}
if (
$wczoraj <= 9) { //Jeżeli wczoraj jest mniejsze lub równe 9
    
$wczoraj "0" $wczoraj;
}
if (
$miesiac <= 9) { //Jeżeli miesiac jest mniejsze lub równe 9
    
$miesiac "0" $miesiac;
}
$wczoraj date('Y') . "-" $miesiac "-" $wczoraj;
$all=0;
$time date('H'); //Pobiera godzine
$time2 date('i') - 5//Pobiera minuty odejmując 5
$link mysqli_query($db"SELECT * FROM online"); //Pobiera dane z tabeli 'online'
$online 0//ustawia zmienna na = 0
$dzis 0//ustawia zmienna na = 0
$wczorajlicz 0//ustawia zmienna na = 0
while ($wynik mysqli_fetch_array($link)) { //Pętla
    
if ($wynik['data'] == $date) { //jeżeli wynik równa się z dzisiejszą datą
        
if ($wynik['godzina'] >= $time) { //
            
if ($wynik['minuta'] >= 5) { //jeżeli wynik minut jest większy lub równy od 5
                
$minuta $wynik['minuta'] - 5;
            } else {
                
$minuta $wynik['minuta'];
            }
            if (
$minuta >= $time2) {
                
$online++; //Dodaje osobę online
            
}
        }
        
$dzis++; //Dodaje osobę odwiedzającą do dziś
    
}
    if (
$wynik['data'] == $wczoraj) {
        
$wczorajlicz++; //dodaje osobę odwiedzającą do wczoraj
    
}
    
$all++; //Dodaje osobę do wszystkich
}
echo(
'Osób Online: ' $online '<br />'); //Wyświetla tekst
echo('Dzisiaj było: ' $dzis '<br />'); //Wyświetla tekst
echo('Wczoraj było: ' $wczorajlicz '<br />'); //Wyświetla tekst
echo('Wszystkich razem było: ' $all '<br />'); //Wyświetla tekst
?>

A oto zastosowanie skryptu licznik.php

<center><b><font color="brown"><?php include("licznik.php"); ?></b></font></center><br>

Wykonananie skryptu widoczne jest na mojej głównej stronie tutaj

w pliku bd.php powinny znaleść się stałe z nazwą bazy, localhost, nazwą uzytkownika i hasłem do bazy
oraz linijka $db = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbdatabase);
do tego skryptu należy utworzyć bazę danych np o nazwie licznik z tabelą online odpowiednimi polami
id INT, ip TEXT, data DATETIME , godzina INT, minuta INT
licznik rozrużnia użytkowników po numerze ip. Do kolorowania składni używam funkcji wbudowanych w php.

Jak znajdę czas to być może przedstawię mój skrypt kategorii podobnych do tych w allegro
i drugi skrypt wyszukiwania kategorii, po podaniu nazwy szukanego przedmiotu.
oba skrpyty mają ponad tysiąc linijek, oparte są o bazę danych.Nad skryptami tymi pracowałem miesiącami
w wolne dni tygodnia.


Jako zadanie podaję zapoznanie się z ciekawą galerią przesuwną w javascript z nie istniejącej fan strony
na temat gry Vietcong.
Pobierz archiwum z galerią przesuwną w js
żeby zobaczyć efekt należy klikać w numerki 1|2|3|4 na stronie Vietcong Sniper-division
w pliku shots.htm znajduje się skrypt javascript obsługujący cieniowanie i przesuwanie
otwieranie okna jest w osobnym pliku o nazwie vietcong.js w folderze top. a pliki obrazków w shots_pliki