Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

PDO Registracija / Prisijungimas


Gytis_Eclipse

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2729 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, mačiau gerbiamas Orintas sukūręs pamoką panašią, tai nuspręndžiau parašyti panašią, bet šiuo metu aktualesnę temą apie PDO registracija ir prisijungimą!

 

Pabandysiu viską aiškiai ir nuosekliai paaiškint, jeigu kas neaišku, kreipkitės per komentarus, pm ar skype(gytis98).

 

DĖMESIO! Aš neaiškinsiu, kaipo reikia įsikelti mysql failiukus ir panašius dalykus, nes tiesiog jeigu pradedat PDO, jūs tą jau turit mokėt, bet jeigu verkiant reikės, paaiškinsiu.

 

DEMOČia

 

1. Mūms reikės SQL failiuko, pagal kūrį talpinsime informacija! Išsaugojam pavadinimas.sql ir importinam į jūsų duomenų bazę.

DROP TABLE IF EXISTS `Vartotojai`;
CREATE TABLE `Vartotojai` (
  `id` int(11) NOT NULL auto_increment,
  `Vardas` varchar(50) character set utf8 collate utf8_lithuanian_ci NOT NULL,
  `Slaptazodis` varchar(50) character set utf8 collate utf8_lithuanian_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

2. Taigi nusprendžiau, jog pradėtumėt mokytis, reikia viską pateikti IMG, nes kitaip jus kopijuosit ir tiek. Taigi va jūms IMG.

 

KODAS: Čia

 

Įspėju jog viską rašiau pats iš galvos, šito pateikto kodo aš nepatikrinau, todėl jeigu pamatysit kokia klaikdelę, praneškit. Čia nėra jokių XSS apsaugų ir panašių dalyku, tiesiog PDO yra daug saugenis negu mysql, dėl sql injection. Taigi norėčiau jog mano pamokų be mano leidimo neplatintu, nelaikau savęs profesionalu, bet tuo pačiu ir ne durnas esu. Jeigu mano pamoka tau padėjo arba patiko, nepagailės +rep

 

Jeigu kam reikia mano kontaktų, skype: gytis98

Redaguota , nario Gytis_Eclipse
  • Teigiamai 4
Nuoroda į komentarą
Dalintis per kitą puslapį

 

 

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 3600)) {

        // Čia toks mano naudojamas kodas kuris žmogų atjungia jeigu jis nepadaro veiksmų per vieną valandą

        // Norint laiką nusistatyti tai viskas sekundemis, 3600 sekundžiu, 60 minučių arba 1 valanda

        session_unset();

        session_destroy();

    }

    $_SESSION['LAST_ACTIVITY'] = time();

įdomiai kodukas atrodo, reikėjo man panašuas dėl ONLINE skaičiaus padaryti, tai galiu padaryti kad pvž kas porą sec tikrintų, ir jeigu off tai tame pačiame if'e trinti iš list'o.. ? Tikrai veikia f-ciją..? Nes kažkaip nesigaudau, kur čia veiksmą fiksuoją ar kažką tokio, galėtum gal paaiškinti ;D ačiū

Nuoroda į komentarą
Dalintis per kitą puslapį

įdomiai kodukas atrodo, reikėjo man panašuas dėl ONLINE skaičiaus padaryti, tai galiu padaryti kad pvž kas porą sec tikrintų, ir jeigu off tai tame pačiame if'e trinti iš list'o.. ? Tikrai veikia f-ciją..? Nes kažkaip nesigaudau, kur čia veiksmą fiksuoją ar kažką tokio, galėtum gal paaiškinti ;D ačiū

 

Veikia taip. Vis užkrovus tinklalapį nustatai į dabartinį laiką, bet prieš tai tavo turimas laikas išsaugotas sesijoje yra patikrinamas ar nuo to laiko pradžios nepraėjo daugiau kaip nustatytų sekundžių, jeigu praėjo daugiau tų sekundžių, sunaikinu sesija ir taip žmogus atsijungia, prašau ;)

Nuoroda į komentarą
Dalintis per kitą puslapį

Veikia taip. Vis užkrovus tinklalapį nustatai į dabartinį laiką, bet prieš tai tavo turimas laikas išsaugotas sesijoje yra patikrinamas ar nuo to laiko pradžios nepraėjo daugiau kaip nustatytų sekundžių, jeigu praėjo daugiau tų sekundžių, sunaikinu sesija ir taip žmogus atsijungia, prašau ;)

aišku, ačiū. ;) Pagriebsiu f-ciją ;D

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 mėnesių...
  • Parašė po 2 metų...

Jokiu būdu nepalikit taip paprastai MySQL užklausos WHERE Vardas = '$vardas'. Žmogus tą kintamąjį gali pakeisti ir taip keisti ar ištrinti duomenų bazės duomenis. Reikia naudoti "prepared statements", kurios apsaugo nuo įsilaužimo:

$user_id = 1;
$stmt = $pdo->prepare("SELECT user FROM users WHERE user_id = :user_id");
$stmt->execute(array(':user_id' => $user_id));
$r = $stmt->fetch(PDO::FETCH_ASSOC);
echo $r['user'];

Taip pat nenaudokite SELECT *, nurodykite stulpelio pavadinimus, taip tik apkraunama daugiau sistema. Jeigu prikursit daug tokių užklausų, tai smarkiai sulėtės užklausų apdorojimo laikas. Labai gera svetainė yra stackoverflow.com, kurioje galit paklausti ir jums labai greitai atsakys.

Redaguota , nario Lukas ^.^
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2729 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...