<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>źródła php</title>
<link rel="stylesheet" type="text/css" href="../style/oophp.css" title="oophp" />
<!--lokalne elementy stylu-->
<style type="text/css">
</style>
</head>
<body>
<!--źródła-->
<h1>źródła php</h1>
<div class="sidebar">
<a href =../index.php" >Strona główna</a><br /><br /> 
<a href ="link.php" >Dodaj odnośnik</a><br /><br /> 
<a href ="getresources.php" >Podejrzyj źródła</a><br /><br />

</div>
<div class="main">
<?php
//wywołane z link.php
//dodaje do źródeł
////////////////////////////////////////////////////////////
function check_third_party($originatingurl, $linkurl){
    //protokół już z usuniętym www
    if (strpos($linkurl, $originatingurl) !== false ||
        strpos($originatingurl, $linkurl) !== false)
    {
        $error = '';
    }
    else
    {
        $error = ' - Brak źródeł zewnętrznych';
    }
    return $error;
}
////////////////////////////////////////////////////////////
function check_listed($url){
    $error = '';
    $db = new SQLiteDatabasePlus('../dbdir/resources.sqlite');
    //remove wildcards and use UDF instead
    $strsql = "SELECT url FROM tblresources ".
              "WHERE url LIKE '%$url%' ";
    $result = $db->query($strsql);
    if ($result->numRows() > 0){
        $error = " - URL już znajduje się na liście";
    }
    return $error;
}
////////////////////////////////////////////////////////////
//główna
require '../classes/SQLitedatabasePlus.php';
//blok try
try{
    define('TBLNAME','tblresources');
    $db = new SQLiteDatabasePlus('../dbdir/resources.sqlite');
    //zapewnia hermetyzację danych
    $cleanpost = $db->cleanData($_POST, TBLNAME);
    foreach ($cleanpost as $key=>$value){
        $$key = $value;
    }
    //pobiera url
    $arr = @parse_url($url);
    $url = $arr['host'];
    $error = '';
    if($url != ''){
        $error .= check_listed($url);
    }
    $arr = @parse_url($theirlink);
    $theirlink = $arr['host'];
    if($theirlink != '' ){
        $error .= check_third_party($url, $theirlink);
    }
    //musi dac przynajmniej url i tekst + bez błędów
    if ($url != '' && $linktext != '' && $error == '' ){
        //dodaje protokół
        $url = 'http://'. $url;
        $strsql="INSERT INTO ". TBLNAME . " ".
           "(id, url, email, precedingcopy, linktext, ".
           "followingcopy, target, theirlinkpage, reviewed) ".
           "Values(NULL, '$url', '$email', '$precedingcopy', '$linktext', ".
           "'$followingcopy', '_blank', '$theirlinkpage', 0 )";
        //wyrzuca wyjątek w razie niepowodzenia
        $db->queryExec($strsql);
        //nie można użyć $db->close();
        $message = "<center>Dziękujemy za zainteresowanie. Twój odnośnik zostanie wkrótce poddany ocenie.</center>";
    }else{
    //ask to retry
        $message = "<center>Dziękujemy z azaunteresowanie. Twój URL nie został dodany.<span style='color:red;'>$error</span>.</center>";
    }
}catch(SQLiteException $e){
    //zmiany
    //klasa Exceptions ułatwia zarządznie
    $message =  $e->getMessage();
}
//niekoniecznie, bo to nie jest metoda OO
unset($db);
echo $message;
?>
</div>
</body>
</html>

