Pereiti prie turinio

zoltonas

Nariai
  • Pranešimai

    102
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    92.9%

zoltonas Pranešimai

  1. Jūsų kode parašyta, jei randa ką nors masyve $sk padaryti lygiu vienetui, o kadangi ciklas nepasibaigęs tai jis tikrina toiau, o jeigu toliau neberanda $sk padaro lygiu nuliui. Taigi rezultatas lygus "nėra".

     

    Šis turi veikti:

     

    $sk=0;   
    for ($i=0; $i<$msk-1; $i++)
    {
      if ($masyvas[$i]==$reikšmė)
      $sk++;
    }       
    
      if ($sk>0)
      echo "yra";
      else
      echo "nėra";

  2. Daug variantų gali būti. Visada reikia saugotis, o ne galvoti, kad kažkokia magija suveiks. Jei pas tave yra tiesiog

    pavadinimas | id 
    
    naujienos   | 1
    renginiai   | 2
    

    ir t.t., ir užklausi jau paėmęs tą id - tada gerai, vartotojas prie užklausos pats neprisilies. Jei užklausinėji pagal tą 'naujienos' žodį duomenų bazėje, tada nelabai. O turėk dar omeny tokius dalykus, kaip paiešką. :)

     

    Žodžiu, tavo URL struktūra yra joks ne pakaitalas būtinoms apsaugoms. Apskritai, visur, kur kažkas gaunama iš vartotojo, tu turi būti didžiausias paranojikas, turi mąstyti, kad kiekvienas jo įvestas simbolis gali būti nesaugus :)

     

    Bet juk jei bus siunčiama 'naujienos' ir nebus nieko rasta bus rodoma neegzistuojantis puslapis. Bet kokiu atveju reiks siūsti ar tai skaičių ar tai žodį, tai ką žodis gali padaryti blogiau?

  3. Kodo nematymas dar nieko nereiškia... SQL injekcija, XSS, CSRF, netinkami autentikacijos mechanizmai - visa tai ir dar daugiau puikiai galima atrasti iš išorės. Tikrai ne priežastis atsainiai žiūrėt į saugumą :)

     

    Bet su tais SQL injekcijomis gal nieko nepadarys, jei pas mane net sistemiškai nėra naudojamos nuorodos pvz.: index.php?id=2 Yra iškart naudojama pvz.: /naujienos ir tikrinama pagal juos kokį puslapį rodyt. Nežinau kodėl kitos TVS rašo pagal tuos id. Pavyzdžiui kad ir šio forumo nuoroda susidaro iš index.php?app=forums...&qpid=1924483, o aš kuriu TVS, kad tokie dalykai iš vis nebūtų naudojami, manau taip geriau. Bet gal kaip tik dar blogiau darau?

  4. 10 svarbiausių saugumo skylių. Nespecializuota PHP, tačiau svarbu suvokti pačias spragas, o ne kaip saugotis nuo jų būtent PHP.

     

    Dėkoju, kas dar turite kokių pasiūlymų?

     

    Kadangi tu pats rasei savo TVS tokiu atveju niekas kitas be taves to programinio kodo neturi ir negales isigilinti tiek, kad visas tas klaidas atrastu.

     

    Kas liecia pazeidziamumus tai dazniausiai pasitaikantys yra XSS ir mysql injection visi kiti "pazeidziamumai" gali buti tiesiog logines klaidos ar dar kazkas kaip pvz jeigu svetaineje galima ikelti nuotraukas o tavo scriptas leidzia ikelti netik nuotraukas, bet ir php failus na esme vnz aiski.

     

    Noredamas tapti geru programuotoju turi nebijoti klaidu, tu niekad neparasysi gero kodo neturedamas patirties. Vnz daryk tai ka darai o jeigu ir nulaus tai nulaus atrasi klaida ir daugiau jos nebekartosi.

     

    Netgi ir geriausi programuotojai palieka klaidas uz kurias poto reikia moketi nieko cia nepadarysi.

     

    Dėkui už palaikyma, bet dėl to, kad niekas nematys to kodo. Ištikrųjų nelabai taip bus, matote aš kai baigsiu kurti TVS, tai su juo kursiu svetaines pagal užsakymus, nes man tai bus lengviau, nei naudoti kitų sukurtus TVS. Taigi kai paplis šis TVS, tai bus galima įsigilinti į kodą ir tada jau bus daug svetainių su tuo TVS ir su tomis spragomis. Aišku aš sakau daug, o gal ištikrųjų tik kelietas, bet vistiek.

  5. Sveiki,

    Iškilo tos klausimas, nors ištikrųjų jis visuomet mane kamuoja kai mėginu sukurti kokią PHP svetainę visai nuo nulio. Taigi dabar esu susikūręs savo TVS, kuris turi jau pagrindines funkcijas, jau galima pasigaminti informacinę svetainę. Žadu šį TVS dar labai plačiai plėsti, bet galvoju, kad reikia neskubėti. Kadangi dabar yra taip, kad aš nežinau ar mano sukurtas TVS yra saugus, ar saugi prisijungimo sistema, ar tokiu būdų kokiu aš aprašau visas PHP funkcijas yra saugu ir panašiai, nes kad nebūtų taip, kad sukuri plačių funkcijų TVS, bet jis būna nesaugus ir reikia viską perašyti, ar to galima ir išvengti?

    O gal galbūt kas nors gerai išmano PHP ir galėtų mane pakonsultuoti? Ar bent šiek tiek padėti, pasakyti kur galima visą tai sužinoti?

     

    Iš anksto dėkoju.

  6. Sveiki,

     

    Turiu tokį visai nesusijusi klausimą su šio forumo temomis, bet:

     

    Gal žinote kokių dažų (geriausiai būtų purškiami) kuriais būtų galimą nudažyti rūbą ir jį išskalbus dažai nenusiplautų? Geriausiai būtų purškiami, nes norėčiau nudažyti tik tam tikras vietas, o ne visą rūbą.

  7. Sveiki,

     

    Parašiau kodą, kuris informaciją rašo į duomenų bazę. Bet informacija įrašomą nepilną, bet išprintinus ją rodo pilną.

     

    Kodas:

    $numeris = array("vienas", "du", "trys", "keturi");
    $s=0;
    $n=0;
    while($s<5){
    $s=$s+1;
    echo $numeris[$n].", ";
    mysql_query("UPDATE lentele SET numeris='".$numeris[$n].", '");
    $n=$n+1;
    }

     

    Iš: echo $numeris[$n].", "; rezultatas būna: vienas, du, trys, keturi

    Iš: mysql_query("UPDATE lentele SET numeris='".$numeris[$n].", '"); rezultatas būna: keturi

     

    Gal kas gali pasakyti, kas kode blogai yra, kodėl neįrašo į duomenų bazę pilnos informacijos, o tik galą?

  8. Sveiki,

    Turiu kodą, kuris rodo kiek liko iki tam tikro laiko. Bet, jis dabartinį laiką ima iš pačio kompiuterio per kurį atidarai tą failą ir nuo to laiko skaičiuoją iki to kurį įrašai. Bet ar būtų įmanoma padaryti, kad laiką imtu iš serverio ar iš dar kurnors, bet ne iš to kompiuterio, per kurį atidarai tą failą su laiku?

     

    Kodas:

    <script type="text/javascript">
    function cdtime(container, targetdate){
    if (!document.getElementById || !document.getElementById(container)) return
    this.container=document.getElementById(container)
    this.currentTime=new Date()
    this.targetdate=new Date(targetdate)
    this.timesup=false
    this.updateTime()
    }
    cdtime.prototype.updateTime=function(){
    var thisobj=this
    this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
    setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
    }
    cdtime.prototype.displaycountdown=function(baseunit, functionref){
    this.baseunit=baseunit
    this.formatresults=functionref
    this.showresults()
    }
    cdtime.prototype.showresults=function(){
    var thisobj=this
    var timediff=(this.targetdate-this.currentTime)/1000 
    if (timediff<0){
    this.timesup=true
    this.container.innerHTML=this.formatresults()
    return
    }
    var oneMinute=60 //minute unit in seconds
    var oneHour=60*60 //hour unit in seconds
    var oneDay=60*60*24 //day unit in seconds
    var dayfield=Math.floor(timediff/oneDay)
    var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
    var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
    var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
    if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
    hourfield=dayfield*24+hourfield
    dayfield="n/a"
    }
    else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
    minutefield=dayfield*24*60+hourfield*60+minutefield
    dayfield=hourfield="n/a"
    }
    else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
    var secondfield=timediff
    dayfield=hourfield=minutefield="n/a"
    }
    this.container.innerHTML=this.formatresults(dayfield, hourfield, minutefield, secondfield)
    setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
    }
    cdtime.displaycountdown()
    function formatresults(){
    if (this.timesup==false){
    var displaystring=arguments[2]+" min. "+arguments[3]+" sek.<br> liko iki Liepa 7, 2011 17:00:00"
    }
    else{var displaystring="Laikas baigesi!"}
    return displaystring
    }
    </script>
    <div id="laikrodis"></div>
    <script type="text/javascript">
    var futuredate=new cdtime("laikrodis", "July 7, 2011 17:00:00")
    futuredate.displaycountdown("days", formatresults)
    </script>

  9. Sveiki, iškilo toks klausimas:

    Kai užregistruoji domeną pvz. ant IV, tada nusiperki hostą ir tą domeną priregistruoji prie to hosto. Tame hoste gali susikurti el. pašto dėžutę, pagal tą domeną kurį priregistravai. Bet ar eitų jei aš į kompą instaliuoju Apache, tada IV nustatau domeną, kad jungtųsi į mano kompą, ir savo kompiuteryje susikurti pašto dėžute pagal tą domeną?

  10. uzejus i nuoroda scriptas istraukia is duombazes laika, ji sumazina ir ikelia sumazinta laika i duombaze su UPDATE funkcija. o kada atvaizduot: pries atnaujinima ar po atnaujinimo cia jau tau spresti.

     

    Kažkaip kvailai pasijaučiau, kažką galvojau daryti su while funkcija, o juk galima taip paprastai... :D Kažin kodėl pačiam to nepavyko suprast :D

  11. reik irasinet duomenis i faila arba duombaze ir per kiekviena uzejima sumazint

     

    Tai aš ir žadu įrašyti į duombazę, bet kaip padaryti, kad nerašytų išvien to 15 ir 00. Kaip padaryti, kad rašytu vis mažesnius skaičius?

  12. Sveiki,

    Norėčiau sužinoti kodą. Pvz. kad kai užsikrauna failas laikas.php jame $minutes būtų priskirtos sakičiui 15, o $sekundes skaičiui 00:

     

    <?php
    $minutes = 15;
    $sekundes = 00;
    ?>

     

    Jei išnaujo ateini arba tiesiog atnaujini laikas.php failą rašytų jau taip:

     

    <?php
    $minutes = 14;
    $sekundes = 59;
    ?>

     

    Ir taip vis mažėtų iki tol kol $minutės ir $sekundės būtų 00.

  13. Tai pasidaryk, negi sunku?

     

    till = new Date('Jul 1 2011')
    function count(){
       //liko laiko sekundėmis
       time = parseInt((new Date('Jul 1 2011') - new Date()) / 1000)
       //laiką kišame į body:
       hours = 0
       minutes = 0
       while(time>3600){
          hours = hours + 1
          time = time - 3600
       }
       while(time>60){
           minutes = minutes + 1
           time = time - 60
       }
       document.body.innerHTML = hours + " : " + minutes + " : " + time
       setTimeout(count, 1000)
    }
    

     

    Toliau darykis pats...

    Dėkui labai :)

  14. till = new Date('Jul 1 2011')
    function(){
       //liko laiko sekundėmis
       laikas = parseInt((new Date('Jul 1 2011') - new Date()) / 1000)
       //laiką kišame į body:
       document.body.innerHTML = laikas
       setTimeout(count, 1000)
    }
    count();
    

    Kaip suprantu rezultatą rodo count(); arba kažkas kitas...

    Tai kaip įršyti php kode, kad rodytų tą laiką?

  15. Tai nori įrašyt laiką nuo kurio skaičiuoju tarkim šiandieną ir nurodyt, kad skaičiuotų iki poryt? Tai ką tada skaičiuos? Fiksuotas dvi dienas?

     

    Reiktu kad skaičiuotų pvz nuo 2011/06/30 17:07:00 iki 2011/06/30 18:37:00.

     

    arba

     

    Kad skaičiuotų, pvz nuo 10min/25sec ir iki 0min/0sek.

  16. Sveiki,

    Turiu kodą, su kuriuo laikas eina atgal parašius laiką iki kurio reikia skaičiuoti:

     

    <script type="text/javascript">
    function cdtime(container, targetdate){
    if (!document.getElementById || !document.getElementById(container)) return
    this.container=document.getElementById(container)
    this.currentTime=new Date()
    this.targetdate=new Date(targetdate)
    this.timesup=false
    this.updateTime()
    }
    cdtime.prototype.updateTime=function(){
    var thisobj=this
    this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
    setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
    }
    cdtime.prototype.displaycountdown=function(baseunit, functionref){
    this.baseunit=baseunit
    this.formatresults=functionref
    this.showresults()
    }
    cdtime.prototype.showresults=function(){
    var thisobj=this
    var timediff=(this.targetdate-this.currentTime)/1000 
    if (timediff<0){
    this.timesup=true
    this.container.innerHTML=this.formatresults()
    return
    }
    var oneMinute=60 //minute unit in seconds
    var oneHour=60*60 //hour unit in seconds
    var oneDay=60*60*24 //day unit in seconds
    var dayfield=Math.floor(timediff/oneDay)
    var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
    var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
    var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
    if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
    hourfield=dayfield*24+hourfield
    dayfield="n/a"
    }
    else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
    minutefield=dayfield*24*60+hourfield*60+minutefield
    dayfield=hourfield="n/a"
    }
    else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
    var secondfield=timediff
    dayfield=hourfield=minutefield="n/a"
    }
    this.container.innerHTML=this.formatresults(dayfield, hourfield, minutefield, secondfield)
    setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
    }
    cdtime.displaycountdown()
    function formatresults(){
    if (this.timesup==false){
    var displaystring=arguments[2]+" min. "+arguments[3]+" sek.<br> liko iki Birželio 30, 2011 17:00:00"
    }
    else{var displaystring="Laikas baigesi!"}
    return displaystring
    }
    </script>
    <div id="countdowncontainer"></div>
    <script type="text/javascript">
    var futuredate=new cdtime("countdowncontainer", "June 30, 2011 17:00:00")
    futuredate.displaycountdown("days", formatresults)
    </script>

     

    Problema yra ta, kad aš noriu, kad laiką skaičiuotu ne nuo dabar rodomo laiko, bet nuo mano įrašyto laiko. Kaip tai padaryti?

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