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?
Š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;
?>