git-svn-id: https://svn.pioder.pl/sg-svn@13 3ed2631f-fe0d-47e0-9194-a46bc0f18ee8master
@ -1,7 +1,7 @@ | |||
<?php | |||
define('PERPAGE', 12); | |||
define('DB_HOST', ''); | |||
define('DB_NAME', ''); | |||
define('DB_USER', ''); | |||
define('DB_PASS', ''); | |||
?> | |||
<?php | |||
define('PERPAGE', 12); | |||
define('DB_HOST', 'localhost'); | |||
define('DB_NAME', 'galeria'); | |||
define('DB_USER', 'root'); | |||
define('DB_PASS', ''); | |||
?> |
@ -1,5 +1,78 @@ | |||
<?php | |||
function showError($message) { | |||
die($message); | |||
} | |||
?> | |||
<?php | |||
/** | |||
* @package Galeria Suczawa 2009 | |||
* @file functions.php | |||
* @version $Id$ | |||
* @author PioDer <pioder@wp.pl> | |||
* @link http://suczawa.ath.cx/ | |||
**/ | |||
#wyświetl błąd | |||
function blad($msg) | |||
{ | |||
die(' | |||
<h1>Blad Galerii Zdjec Suczawa 2009!</h1> | |||
<span style="color: red; font-weight: bold; font-size: 12pt">'.$msg.'</span>'); | |||
} | |||
function NaglowekXHTML() | |||
{ | |||
$xhtml = preg_match('/application\/xhtml\+xml(?![+a-z])(;q=(0\.\d{1,3}|[01]))?/i', | |||
$_SERVER['HTTP_ACCEPT'], $xhtml) && (isset($xhtml[2])?$xhtml[2]:1) > 0 || | |||
strpos($_SERVER["HTTP_USER_AGENT"], "W3C_Validator")!==false || | |||
strpos($_SERVER["HTTP_USER_AGENT"], "WebKit")!==false; | |||
header('Content-Type: '.($xhtml?'application/xhtml+x':'text/ht').'ml; charset="utf-8"'); #IE doesn't support application/xhtml+xml - workaround | |||
echo '<?xml version="1.0" encoding="utf-8"?>'; | |||
} | |||
function GenerujListeStron() | |||
{ | |||
global $cnt; | |||
global $page; | |||
$content = ''; | |||
if ($page>1) | |||
{ | |||
$content .= '<a href="?page=1" title="Pierwsza strona">«</a>'; | |||
$content .= ' <a href="?page='.($page-1).'" title="Poprzednia strona"><</a> '; | |||
} | |||
#wygeneruj strony | |||
for ($i=1;$i<=$cnt;$i++) | |||
{ | |||
if ($i==$page) | |||
{ | |||
if ($i == $cnt) | |||
{ | |||
$content .= '<span style="text-decoration: underline">'.$i.'</span>'; | |||
} | |||
else | |||
{ | |||
$content .= '<span style="text-decoration: underline">'.$i.'</span>'.' | '; | |||
} | |||
} | |||
else | |||
{ | |||
if ($i == $cnt) | |||
{ | |||
$content .= '<a href="?page='.$i.'">'.$i.'</a> '; | |||
} | |||
else | |||
{ | |||
$content .= '<a href="?page='.$i.'">'.$i.'</a> | '; | |||
} | |||
} | |||
} | |||
#dodaj linka "+1 strona" oraz do ostatniej | |||
if ($page<$cnt) | |||
{ | |||
$content .= '<a href="?page='.($page+1).'" title="Następna strona">></a>'; | |||
$content .= ' <a href="?page='.$cnt.'" title="Ostatnia strona">»</a>'; | |||
} | |||
#dodaj linka do ostatniej strony | |||
echo $content; | |||
} | |||
?> |
@ -1,75 +1,58 @@ | |||
<?php | |||
require_once('init.php'); #init stuff | |||
$page=(isset($_GET['page']))?intval($_GET['page']):1; #check which page should be loaded | |||
$xhtml = preg_match('/application\/xhtml\+xml(?![+a-z])(;q=(0\.\d{1,3}|[01]))?/i', | |||
$_SERVER['HTTP_ACCEPT'], $xhtml) && (isset($xhtml[2])?$xhtml[2]:1) > 0 || | |||
strpos($_SERVER["HTTP_USER_AGENT"], "W3C_Validator")!==false || | |||
strpos($_SERVER["HTTP_USER_AGENT"], "WebKit")!==false; | |||
header('Content-Type: '.($xhtml?'application/xhtml+x':'text/ht').'ml; charset="utf-8"'); #IE doesn't support application/xhtml+xml - workaround | |||
echo '<?xml version="1.0" encoding="utf-8"?>'; | |||
?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> | |||
<head> | |||
<title>Galeria zdjęć</title> | |||
<link type="text/css" href="style.css" rel="stylesheet" /> | |||
<script type="text/javascript" src="script.js"></script> | |||
</head> | |||
<body> | |||
<div id="page"> | |||
<img src="images/logo.png" width="800px" alt="Logo strony" /> | |||
<div id="content"> | |||
<div id="images"> | |||
<?php | |||
if (!$result = $DB->query('SELECT * FROM photos LIMIT '.(($page-1)*PERPAGE).' , '.PERPAGE)) { | |||
showError('MySQL error'); | |||
} | |||
while($row = $result->fetch_assoc() ){ | |||
?> | |||
<div class="image_outer"> | |||
<a target="blank" href="display.php?id=<?=$row['id']?>"> | |||
<img class="image" height="100px" alt="Zdjęcie: <?=$row['photo_name']?>" src="<?=$row['thumb_name']?>" id="image_<?=$row['id']?>" /> | |||
</a> | |||
</div> | |||
<? | |||
} | |||
?> | |||
</div> | |||
<? | |||
if (!$result = $DB->query('SELECT COUNT(id) AS count FROM photos')) { | |||
showError('MySQL error'); | |||
/** | |||
* @package Galeria Suczawa 2009 | |||
* @file gallery.php | |||
* @version $Id$ | |||
**/ | |||
$page = (isset($_GET['page'])) ? intval($_GET['page']) : 0; | |||
require_once('./init.php'); #init stuff | |||
NaglowekXHTML(); | |||
?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> | |||
<head> | |||
<title>Galeria Zdjęć</title> | |||
<link type="text/css" href="style.css" rel="stylesheet" /> | |||
<script type="text/javascript" src="script.js"></script> | |||
</head> | |||
<body> | |||
<div id="page"> | |||
<img src="images/logo.png" width="800px" alt="Logo strony" /> | |||
<div id="content"> | |||
<div id="images"> | |||
<?php | |||
$sql = "SELECT * FROM `photos` $limit"; | |||
if (!$result = $DB->query($sql)) | |||
{ | |||
blad('Nie mozna pobrac zdjec uzytkownikow!'); | |||
} | |||
$row = $result->fetch_assoc(); | |||
$count = $row['count']; | |||
$pcount=ceil($result[0]/PERPAGE); | |||
?> | |||
<div id="pages">Strony: | |||
<?if($page==1) | |||
echo'<< < | '; | |||
else | |||
echo '<a href="gallery.php?page=1"><<</a> <a href="gallery.php?page='.($page-1).'"><</a> | '; | |||
for($i=1; $i<$page; $i++) { | |||
echo '<a href="gallery.php?page='.$i.'">'.$i.'</a> | '; | |||
} | |||
echo $page.' | '; | |||
for($i=$page+1; $i<=$pcount; $i++) { | |||
echo '<a href="gallery.php?page='.$i.'">'.$i.'</a> | '; | |||
} | |||
if($page==$pcount) | |||
echo '> >>'; | |||
else | |||
echo '<a href="gallery.php?page='.($page+1).'">></a> <a href="gallery.php?page='.$pcount.'">>></a>'; | |||
?> | |||
</div> | |||
</div> | |||
<div id="footer"> | |||
<a id="copyright">Copyright © 2009 ...</a><br /> | |||
<div id="links"> | |||
<a href="index.php">Strona główna</a> | <a href="gallery.php">Fotogaleria</a> | <a href="download.php">Download</a> | <a href="http://suczawa.ath.cx">Forum</a> | |||
</div> | |||
</div> | |||
</div> | |||
</body> | |||
</html> | |||
while($row = $result->fetch_assoc() ) | |||
{ | |||
?> | |||
<div class="image_outer"> | |||
<a target="blank" href="display.php?id=<?=$row['id']?>"> | |||
<img class="image" height="100px" alt="Zdj___cie: <?= $row['photo_name']; ?>" src="images/upload/<?= $row['thumb_name']; ?>" id="image_<?=$row['id']?>" /> | |||
</a> | |||
</div> | |||
<? | |||
} | |||
?> | |||
</div> | |||
<div id="pages">Strony: | |||
<? | |||
GenerujListeStron(); | |||
?> | |||
</div> | |||
</div> | |||
<div id="footer"> | |||
<a id="copyright">Copyright © 2009 ...</a><br /> | |||
<div id="links"> | |||
<a href="index.php">Strona Główna</a> | <a href="gallery.php">Fotogaleria</a> | <a href="download.php">Download</a> | <a href="http://suczawa.ath.cx">Forum</a> | |||
</div> | |||
</div> | |||
</div> | |||
</body> | |||
</html> |
@ -1,34 +1,31 @@ | |||
<?php | |||
$xhtml = preg_match('/application\/xhtml\+xml(?![+a-z])(;q=(0\.\d{1,3}|[01]))?/i', | |||
$_SERVER['HTTP_ACCEPT'], $xhtml) && (isset($xhtml[2])?$xhtml[2]:1) > 0 || | |||
strpos($_SERVER["HTTP_USER_AGENT"], "W3C_Validator")!==false || | |||
strpos($_SERVER["HTTP_USER_AGENT"], "WebKit")!==false; | |||
header('Content-Type: '.($xhtml?'application/xhtml+x':'text/ht').'ml; charset="utf-8"'); #IE doesn't support application/xhtml+xml - workaround | |||
echo '<?xml version="1.0" encoding="utf-8"?>'; | |||
?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> | |||
<head> | |||
<title>Strona główna</title> | |||
<link type="text/css" href="style.css" rel="stylesheet" /> | |||
</head> | |||
<body> | |||
<div id="page"> | |||
<img src="images/logo.png" width="800px" alt="Logo strony" /> | |||
<div id="content"> | |||
<div id="dlinks"> | |||
<a href="gallery.php"><img src="images/galeria.png" alt="Galeria zdjęć" /></a> <br/> | |||
<a href="download.php"><img src="images/download.png" alt="Download" /></a> <br/> | |||
<a href="http://suczawa.ath.cx"><img src="images/forum.png" alt="Forum" /></a> | |||
</div> | |||
</div> | |||
<div id="footer"> | |||
<a id="copyright">Copyright © 2009 ...</a><br /> | |||
<div id="links"> | |||
<a href="index.php">Strona główna</a> | <a href="gallery.php">Fotogaleria</a> | <a href="download.php">Download</a> | <a href="http://suczawa.ath.cx">Forum</a> | |||
</div> | |||
</div> | |||
</div> | |||
</body> | |||
</html> | |||
<?php | |||
require_once('./functions.php'); | |||
NaglowekXHTML(); | |||
?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> | |||
<head> | |||
<title>Strona Główna</title> | |||
<link type="text/css" href="style.css" rel="stylesheet" /> | |||
</head> | |||
<body> | |||
<div id="page"> | |||
<img src="images/logo.png" width="800px" alt="Logo strony" /> | |||
<div id="content"> | |||
<div id="dlinks"> | |||
<a href="gallery.php"><img src="images/galeria.png" alt="Galeria Zdjęć" /></a> <br/> | |||
<a href="download.php"><img src="images/download.png" alt="Download" /></a> <br/> | |||
<a href="http://suczawa.ath.cx"><img src="images/forum.png" alt="Forum" /></a> | |||
</div> | |||
</div> | |||
<div id="footer"> | |||
<a id="copyright">Copyright © 2009 ...</a><br /> | |||
<div id="links"> | |||
<a href="index.php">Strona główna</a> | <a href="gallery.php">Fotogaleria</a> | <a href="download.php">Download</a> | <a href="http://suczawa.ath.cx">Forum</a> | |||
</div> | |||
</div> | |||
</div> | |||
</body> | |||
</html> |
@ -1,12 +1,78 @@ | |||
<? | |||
require_once('config.php'); | |||
require_once('functions.php'); | |||
<?php | |||
/** | |||
* @package Galeria Suczawa 2009 | |||
* @file init.php | |||
* @version $Id$ | |||
**/ | |||
#dołącz plik konfiguracyjny oraz funkcje | |||
require_once('./config.php'); | |||
require_once('./functions.php'); | |||
#sprawdź, czy jest wyłączone register globals oraz magic quotes? | |||
if (ini_get('register_globals') == 1) | |||
{ | |||
ini_set('register_globals', '0'); | |||
if (ini_get('register_globals') == 1) | |||
{ | |||
blad('Could not disable register_globals.'); | |||
} | |||
} | |||
if (get_magic_quotes_gpc()) | |||
{ | |||
blad('Prosze wylaczyc magic_quotes_gpc w php.ini!'); | |||
} | |||
$DB = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); #connect with the database | |||
if ($DB->connect_error) { #check if there were any errors connecting | |||
showError('Could not connect do database server ('.$DB->connect_errno.'): '.$DB->connect_error); | |||
if ($DB->connect_error) | |||
{ #check if there were any errors connecting | |||
blad('Could not connect do database server ('.$DB->connect_errno.'): '.$DB->connect_error); | |||
} | |||
if (!$DB->query("SET NAMES 'utf8'")) #użyj utf-8 | |||
{ | |||
blad('Could not set character to UTF-8'); | |||
} | |||
#pobierz liczbę zdjęć w galerii | |||
$sql = "SELECT COUNT(`id`) AS `count` FROM `photos`"; | |||
if (!$result = $DB->query($sql)) | |||
{ | |||
blad('Nie mozna odczytac liczby zdjec!'); | |||
} | |||
$row = $result->fetch_assoc(); | |||
$count = $row['count']; | |||
$result->free; //zwolnij pamięć | |||
// | |||
//wygeneruj strone | |||
// | |||
if (isset($_GET['page'])&&($_GET['page']!=1)) | |||
{ | |||
if (!is_numeric($_GET['page'])) | |||
{ | |||
die('Hacking attempt'); | |||
} | |||
$value = ($_GET['page']-1)*PERPAGE; | |||
$limit = 'LIMIT '.$value . ', '.PERPAGE; | |||
$page = $_GET['page']; | |||
} | |||
else | |||
{ | |||
$limit = 'LIMIT 0, '.PERPAGE; | |||
$page=1; | |||
} | |||
$cnt = ceil($count / PERPAGE); | |||
if(isset($_GET['page']) && ($_GET['page']>$cnt)) | |||
{ | |||
blad('Podana strona nie istnieje!'); | |||
} | |||
if (!$DB->query("SET NAMES 'utf8'")) { #use utf-8 | |||
showError('Could not set character to UTF-8'); | |||
} | |||
?> | |||
// | |||
//koniec generowania stron | |||
// | |||
?> |
@ -1,103 +1,104 @@ | |||
var ajax, previd, nextid; | |||
function init() { | |||
initAjax(); | |||
if (!document.importNode) { | |||
document.importNode = function(node, allChildren) { | |||
switch (node.nodeType) { | |||
case 1: | |||
var newNode = document.createElement(node.nodeName); | |||
if (allChildren && node.childNodes && node.childNodes.length > 0) { | |||
il=node.childNodes.length; | |||
for (var i = 0; i < il; i++) | |||
newNode.appendChild(document.importNode(node.childNodes[i], allChildren)); | |||
} | |||
return newNode; | |||
break; | |||
default: | |||
return document.createTextNode(node.nodeValue); | |||
break; | |||
} | |||
}; | |||
} | |||
nextid=(document.getElementById("next_image")!=null)?document.getElementById("next_image").alt:-1; | |||
previd=(document.getElementById("prev_image")!=null)?document.getElementById("prev_image").alt:-1; | |||
} | |||
function initAjax() { | |||
try { | |||
if (window.XMLHttpRequest) { | |||
ajax = new XMLHttpRequest(); | |||
ajax.overrideMimeType('text/xml'); | |||
} | |||
else if (window.ActiveXObject) | |||
ajax = new ActiveXObject('Microsoft.XMLHTTP'); | |||
else throw 'AJAX Error'; | |||
} | |||
catch (e) { | |||
return false; | |||
} | |||
if (!ajax) { | |||
alert('AJAX Error'); | |||
return false; | |||
} | |||
return true; | |||
} | |||
function response() { | |||
if (ajax.readyState != 4 || ajax.status != 200) | |||
return; | |||
var xml = ajax.responseXML; | |||
document.getElementById("curr_image").parentNode.href=document.getElementById("curr_image").src=xml.getElementsByTagName("current")[0].getAttribute("src"); | |||
document.getElementById("author").firstChild.nodeValue=xml.getElementsByTagName("author")[0].firstChild.nodeValue; | |||
desc=document.getElementById("description"); | |||
while(desc.hasChildNodes()) desc.removeChild(desc.firstChild); | |||
children=document.importNode(xml.getElementsByTagName("desc")[0], true).childNodes; | |||
for(i=0; i<children.length; i++) { | |||
desc.appendChild(children[i]); | |||
} | |||
document.getElementById("current").src=xml.getElementsByTagName("current")[0].getAttribute("src"); | |||
if(xml.getElementsByTagName("next").length>0) { | |||
document.getElementById("next_image").src=xml.getElementsByTagName("next")[0].getAttribute("thumb"); | |||
nextid=xml.getElementsByTagName("next")[0].getAttribute("id"); | |||
document.getElementById("next_image").alt=nextid; | |||
document.getElementById("next").style.display="block"; | |||
} | |||
else { | |||
document.getElementById("next").style.display="none"; | |||
nextid=-1; | |||
} | |||
if(xml.getElementsByTagName("prev").length>0) { | |||
document.getElementById("prev_image").src=xml.getElementsByTagName("prev")[0].getAttribute("thumb"); | |||
previd=xml.getElementsByTagName("prev")[0].getAttribute("id"); | |||
document.getElementById("prev_image").alt=previd; | |||
document.getElementById("prev").style.display="block"; | |||
} | |||
else { | |||
document.getElementById("prev").style.display="none"; | |||
previd=-1; | |||
} | |||
} | |||
function previewImage(el) { | |||
if(el==-1) return 0; | |||
ajax.onreadystatechange = response; | |||
ajax.open('GET', path+ '/ask.php?id=' + el, true); | |||
ajax.send(null); | |||
} | |||
function prev() { | |||
previewImage(previd); | |||
} | |||
function next() { | |||
previewImage(nextid); | |||
} | |||
var ajax, previd, nextid; | |||
function init() { | |||
initAjax(); | |||
if (!document.importNode) { | |||
document.importNode = function(node, allChildren) { | |||
switch (node.nodeType) { | |||
case 1: | |||
var newNode = document.createElement(node.nodeName); | |||
if (allChildren && node.childNodes && node.childNodes.length > 0) { | |||
il=node.childNodes.length; | |||
for (var i = 0; i < il; i++) | |||
newNode.appendChild(document.importNode(node.childNodes[i], allChildren)); | |||
} | |||
return newNode; | |||
break; | |||
default: | |||
return document.createTextNode(node.nodeValue); | |||
break; | |||
} | |||
}; | |||
} | |||
nextid=(document.getElementById("next_image")!=null)?document.getElementById("next_image").alt:-1; | |||
previd=(document.getElementById("prev_image")!=null)?document.getElementById("prev_image").alt:-1; | |||
} | |||
function initAjax() { | |||
try { | |||
if (window.XMLHttpRequest) { | |||
ajax = new XMLHttpRequest(); | |||
ajax.overrideMimeType('text/xml'); | |||
} | |||
else if (window.ActiveXObject) | |||
ajax = new ActiveXObject('Microsoft.XMLHTTP'); | |||
else throw 'AJAX Error'; | |||
} | |||
catch (e) { | |||
return false; | |||
} | |||
if (!ajax) { | |||
alert('AJAX Error'); | |||
return false; | |||
} | |||
return true; | |||
} | |||
function response() { | |||
if (ajax.readyState != 4 || ajax.status != 200) | |||
return; | |||
var xml = ajax.responseXML; | |||
document.getElementById("curr_image").parentNode.href=document.getElementById("curr_image").src='images/upload/'+xml.getElementsByTagName("current")[0].getAttribute("src"); | |||
document.title = 'Podgląd zdjęcia nr ' + xml.getElementsByTagName("current")[0].getAttribute("id"); | |||
document.getElementById("author").firstChild.nodeValue=xml.getElementsByTagName("author")[0].firstChild.nodeValue; | |||
desc=document.getElementById("description"); | |||
while(desc.hasChildNodes()) desc.removeChild(desc.firstChild); | |||
children=document.importNode(xml.getElementsByTagName("desc")[0], true).childNodes; | |||
for(i=0; i<children.length; i++) { | |||
desc.appendChild(children[i]); | |||
} | |||
document.getElementById("current").src=xml.getElementsByTagName("current")[0].getAttribute("src"); | |||
if(xml.getElementsByTagName("next").length>0) { | |||
document.getElementById("next_image").src='images/upload/'+xml.getElementsByTagName("next")[0].getAttribute("thumb"); | |||
nextid=xml.getElementsByTagName("next")[0].getAttribute("id"); | |||
document.getElementById("next_image").alt=nextid; | |||
document.getElementById("next").style.display="block"; | |||
} | |||
else { | |||
document.getElementById("next").style.display="none"; | |||
nextid=-1; | |||
} | |||
if(xml.getElementsByTagName("prev").length>0) { | |||
document.getElementById("prev_image").src='images/upload/'+xml.getElementsByTagName("prev")[0].getAttribute("thumb"); | |||
previd=xml.getElementsByTagName("prev")[0].getAttribute("id"); | |||
document.getElementById("prev_image").alt=previd; | |||
document.getElementById("prev").style.display="block"; | |||
} | |||
else { | |||
document.getElementById("prev").style.display="none"; | |||
previd=-1; | |||
} | |||
} | |||
function previewImage(el) { | |||
if(el==-1) return 0; | |||
ajax.onreadystatechange = response; | |||
ajax.open('GET', path+ '/ask.php?id=' + el, true); | |||
ajax.send(null); | |||
} | |||
function prev() { | |||
previewImage(previd); | |||
} | |||
function next() { | |||
previewImage(nextid); | |||
} |