Pereiti prie turinio

Danielius5

Nariai
  • Pranešimai

    41
  • Užsiregistravo

  • Lankėsi

  • Laimėta dienų

    1
  • Atsiliepimai

    0%

Reputacijos išklotinė

  1. Patinka
    Danielius5 sureagavo į Gugiss PDO register/login + xss apsauga + xss atakos fixeris   
    Nespauskit taip vaiko. Aš trylikos metų būdamas mokėjau tik lineidžą įsijungt B-)
  2. Patinka
    Danielius5 sureagavo į Arnas PDO register/login + xss apsauga + xss atakos fixeris   
    Tai jeigu jau save pats laikai vaiku, neparodyk to kitiems. Tiesiog nėra noro su vaikais niekam prasidėti. Tik vaikams. Ką aš siūlau, tai pamiršti šitą plain php reikalą, eik pasimokinsi OOP, MVC ir griebk kokį frameworką. Siūlau laravel, patiks, susižavėsi, pamatysi kaip skiriasi viskas :) paskaitysi šitą savo pamoką ir pasijusi labai gėdingai
  3. Patinka
    Danielius5 sureagavo į sanis PDO register/login + xss apsauga + xss atakos fixeris   
    Sveikintina, kad rašomos pamokos ir rodoma iniciatyva, bet reiktų šiek tiek pačiam pasimokyt. tarkim kur naudot klases, kur funkcijas, kur die, kur nenaudot global kintamųjų ir kitų dalykų, kurių nemanau, kad verta vardint.
  4. Patinka
    Danielius5 sureagavo į doncatas PDO register/login + xss apsauga + xss atakos fixeris   
    Nežinau kam čia rašei, nemanau kad verta, o dar ir kopijuot labai baisu. Mokant html formas, mysql minimaliai, php minimaliai, viską tą patį gali iš googlint ir suprasi tris kart geriau, o ne čia įmeti visą failą ir tipo suprasit kiekvienas. Parodyk savo močiutei ir paklausk ar ji ką nors supras viską perskaičius.
  5. Patinka
    Danielius5 sureagavo į Frankenstein PDO register/login + xss apsauga + xss atakos fixeris   
    naudojant password_verify, neuztenka naudot password_hash (http://php.net/manual/en/function.password-hash.php), kad sukurtum saugu password hash'a?
     
     
    Nesinervuok, viskas gerai, sveikintina iniciatyva.
  6. Patinka
    Danielius5 gavo reakciją nuo Frankenstein PDO register/login + xss apsauga + xss atakos fixeris   
    Sveiki taigi pagalvojau parašyti PDO registracija/prisijungima taigi ko mums reikės -> index.php failo, .htaccess failo, funkcijos.php failo (nors funkcios tik dvi, bet manau kad jei bus padaryta atskirame faile suprasite daugiau :) mysql duom bazes ir users table. tai pradėkime :)
    visu pirma, kodėl PDO? nes PDO tai yra naujausias ir geriausias būdas daryti užklausas duom bazei, teisingai naudojamas PDO panaikina mysql injekcijos galimybę taip padarydamas puslapį saugesnį :)
    užeiname į mysql ir susikuriam table users ten sukuriame columns `id` su auto_incrementu `n`, `p`, `d`,`ip`
    tada sukuriame kita table log kur sukuriame columns `id` su auto_increment,`ip`,`d`,`v`,`b`
    atsirdarome funkcijos.php faila ir įrašome connect funkcija:

    function conn() { GLOBAL $dbh, $aplankas; $username = 'tavoduombazesuser'; $password = 'tavoduombazespwd'; try { $dbh = new PDO("mysql:host=localhost;dbname=tavoduombaze", $username, $password); echo ''; } catch(PDOException $e) { echo $e->getMessage(); } }
    Na tai čia yra mysql connect funkcija su PDO. Pakeiskit viska kas prasideda "tavo.." į savo duomenis.
    galime tęsti darbą. Padarykime dvi formas registracijos ir prisijungimo index.php faile (P.S. ŠRIFTUOTA TURI BŪTI Į UFT-8 WITHOUT BOM!) nes jei bus uft-8 mėtys warnings ir neveiks sesijos mėtys kažką tokio (Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by)

    <?php session_start(); include ("funkcijos.php"); conn (); ?> <html> <HEAD> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </HEAD> <body> <?php if(!isset($_SESSION['login'])) { //patikrinam ar nėra sesijos login, sesija login bus sukurta kai prisijungsim if(!isset($_GET['action'])) { //patikrinam ar nėra get metode jokio action ?> <center><h1>Prisijungimas</h1></center><br/> <form action='index.php?action=login'method='post'> Vartotojo vardas:<br/><input name='n' placeholder=' Vartotojo vardas'><br/> Slaptažodis:<br/><input name='p' type='password' placeholder=' Slaptažodis'><br/> <input type='submit' value='Prisijungti'></form><br/><br/> <center><h1>Registracija</h1></center><br/> <form action='index.php?action=reg 'method='post'> Vartotojo vardas:<br/><input name='n' placeholder=' Vartotojo vardas'><br/> Slaptažodis:<br/><input name='p' type='password' placeholder=' Slaptažodis'><br/> <input type='submit' value='Registruotis'></form> <?php } // uždarom if salygą ?></body></html>
    Na štai turime reg ir login Formas. na o dabar grįžkime į funkcijų failą ir sukurkime fixerio xss atakų funkcija.

    function safe ($i,$input) { $username = 'tavodbuser'; $password = 'tavodbpw'; try { $dbh = new PDO("mysql:host=localhost;dbname=tavodb", $username, $password); echo ''; } catch(PDOException $e) { echo $e->getMessage(); } // nezinau kodėl bet kažkodėl reikia junktis iš naujo, nes kitaip neveikia if(strpos($i,"<script>")!== FALSE OR strpos($i,"</script>")!== FALSE) { /* xss ataka daroma su tagu "<script>" todel neleide jo įrašyt apsaugosime nuo atakos ir fixinsime bandymus */ $i = htmlspecialchars($i); // paverčiame visus < > ir kt ko nereikia spec simboliais $date = date("Y-m-d H:i"); // išgaunam data metai-menuo-diena valanda:minutes $ip = $_SERVER['REMOTE_ADDR']; // išgaunam ip adresa $get = $dbh->prepare("SELECT * FROM `log` WHERE `ip`=? AND `v`=?"); // su PDO patikrinam ar jau yra bandyta laužtis su šiuo ip per šitą vietą $get -> execute (array($ip,$input)); $get = $get->fetch(); if($get) { // jeigu yra bandyta tiesiog updatinsim data $info = $dbh->prepare("UPDATE `log` SET `d`=?,`b`=? WHERE `ip`=?"); // updatinam $info -> execute (array($date,$i,$ip)); // b kintamasis yra pravalytas ivestas tekstas $op = fopen(".htaccess","c+"); // atidarome htaccess faila fwrite($op, "deny from ".$ip); //įrašome ip draudimo funkcija įrašius ja žmogus nurodytu ip adresu negalės pasiekti tinklapio fclose($op); // uždarome faila } else { // o jeigu iš šio ip per šia vietą nebuvo bandoma xss tada iterpsim nauja bandyma į duom baze $info = $dbh->prepare("INSERT INTO `log` (`ip`,`d`,`v`,`b`) VALUES (?,?,?,?)"); // iterpiam bandyma $info -> execute (array($ip,$date,$input,$i)); $op = fopen(".htaccess","c+"); // įrašom į .htaccess kad nebeleistu įeiti fwrite($op, "deny from ".$ip); // įrašom į .htaccess kad nebeleistu įeiti fclose($op); //uždarome } Die(" <span style='color:red;'>Patikėk mūsų sistema parašyta gerai ir tokie kaip tu jokiu būdu nesugebės pakenkti, o tavo kvaili mėginimai baigsis blogai tik tau pačiam ;) </span> "); // išvedame die klaida (die klaida išveda į ekrana teksta ir nutraukia visa koda esanti po ja } else { return $i;} }
    Fsio fixerį jau padarėm dabar tęskim darbus :) einam į index.php ir po

    <?php } // uždarom if salygą
    sukuriame register sistemą ;)

    if(isset($_GET['action'] && $_GET['action'] == "reg") { // jeigu get metodu siunčiama "action" ir action = reg tada vykdysime koda tarp lauštinių skliaustų if(isset($_SESSION['login'])) { echo "<meta http-equiv="refresh" content="0;url=http://errqraz.us.lt/darbas/disabled.php" />"; } // jeigu bando registruotis prisijunges mes į pagrindini puslapi else { if(isset($_POST['n']) && isset($_POST['p']) && !empty($_POST['n']) && !empty($_POST['p']) { // patikrinam ar siunčiami n ir p ir ar jie ne tušti $n = safe($_POST['n'],"register"); //prafiltuojam gaunamus duomenis su musu fixeriu $p = safe($_POST['p'],"register"); //prafiltuojam gaunamus duomenis su musu fixeriu $n = htmlspecialchars($n); // del visa ko praeinam pro xss filtra $p = htmlspecialchars($p); // del visa ko praeinam pro xss filtra $n1 = strlen($n); // patikrinam ilguma, strlen skaiciuoja simboliu kieki $p1 = strlen($p); if($n1 >30 OR $n1 <6 OR $p1 >30 OR $p1 < 6) { echo "nickas ir passwordas turi būti 6-30 simbolių ilgumo"; } else {$info = $dbh->prepare("SELECT * FROM `users` WHERE n=?"); // patikrinam ar toks nick neregistruotas $info -> execute (array($n)); $info = $info->fetch(); if($info) { // jeigu registruotas echo "toks nick registruotas"; } else { if($n == $p) { echo "Vesk slaptažodį kitokį nei vartotojo vardą."; } else { // na va pagrindinius dalykus apėjome dabar kiškime į duom bazę $date = date("Y-m-d H:i"); $ip = $_SERVER['REMOTE_ADDR']; require("password.php"); // includinam biblioteką, nes ne visos php versijos palaikys šia funkcija $hash = password_hash($p, PASSWORD_DEFAULT); /*užkoduojam slaptažodį, tai pats saugiausias būdas užkodavimo todėl kad viena žodį hashinant 10 kartų bus 10 skirtingų hash, todėl iškoduoti labai sunku (rodos neįmanoma net)*/ $reg = $dbh->prepare("INSERT INTO `users`(n,p,d,ip,) VALUES (?,?,?,?)"); $reg -> execute (array($n,$hash,$date,$ip)); echo "Sėkmingai užregistruotas!"; //registracija baigta } }} } else { // jeigu tušti echo "Kažko neįvedei"; }
    Na liko login ;D
     

    if(isset($_GET['action']) && $_GET['action']=="login") { if(isset($_POST['n']) && isset($_POST['p']) && !empty($_POST['n']) && !empty($_POST['p'])) { $n = safe($_POST['n'],"login"); // jei bus isilauzimo bandymas rodys kad lauztasi per login $p = safe($_POST['p'],"login"); $n = htmlspecialchars($n)); $p = htmlspecialchars($p)); $info = $dbh->prepare("SELECT * FROM `users` WHERE n=?"); $info -> execute (array($n)); $info = $info->fetch(); $ip = $_SERVER['REMOTE_ADDR']; if($info) { // jeigu yra toks vartotojas require("password.php"); //vel includinam biblioteka if(password_verify($p, $info['p']) ) { // čia funkcija kuri sulygina ar gali but tam passwordui toks hash echo "Sėkmingai prisijungei"; $_SESSION['login']=true; $_SESSION['n']=$n; } else { echo "slaptažodis neteisingas!"; } } else { echo"nėra tokio vartotojo!";}
    na ka teliko sukurti password.php failą sukuriam ir ten įrašom ši kodą, ir uždarom daugiau mum jo nereikės :) nes čia tiesiog biblioteka ;)
     

    <?php /** * A Compatibility library with PHP 5.5's simplified password hashing API. * * @author Anthony Ferrara <[email protected]> * @license http://www.opensource.org/licenses/mit-license.html MIT License * @copyright 2012 The Authors */ namespace { if (!defined('PASSWORD_DEFAULT')) { define('PASSWORD_BCRYPT', 1); define('PASSWORD_DEFAULT', PASSWORD_BCRYPT); /** * Hash the password using the specified algorithm * * @param string $password The password to hash * @param int $algo The algorithm to use (Defined by PASSWORD_* constants) * @param array $options The options for the algorithm to use * * @return string|false The hashed password, or false on error. */ function password_hash($password, $algo, array $options = array()) { if (!function_exists('crypt')) { trigger_error("Crypt must be loaded for password_hash to function", E_USER_WARNING); return null; } if (!is_string($password)) { trigger_error("password_hash(): Password must be a string", E_USER_WARNING); return null; } if (!is_int($algo)) { trigger_error("password_hash() expects parameter 2 to be long, " . gettype($algo) . " given", E_USER_WARNING); return null; } $resultLength = 0; switch ($algo) { case PASSWORD_BCRYPT: // Note that this is a C constant, but not exposed to PHP, so we don't define it here. $cost = 10; if (isset($options['cost'])) { $cost = $options['cost']; if ($cost < 4 || $cost > 31) { trigger_error(sprintf("password_hash(): Invalid bcrypt cost parameter specified: %d", $cost), E_USER_WARNING); return null; } } // The length of salt to generate $raw_salt_len = 16; // The length required in the final serialization $required_salt_len = 22; $hash_format = sprintf("$2y$%02d$", $cost); // The expected length of the final crypt() output $resultLength = 60; break; default: trigger_error(sprintf("password_hash(): Unknown password hashing algorithm: %s", $algo), E_USER_WARNING); return null; } $salt_requires_encoding = false; if (isset($options['salt'])) { switch (gettype($options['salt'])) { case 'NULL': case 'boolean': case 'integer': case 'double': case 'string': $salt = (string) $options['salt']; break; case 'object': if (method_exists($options['salt'], '__tostring')) { $salt = (string) $options['salt']; break; } case 'array': case 'resource': default: trigger_error('password_hash(): Non-string salt parameter supplied', E_USER_WARNING); return null; } if (PasswordCompat\binary\_strlen($salt) < $required_salt_len) { trigger_error(sprintf("password_hash(): Provided salt is too short: %d expecting %d", PasswordCompat\binary\_strlen($salt), $required_salt_len), E_USER_WARNING); return null; } elseif (0 == preg_match('#^[a-zA-Z0-9./]+$#D', $salt)) { $salt_requires_encoding = true; } } else { $buffer = ''; $buffer_valid = false; if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) { $buffer = mcrypt_create_iv($raw_salt_len, MCRYPT_DEV_URANDOM); if ($buffer) { $buffer_valid = true; } } if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) { $buffer = openssl_random_pseudo_bytes($raw_salt_len); if ($buffer) { $buffer_valid = true; } } if (!$buffer_valid && @is_readable('/dev/urandom')) { $f = fopen('/dev/urandom', 'r'); $read = PasswordCompat\binary\_strlen($buffer); while ($read < $raw_salt_len) { $buffer .= fread($f, $raw_salt_len - $read); $read = PasswordCompat\binary\_strlen($buffer); } fclose($f); if ($read >= $raw_salt_len) { $buffer_valid = true; } } if (!$buffer_valid || PasswordCompat\binary\_strlen($buffer) < $raw_salt_len) { $bl = PasswordCompat\binary\_strlen($buffer); for ($i = 0; $i < $raw_salt_len; $i++) { if ($i < $bl) { $buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255)); } else { $buffer .= chr(mt_rand(0, 255)); } } } $salt = $buffer; $salt_requires_encoding = true; } if ($salt_requires_encoding) { // encode string with the Base64 variant used by crypt $base64_digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; $bcrypt64_digits = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $base64_string = base64_encode($salt); $salt = strtr(rtrim($base64_string, '='), $base64_digits, $bcrypt64_digits); } $salt = PasswordCompat\binary\_substr($salt, 0, $required_salt_len); $hash = $hash_format . $salt; $ret = crypt($password, $hash); if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != $resultLength) { return false; } return $ret; } /** * Get information about the password hash. Returns an array of the information * that was used to generate the password hash. * * array( * 'algo' => 1, * 'algoName' => 'bcrypt', * 'options' => array( * 'cost' => 10, * ), * ) * * @param string $hash The password hash to extract info from * * @return array The array of information about the hash. */ function password_get_info($hash) { $return = array( 'algo' => 0, 'algoName' => 'unknown', 'options' => array(), ); if (PasswordCompat\binary\_substr($hash, 0, 4) == '$2y$' && PasswordCompat\binary\_strlen($hash) == 60) { $return['algo'] = PASSWORD_BCRYPT; $return['algoName'] = 'bcrypt'; list($cost) = sscanf($hash, "$2y$%d$"); $return['options']['cost'] = $cost; } return $return; } /** * Determine if the password hash needs to be rehashed according to the options provided * * If the answer is true, after validating the password using password_verify, rehash it. * * @param string $hash The hash to test * @param int $algo The algorithm used for new password hashes * @param array $options The options array passed to password_hash * * @return boolean True if the password needs to be rehashed. */ function password_needs_rehash($hash, $algo, array $options = array()) { $info = password_get_info($hash); if ($info['algo'] != $algo) { return true; } switch ($algo) { case PASSWORD_BCRYPT: $cost = isset($options['cost']) ? $options['cost'] : 10; if ($cost != $info['options']['cost']) { return true; } break; } return false; } /** * Verify a password against a hash using a timing attack resistant approach * * @param string $password The password to verify * @param string $hash The hash to verify against * * @return boolean If the password matches the hash */ function password_verify($password, $hash) { if (!function_exists('crypt')) { trigger_error("Crypt must be loaded for password_verify to function", E_USER_WARNING); return false; } $ret = crypt($password, $hash); if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != PasswordCompat\binary\_strlen($hash) || PasswordCompat\binary\_strlen($ret) <= 13) { return false; } $status = 0; for ($i = 0; $i < PasswordCompat\binary\_strlen($ret); $i++) { $status |= (ord($ret[$i]) ^ ord($hash[$i])); } return $status === 0; } } } namespace PasswordCompat\binary { /** * Count the number of bytes in a string * * We cannot simply use strlen() for this, because it might be overwritten by the mbstring extension. * In this case, strlen() will count the number of *characters* based on the internal encoding. A * sequence of bytes might be regarded as a single multibyte character. * * @param string $binary_string The input string * * @internal * @return int The number of bytes */ function _strlen($binary_string) { if (function_exists('mb_strlen')) { return mb_strlen($binary_string, '8bit'); } return strlen($binary_string); } /** * Get a substring based on byte limits * * @see _strlen() * * @param string $binary_string The input string * @param int $start * @param int $length * * @internal * @return string The substring */ function _substr($binary_string, $start, $length) { if (function_exists('mb_substr')) { return mb_substr($binary_string, $start, $length, '8bit'); } return substr($binary_string, $start, $length); } }
     
    Na va dabar turime manau gerai apsaugota reg/login sistemą su password hashinimu, visgi rašiau iš galvos tai jei pamatysit klaidų sakykit ištaisysiu nors manau kad gerai viskas turi būti ;) Sėkmės :) Laukiu komentarų ;) PAMOKA KURTA TIK MANO IR BE MANO SUTIKMO NELEIDŽIU NIEKAM JĄ DALINTIS!
  7. Patinka
    Danielius5 gavo reakciją nuo Augustris Dan13liu5 (danielius5)   
    Sveiki taigi esu Danielius iš Vilniaus man yra 13 metų, mokausi gana gerai (7,8,9,10) Labiausiai nepatinkantis dalykas istorija labiausiai patinkantys matematika, fizika. Pasibaigus atostogom eisiu į 8 klasę. Duomiuos informatika šiuo metu labiausiai programavimu, nes man patinka mąstyti. Galvoju gyvenima sieti su IT nes niekas kitas daugiau manęs netraukia. Turiu brolį, bet jis gyvena ne Lietuvoje. Esu be augintinių turėjau graužiką bet kol jis buvo pas mane buvo labai didelė alergija ir dabar yra tiesiog daug lengviau nes įmanoma kvėpuoti. Manau esu draugiškas bet bendrauju daugiausiai ne su savo bendraamžiais todėl, kad neįdomu su jeis :D pagrinde draugai yra +20 metų :) Mėgstu dažnai pakalbėt kokiom nors temom su jeis tiesiog apie gyvenimą nes tokie dalykai man tikrai svarbiau nei varyt su hebra pahmelkes daryt. Mano akys buvo mėlynos bet dabar žalios :) , ūgis 176. Mokinuos php šiais laikais nes man tą kalba labai patiko ir norėčiau tobulint jos žinias. Stengiuos jei ką rašyti tai rašyti kažką naudingo o ne šiaip spaminti, nežinau ar gerai man tai išeina :D (foto veliau įkelsiu) :)
    Sėkmės jums ;)

  8. Patinka
    Danielius5 sureagavo į weedman Dan13liu5 (danielius5)   
    Ateiciai,ismok priimt kritika ir is jos mokytis,o ne teisintis,malonu susipazint :)
  9. Patinka
    Danielius5 sureagavo į RauG Aloha   
    Sveiki,
     
    Esu meno žmogus. Neturiu konkretaus stiliaus, tolerantiška visiems. Lankiau dailės mokyklą, piešiu, kartais parėkaloju kaimynams, truputį lankiau šokius.
     
    Esu „žalia“ IT srityje. Paskutinį kartą informatikos pamokas turėjau 10 klasėje ir džiaugiausi jų atsikračius. Bet taip jau susiklostė, kad įstojau į informatikos sritį. Baigiau pirmą kursą. Studijuoju multimediją, dizainą ir leidybos technologijas. Ir galiu pasakyti, kad gailiuosi nepasiėmusi informatikos ir abitūroje, nes man tai limpa ir patinka :D Turiu omenyje, ne kasdienį naudojimąsi kompiuteriu – e-mail, internetu ir pan., o gilinimąsi į programavimą ir dizaino sritį. Šiuo metu savarankiškai gilinuosi į HTML. Turiu šokius tokius pagrindus darbui C++ ir C++ builder programomis.
     
    Prie uždarbis.lt nusprendžiau prisijungti pagalvojus, kad čia atrandu daug reikalingų ir naudingų atsakymų į man rūpimus klausimus.
     
    Tai tiek šiam kartui ;)
  10. Patinka
    Danielius5 gavo reakciją nuo Augustris Dan13liu5 (danielius5)   
    Sveiki taigi esu Danielius iš Vilniaus man yra 13 metų, mokausi gana gerai (7,8,9,10) Labiausiai nepatinkantis dalykas istorija labiausiai patinkantys matematika, fizika. Pasibaigus atostogom eisiu į 8 klasę. Duomiuos informatika šiuo metu labiausiai programavimu, nes man patinka mąstyti. Galvoju gyvenima sieti su IT nes niekas kitas daugiau manęs netraukia. Turiu brolį, bet jis gyvena ne Lietuvoje. Esu be augintinių turėjau graužiką bet kol jis buvo pas mane buvo labai didelė alergija ir dabar yra tiesiog daug lengviau nes įmanoma kvėpuoti. Manau esu draugiškas bet bendrauju daugiausiai ne su savo bendraamžiais todėl, kad neįdomu su jeis :D pagrinde draugai yra +20 metų :) Mėgstu dažnai pakalbėt kokiom nors temom su jeis tiesiog apie gyvenimą nes tokie dalykai man tikrai svarbiau nei varyt su hebra pahmelkes daryt. Mano akys buvo mėlynos bet dabar žalios :) , ūgis 176. Mokinuos php šiais laikais nes man tą kalba labai patiko ir norėčiau tobulint jos žinias. Stengiuos jei ką rašyti tai rašyti kažką naudingo o ne šiaip spaminti, nežinau ar gerai man tai išeina :D (foto veliau įkelsiu) :)
    Sėkmės jums ;)

  11. Patinka
    Danielius5 sureagavo į Poliarinis Dan13liu5 (danielius5)   
    mazdaug taip turetu atrodyt aprasymas... Nemanau kad kazkam idomu tavo ugis ar svoris.
  12. Patinka
    Danielius5 sureagavo į Kernius Uždarbis.lt – 10 metų kartu   
    Lygiai prieš 10 metų grupelė paauglių be didelių žinių ir įgūdžių, bet su beribiu smalsumu ir noru užsidirbti internete, susibūrė į bendruomenę, kuri kaip jokia kita ilgainiui pradėjo jungti visiškai skirtingus žmones, nuolatos sau keliančius naujus tikslus – ir siekiančius jų kartu.
     
    Per dešimtmetį kartu su tais paaugliais subrendo ir forumas: šiandien Uždarbis.lt – didžiausia verslo ir technologijų bendruomenė Lietuvoje, vienijanti daugiau nei 70 tūkst. narių ir per savaitę bent po kartą aplankoma kas penkiolikto žmogaus mūsų šalyje. Turbūt mažai kas 2004-tųjų sausį būtų patikėjęs, jog prieš save mato kūdikį, kuris užaugęs taps geriausiu forumu Lietuvoje.
     
    Šįkart nesileisiu į ilgas kalbas – apie tai, kaip mes visi to pasiekėme, pasakojau pernai, o pirmuosius tris Uždarbis.lt istorijos metus apžvelgiau, kai forumui suėjo treji.
     
    Visų pirma, negaliu neišvardinti žmonių, kurie skirtingais forumo gyvavimo laikotarpiais tapo didžiuliais jo ramsčiais, skirdami savo laisvą laiką ir mintis. Jų pastangų palaikant tvarką ir daugybės idėjų, kurias pavyko įgyvendinti, dėka mes niekada nesustojom judėti į priekį.
     
    Tai – buvę ir esami administratoriai ir moderatoriai: NuPagady, Augustinas, MeXiukas, Tadas, twea, Mykolas, Arvydas, Rimas, Ernestas, okiro, falco, Omas, ennio, Medinukas, L33T, techno, Leader, chakalasz, dealeris, Slashas, xdvx, Karolis, Elitas, suvalgysiu, Vytenis_, DjiXas, reject, Marius, Artūras, Aurimas, Mėgstu, kde, Skorpionas, diablom, euro, NickasLT, BOSS ir dar daug nuostabių žmonių, kuriuos visus šią minutę sunku beprisiminti.
     
    Dalį tų "pirmųjų paauglių" šiandien galite rasti tarp VIP narių, o dabartinei Uždarbis.lt komandai – kurios sudėtis nesikeičia ilgiausią laiką per forumo istoriją – neabejoju, kad padėką jaučia ne vienas. Per praėjusius metus iš viso ji atliko 22 tūkst. (!) moderavimo veiksmų, iš kurių 45% – vienas žmogus, antrą kartą patekęs į Metų forumiečio finalą ir (po 2011-tais užimtos antrosios vietos) šiemet galiausiai juo tapęs – Mykolas.
     
    Metų naudingiausieji
     
    Tradiciškai kiekvienam nariui, kuris per 2013-uosius parašė bent 5 mėgstamus (surinkusius daugiau nei 10 reputacijos taškų) pranešimus priklauso Uždarbis.lt marškinėliai, kurie šiemet kitokie nei ankstesniais metais. Jei radote savo slapyvardį tarp pirmųjų 54 šio sąrašo pozicijų ir per paskutinį pusmetį dar nesate gavę Uždarbis.lt marškinėlių, rašykite asmeninę žinutę administratoriui Tadui tema "MARŠKINĖLIAI", kurioje nurodykite: lytį; marškinėlių dydį (S, M, L, XL); marškinėlių modelį (standartiniai arba slim fit – prigludę); ir gavėjo (savo) vardą, pavardę ir adresą Lietuvoje (kartu su pašto kodu, kurį galite sužinoti iš post.lt).
     
    Marškinėliai visiems bus išsiųsti registruotu paštu iki vasario pradžios.
     
    Tavo istorija?
     
    Šiemet norėčiau čia ir sustoti bei žodį perduoti jums. Nėra geresnės progos nei bendruomenės dešimtmetis kiekvienam pasidalinti savo istorija.
     
    Ar kas būtų tavo gyvenime kitaip, jei niekada nebūtum atradęs Uždarbis.lt?
    Man pačiam Uždarbis.lt leido pažinti daugybę nuostabių žmonių, kurių dalis tapo gerais draugais ne tik virtualiame, bet ir realiame gyvenime. Turbūt visam laikui išliks atmintyje pirmieji gyvi susitikimai Kaune ir Vilniuje 2006-2007 metais, kai pirmąsyk išvydau tuos, su kuriais forume diskutavome nuo pat jo įkūrimo.
     
    Nuo to laiko kiekvieną kartą nuėjęs į narių susitikimą išgirstu vis naujų – netikėčiausių – gyvenimo istorijų iš žmonių, kurių dalies forume niekada nebuvau pastebėjęs. Kartais todėl, kad jie niekada ir nenorėjo būti pastebimi, – diskusijas dažniau sekdami nei jose dalyvaudami.
     
    Ir vis dėlto yra dar toks vienas neapsakomai malonus jausmas, kai vis dažniau atsidaręs kokį naujienų portalą pamatai jame jauno besišypsančio žmogaus nuotrauką ir perskaitęs pirmus sėkmės istorijos žodžius staiga pats nejučia pradedi šypsotis: "Aš juk jį žinau – jis iš Uždarbis.lt!".
     
    Pabaigai: Mėgstamiausi visų laikų Uždarbis.lt pranešimai :)
  13. Patinka
    Danielius5 gavo reakciją nuo Augustris Dan13liu5 (danielius5)   
    Sveiki taigi esu Danielius iš Vilniaus man yra 13 metų, mokausi gana gerai (7,8,9,10) Labiausiai nepatinkantis dalykas istorija labiausiai patinkantys matematika, fizika. Pasibaigus atostogom eisiu į 8 klasę. Duomiuos informatika šiuo metu labiausiai programavimu, nes man patinka mąstyti. Galvoju gyvenima sieti su IT nes niekas kitas daugiau manęs netraukia. Turiu brolį, bet jis gyvena ne Lietuvoje. Esu be augintinių turėjau graužiką bet kol jis buvo pas mane buvo labai didelė alergija ir dabar yra tiesiog daug lengviau nes įmanoma kvėpuoti. Manau esu draugiškas bet bendrauju daugiausiai ne su savo bendraamžiais todėl, kad neįdomu su jeis :D pagrinde draugai yra +20 metų :) Mėgstu dažnai pakalbėt kokiom nors temom su jeis tiesiog apie gyvenimą nes tokie dalykai man tikrai svarbiau nei varyt su hebra pahmelkes daryt. Mano akys buvo mėlynos bet dabar žalios :) , ūgis 176. Mokinuos php šiais laikais nes man tą kalba labai patiko ir norėčiau tobulint jos žinias. Stengiuos jei ką rašyti tai rašyti kažką naudingo o ne šiaip spaminti, nežinau ar gerai man tai išeina :D (foto veliau įkelsiu) :)
    Sėkmės jums ;)

  14. Patinka
    Danielius5 sureagavo į deiwis Lėtai krauna puslapį ( kaip nustatyt kas kaltas)   
    Sveiki,
    mano trumpa analizė:
     
    Puslapį krauna iki 10 sekundžių (iš viso 112 užklausos), iki pusę to laiko sudaro facebook'as (37 užklausos).
     
    Dideli failai pridedantys apie 3 sec:
    http://autokraitis.lt/public/var/scripts/public_index.js
    http://autokraitis.lt/shop/categories/ajaxMenu
    http://autokraitis.lt/shop/categories/ajaxKAM
    http://connect.facebook.net/en_US/all.js
    http://www.google-analytics.com/ga.js
     
    Neegzistuojantys failai kurių kaskart ieškoma irgi prideda laiko:
    http://autokraitis.lt/public/zone/default/images/topbg.png
    http://autokraitis.lt/images/fancybox/fancy_loading.png
    http://autokraitis.lt/images/fancybox/fancy_nav_right.png
    http://autokraitis.lt/images/fancybox/fancy_nav_left.png
  15. Patinka
    Danielius5 sureagavo į griske Lėtai krauna puslapį ( kaip nustatyt kas kaltas)   
    SAKO RASYT ISMOK LOL!!!
  16. Patinka
    Danielius5 sureagavo į Paul254 Lėtai krauna puslapį ( kaip nustatyt kas kaltas)   
    Rašyt išmok...
     
    Man viską puikiai krauna
  17. Patinka
    Danielius5 sureagavo į Sneijder Noriu išmokti programuoti. Nuo ko pradėti?   
    Nežinau ar dar čia kam nors aktualu, tačiau pabandysiu patarti tiems, kurie vis dar nori išmokti programuoti ir nežino nuo ko pradėti. Galbūt yra ir žmonių, kurie yra visiškai žali šiam reikale.
    Taigi pirmas dalykas mano nuomone būtų pasirinkti programavimo stilių. Plačiau čia
    Tiesa, manau sutiksite jog objektinis programavimas yra bene perspektyviausias iš visų. Nors daugiau ar mažiau teks naudotis daugiau nei vienu.
    Tada reikėtų susirasti literatūros. Geriausias būtų bent kažkiek mokėti anglų kalbą. Nes internete pilna vaizdinių pamokų, o daugiausia jų anglų kalba. Tiesa, nereikėtų užmiršti ir knygų.
    Na, o toliau, jau reikia tiesiog domėtis, mokytis ir svarbiausia daug programuoti. Kaip sakoma : "Practice makes perfect" .
    Vienas žmogus, tiksliau Stanfordo universiteto dėstytojas net gi yra pasakęs, jog programavimas tai tarsi rašinių rašymas. O jei žmogus moka kalbą, tai dar nereiškia jog jis yra geras rašinių rašytojas.
  18. Patinka
    Danielius5 sureagavo į Ispirit Noriu išmokti programuoti. Nuo ko pradėti?   
    100% nepritariu tokiam programavimo kalbos mokymuisi. Kad ir pradesi kaskoki tai maza projekta, bet be teoriniu ziniu nieko gero nepasieksi, na o jeigu ir be ju tau pavyks padarytai tai ko norejai, tai nereiks kad pasirinkai gera sprendima ir aplamai, pries kaska darant bent pradines zinias reikia tureti, kad suprastum ko tau reikia. Galu gale, jeigu nori kaska didesnio daryti, tau ir teorijos apie tai kodel vieni metodai yra greitesni uz kitus ir pan reikes.
  19. Patinka
    Danielius5 sureagavo į NightLeech Noriu išmokti programuoti. Nuo ko pradėti?   
    Jeigu atvirai, tai nesimokyk iš knygų. Išsikelk sau uždavinį ir pradėk kurti projektą iš pradžių nesudėtingą, tarkim statinį puslapį su dizainu, po to dinaminį. Naudokis „W3school“ online pamokomis, php ir mysql santraukomis „Reference“. Kodėl taip? Paprastas atsakymas, tik darydamas ir taisydamas klaidas tu tapsi programuotoju. Yra šimtai visokių knygų, video pamokų, anot kurių perskaitęs tu tapsi geru programuotoju. Nesamonė! To niekada nebus, tu gali sukurti kažką, bet neišsiugdysi mastymo. Kurk ir vystyk savo gebėjimus.
×
×
  • Pasirinkite naujai kuriamo turinio tipą...