Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

tobulindamas savo PHP žinias perkodavau vieną PHP pakvietimų sistemą.

Šioje pakvietimų sistemoje pakeičiau iš mysql_* funkcijų naudojimą į PDO (Tai pirmasis mano rimtesnis PDO darbas, tai gali būti šiek tiek klaidų). Kas nežino, tai naudojant PDO sql injekijų beveik neįmanoma padaryt.

Toliau padariau šiokią tokią nedidelę kaip ir apsaugą nuo proxy (Padariau, jog galima būtų užeiti į tą pakvietusio žmogaus nuorodą tik iš Lietuviško IP adreso). Šią pakvietimų sistemą dar žadu tobulinti.

 

----------------------------------

Pakvietimų sistema 1.0

----------------------------------

+ Įdėta minimali anti-proxy sistema

+ Vietoj mysql_* funkcijų pakeičiau į PDO funkcijas

----------------------------------

 

TO-DO:

- Pertvarkyti kodą, jog gražiau žiūrėtųsi.

- Padaryti tut, kaip įsirašyti pakvietimų sistemą.

- Sutvarkyti HTML dizaino klaidas

Pakvietimu sistema.zip

Redagavo Sprunkas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėl PDO galiu duoti patarimą, kad mažiau rašyti kodo, tai galima naudoti tiesiog:

$stmt = $db->prepare("SELECT * FROM table WHERE id=? AND name=?");
$stmt->execute(array($id, $name));

vietoj tavo rašymo:

$registruojam = $conn->prepare("INSERT INTO nariai (slapyvardis, ip) VALUES (:slapyvardis, :ip)");
$registruojam->bindParam(':slapyvardis', $slapyvardis);
$registruojam->bindParam(':ip', $ip);
$registruojam->execute();

 

Ir nesupratau kodėl mysql.php darai PDO prisijungimą ir mysql prisijungimą, ir dar index.php darai PDO prisijungimą :|

Redagavo Arvis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėl PDO galiu duoti patarimą, kad mažiau rašyti kodo, tai galima naudoti tiesiog:

$stmt = $db->prepare("SELECT * FROM table WHERE id=? AND name=?");
$stmt->execute(array($id, $name));

vietoj tavo rašymo:

$registruojam = $conn->prepare("INSERT INTO nariai (slapyvardis, ip) VALUES (:slapyvardis, :ip)");
$registruojam->bindParam(':slapyvardis', $slapyvardis);
$registruojam->bindParam(':ip', $ip);
$registruojam->execute();

 

Ir nesupratau kodėl mysql.php darai PDO prisijungimą ir mysql prisijungimą, ir dar index.php darai PDO prisijungimą :|

 

Tas tavo būdas yra man nepriimtinas, vietoj placeholderių naudot "?", nes man iš esmės taip yra patogiau rašyt, o ir, kai reiktų daug bindint parametrų tai lengviau būtų susimaišyt, nei dabar mano būdu rašant. O dėl to, kito, patarimo, tai pataisysiu :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nežiūrėjau į PHP, bet...

 

 


<div id="align_center">
<div id="align_center_inside">
<form action="" method="post">
<table class="login_table" style="text-align: left;">
<tr>

 

Argi kas taip daro? Jei jau naudoji DIV, nepainiok į tą reikalą TABLE ir nedaryk makalynės. Taip pat stenkis vengti style atributo naudojimo (viską stenkis daryti CSS faile). <font><b> ir keletas kitų parametrų jau seniai nebenaudojami. Žodžiu, front end labai netvarkingas.

 

P.S. Ignoruok jei ne pats kodavai HTML.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nežiūrėjau į PHP, bet...

 

 


<div id="align_center">
<div id="align_center_inside">
<form action="" method="post">
<table class="login_table" style="text-align: left;">
<tr>

 

Argi kas taip daro? Jei jau naudoji DIV, nepainiok į tą reikalą TABLE ir nedaryk makalynės. Taip pat stenkis vengti style atributo naudojimo (viską stenkis daryti CSS faile). <font><b> ir keletas kitų parametrų jau seniai nebenaudojami. Žodžiu, front end labai netvarkingas.

 

P.S. Ignoruok jei ne pats kodavai HTML.

 

Dėkui, kad pranešei apie šią klaidą, kai pabaigsiu svarbesnius darbus, būtinai pasistengsiu pataisyt :).

P.S Taip, ne aš kodavau, aš tik pagrinde tik perkuriau funkcijas, ir įdėjau mini anti-proxy ir tiek

Redagavo Sprunkas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

toks kodas tai pykina mane :D, kodel tu viska spausdini viduri php skaiciavimu, ir pazek kiek vietu html kodas kartojas...negeriau atlikti skaiciavimus visus, prisirkirt kintamiesiems pranesimus,o tada paciam gale isvedinet viska ka reikia.

pvz.:

<?php
$error = false;
// php kodo gabalas
$error = "Įvyko nenumatyta klaida!";
// php kodo gabalas
?>
tada apacioj 
<?php if($error): ?>
<div>
  <b>
      ...<?php echo $error;  ?>...
  <b>
</div>
<?php else: ?>
 // html kai viskas gerai be klaidu
<?php endif; ?>

 

vienu zodziu baisiai atrodo tas html spausdinimas tokiais kiekiais su echo...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu tamsta, nepyk, kažkokia mišrainė. Perėjai prie PDO, tai kodėl vis tiek sujunginėji vietomis query iš stringų, o ne prepared statementai, kodėl kviečiamos mysql_ funkcijos, kam ta clean() (vėl, prepared statements)?

 

$pakviete = $_GET['pakviete'];
// ...
$imamid = $conn->query("SELECT * FROM nariai WHERE slapyvardis = '$pakviete'");

Jau kad tik būtų „beveik neįmanoma padaryt SQL injekcijos“ su šituo kodu... :) Ar testavai tokį teiginį savo?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

dar po 6mėn pasidomėk github. O dabar dar kolkas.. tobulėk.

 

taip pat: tau reikia kurti biblioteką, ne visą svetainę. Niekas nenaudos kodo viso, žmonės ieško pluginų :) helperių, bibliotekų, modulių, kad tik palengvėtų darbas

 

P.S. aš ir turiu parašęs neblogą sistemėlę, tik pas mane ne pakvietimams, o email siuntimui, pasisharinsiu ir aš, taip pat bus pirma pasharinta tema todėl parašysiu apie tai temoje, galėsi pamatyti kiek daug tau dar trūksta. bet nesakau, kad blogai, aš ir nuo to pradėjau

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...