From ce02585679f681af26c541529eae954e9062c513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20=C5=A0ijanec?= Date: Mon, 21 Jan 2019 21:43:52 +0100 Subject: Published index.php (main program) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Yay and service is avaliable at website š.ga --- index.php | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 386 insertions(+) create mode 100644 index.php (limited to 'index.php') diff --git a/index.php b/index.php new file mode 100644 index 0000000..3ca6749 --- /dev/null +++ b/index.php @@ -0,0 +1,386 @@ +Povezava v podatkovno bazo ni uspela. \n"); +} +$log .= "Povezava v podatkovno bazo uspešna.\n"; +if(mysqli_select_db($conn,$baza)) { + $log .= "Izbira podatkovne baze uspešna.\n"; +} else { + die("Podatkovne baze ni bilo mogoče izbrati. \n"); +} + + + + + +//poglej če tabela links obstaja +$alitabelaobstaja = mysqli_query($conn, 'SELECT 1 from `'.$tabela.'`'); +if($alitabelaobstaja !== FALSE) { + $log .= "Tabela v podatkovni bazi obstaja. Program je že bil v uporabi.\n"; +} else { + // ne - naredi jo! + $log .= "Tabela v podatkovni bazi ne obstaja. Program je bil zagnan prvič. Poskusil jo bom narediti.\n"; +$sql = "CREATE TABLE IF NOT EXISTS `".$tabela."` ( + `short` varchar(10) COLLATE utf8_unicode_ci NOT NULL, + `long` text(767) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`short`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; +if (mysqli_query($conn, $sql)) { + $log .= "Tabela v podatkovni bazi je bila uspešno narejena.\n"; +} else { + die("
Napaka v izdelavi tabele v podatkovni bazi! \n
"); +} +} + + +//če je potrebna preusmeritev (glej .htaccess, pa ti bo jasno) +if(!empty($_REQUEST['r'])) { + // preveri, če dolg niz že obstaja +$safer = mysqli_real_escape_string($conn, $_REQUEST['r']); +// echo $safer; //debug +$query = "SELECT `long` from `".$tabela."` where `short`='".$safer."';"; +$result = mysqli_query($conn, $query); +echo mysqli_error($conn); //debug +if(mysqli_num_rows($result) > 0) { + + + // echo array_pop(mysqli_fetch_row($result); //debug //to je to! + $dolgkiobstaja = array_pop(mysqli_fetch_row($result)); //to je to! + // ŠortLink obstaja, preusmerjam! + header("Location: ".$dolgkiobstaja); +} else { + $log .= "Kratek URL še ne obstaja v podatkovni bazi.\n"; + $alert .= "
+ × +Napaka! Kratek URL še ne obstaja v podatkovni bazi. +

"; +} +} + + + +// če je zahteva za vpis, vpiši! +if(!empty($_REQUEST['submit'])) { + $log .= "Obrazec je bil izpolnjen, začenjam preverjanje vnosa."; + + + +if($captcha !== "ne") { + if ($securimage->check($_POST['captcha_code']) == false) { + $log .= "Preverjanje človeštva (CAPTCHA) je negativno. Mogoče niste človek, zato ne bom nadaljeval."; + $alert .= "
+ × +Napaka preverjanja! Preverjanje CAPTCHA je pokazalo negativni rezultat. Mogoče niste človek, zato ne bom nadaljeval. +

"; + $nadaljuj = "ne"; +} else { + $log .= "Preverjanje človeštva (CAPTCHA) je pozitivno. Človek ste."; +} +} + +// regex match kratkega niza +if(preg_match($rxshort, $_REQUEST['short'])) { + $log .= "Preverjanje krajšalnega niza je pozitivno. Krajševalni niz se lahko uporabi.\n"; +} else { + $log .= "Krajšalni niz se ne ujema z regexom " . $rxshort . ", zato ne bom nadaljeval.\n"; + $nadaljuj = "ne"; + $alert .= "
+ × +Napaka vnosa! Krajševalni niz se ne ujema z njegovimi pravili. Mora biti 1 do 6 znakov dolg in lahko vsebuje male črke in številke. +

"; +} + + +// preverjanje, ce je res URL +if(filter_var($_REQUEST['long'], FILTER_VALIDATE_URL)) { + $log .= "Preverjanje dolgega URL-ja je pozitivno. Dolg URL se lahko uporabi.\n"; +} else { + $log .= "Preverjanje dolgega URL-ja je negativno, zato ne bom nadeljeval.\n"; + $nadaljuj = "ne"; + $alert .= "
+ × +Napaka vnosa! Dolg URL se ne ujema z standardi. Poskusite ponovno. +

"; +} + + +// preprecevanje sql prekoračitve +if(strlen($_REQUEST['long']) > 767) { //strlen pove bajte, mb_strlen pove dolžino niza + $log .= "Dolg URL je predolg. Mora biti krajši od 767 bajtov, drugače lahko pride do napak v podatkovni bazi.\n"; + $nadaljuj = "ne"; + $alert .= "
+ × +Napaka vnosa! URL je predolg. Mora biti krajši od 767 bajtov. +

"; //drugače lahko pride do napak v SQL bazi podatkov +} else { + $log .= "Dolg URL ni predolg. To je v redu.\n"; +} + +if($nadaljuj == "ja") { //nadaljuj z sql stvarmi, samo, če so zgornji pogoji zadostni + +//preveri, če kratek niz že obstaja +$safeshort = mysqli_real_escape_string($conn, $_REQUEST['short']); +$query = "SELECT * from `".$tabela."` where `short`='".$safeshort."';"; +$result = mysqli_query($conn, $query); +if(mysqli_num_rows($result) > 0) { + $alert .= "
+ × +Napaka! Krajšalni tekst že obstaja v podatkovni bazi. Izberite drugega. +

"; + $log .= "Krajševalni tekst že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; + $nadaljuj = "ne"; +} else { + $log .= "Krajševalni tekst še ne obstaja v podatkovni bazi. To je v redu.\n"; +} + +// preveri, če dolg niz že obstaja +$safelong = mysqli_real_escape_string($conn, $_REQUEST['long']); +$query = "SELECT `short` from `".$tabela."` where `long`='".$safelong."';"; +$result = mysqli_query($conn, $query); +if(mysqli_num_rows($result) > 0) { + // echo array_pop(mysqli_fetch_row($result); //debug //to je to! + $kratekkiobstaja = array_pop(mysqli_fetch_row($result)); //to je to! + $alert .= "
+ × +Napaka! Dolg URL že obstaja v podatkovni bazi. Nanj kaže ".$domena."/".htmlspecialchars($kratekkiobstaja)." +

"; + $log .= "Dolg URL že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; + $nadaljuj = "ne"; +} else { + $log .= "Dolg URL še ne obstaja v podatkovni bazi. To je v redu.\n"; +} + + /* +//idk ne dela -- v redu, vem zakaj: podpičje manjka! jaoooo in še `'" jaooooo sql nima ", ' je za nize, ` je za stolpce, tabele,... +$prepared = mysqli_prepare($conn, "SELECT * FROM ".$tabela." WHERE short=?"); +// var_dump(mysqli_error($conn)); //debug +$binded = mysqli_stmt_bind_param($prepared, "s", $_REQUEST['short']); +// echo $binded; //debug +$executed = mysqli_stmt_execute($prepared); +echo $executed; //debug +$binded_result = mysqli_stmt_bind_result($prepared, $rezultat); +echo $rezultat; //debug +$fetched = mysqli_stmt_fetch($prepared); +echo $fetched; //debug +$result = mysqli_query($conn, $prepared); +echo mysqli_error($conn); //debug +if(mysqli_num_rows($result) == 0) { + $log .= "Krajševalni tekst še ne obstaja v podatkovni bazi. To je v redu.\n"; +} else { + $alert .= "
+ × +Napaka! Krajšalni tekst že obstaja v podatkovni bazi. Izberite drugega. +

"; + $log .= "Krajševalni tekst že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; + $nadaljuj = "ne"; +} + +//preverjanje, če krajševalni niz že obstaja +$prepared = mysqli_prepare($conn, "SELECT * FROM ".$tabela." WHERE long=?"); +// echo mysqli_error($conn); //debug +mysqli_stmt_bind_param($prepared, "s", $_REQUEST['long']); +$result = mysqli_query($conn); +if(mysqli_num_rows($result) == 0) { + $log .= "Dolg URL še ne obstaja v podatkovni bazi. To je v redu.\n"; +} else { + $alert .= "
+ × +Napaka! Dolg URL že obstaja v podatkovni bazi. Nanj vodi ".$domena."/".htmlspecialchars($result).". +

"; + $log .= "Dolg URL že obstaja v podatkovni bazi, zato ne morem nadaljevati. Nanj vodi ".$domena."/".htmlspecialchars($result).".\n"; + $nadaljuj = "ne"; +} +*/ +} + + + + +if($nadaljuj !== "ja") { + $log .= "URL ni bil okrajšan. Glej napake zgoraj!"; +} else { +$query = "INSERT INTO `".$tabela."` (`short`, `long`) VALUES ('".$safeshort."','".$safelong."');"; +$result = mysqli_query($conn, $query); +// var_dump(mysqli_error($conn)); //debug + + + //preveri uspeh +$query = "SELECT * FROM `".$tabela."` WHERE `short`='".$safeshort."';"; +$result = mysqli_query($conn, $query); +if(mysqli_num_rows($result) == 0) { + // var_dump(mysqli_error($conn)); //debug + $alert .= "
+ × +Sistemska napaka! Neznana napaka podatkovne baze. +

"; + $log .= "Neznana napaka podatkovne baze. Glej sistemske dnevnike.\n"; +} else { + $alert .= "
+ × +Uspešno! Šortlink ".$domena."/".htmlspecialchars($_REQUEST['short'])." je bil uspešno narejen! +

"; + $log .= "Šortlink ".$domena."/".htmlspecialchars($_REQUEST['short'])." je bil uspešno narejen!\n"; + +} + + + + } + + + + +} else { + $log .= "Obrazec ni bil izpolnjen, zato samo prikazujem stran.\n"; +} + + +$print .= " + + + + +"; +$print .= " +ŠortLink Balkan +

ŠortLink Balkan

+

Ste kdaj hoteli narediti iz dolgega linka ŠortLink tako, da bi izgledal bolj balkansko?

+

Tudi če niste, je tukaj ŠortLink Balkan, edini Link Šortener, namenjen predvsem slovanskim narodom,saj za njegovo uporabo potrebujete črko Š!

+

Vsi Šortani linki se bodo začeli z š.ga, na primer š.ga/tekst. Najs ane?

+
+
+
+ ".$domena."/
+ Dostop samo ljudem. Prepiši znake iz slike, da potrdiš, da nisi program.
+
+ +
+
+ŠortLink Balkan za svoje delovanje potrebuje in uporablja sejne piškotke. Z uporabo storitve se strinajte z shranjevanjem piškotkov +v vaš brskalnik za največ 24 minut. Piškotek se uporablja samo za interni namen, torej za to, da izvemo katere črke si imel na preverjanju za ljudi (CAPTCHA) +in nikakor ne za namene vohunjenja (tracking cookies). Piškotki so vidni samo na domeni š.ga, torej samo našemu strežniku. To sporočilo smo vam po veljavnem EU +zakonu morali pokazati, ker sta Hrvaška in Slovenija v Evropski Uniji in morata zato upoštevati te glupe zakone. + +
+"; +$print .= " +

Ker še nisem sprogramiral, ŠortLink Balkan še ne deluje. Ne uporabljaj ga, ker ne bo nič naredil.

"; + + + + +echo "
" . $log . "
"; // zakomentiraj to vrstico, da dnevnika ne boš prikazal, ali pa samo naredi HTML komentar, da lahko v sili še vedno pogledaš +echo $print; +echo $alert; +?> -- cgit v1.2.3