Jump to content
php.lv forumi

usver

Reģistrētie lietotāji
  • Posts

    51
  • Joined

  • Last visited

Everything posted by usver

  1. Savām acīm esmu redzējis dažādu PDF failu vienādus hašus (neatceros, kam to vajadzēja, bet tika ģenerēti). Skenētās pavadzīmes, kas tajā uzņēmumā ienāca vismaz daži desmiti dienā, vairāku gadu krājumi. Kaut kā neiedomājos nofiksēt PoC, tik pabrīnījos, līdz ar to pierādījumu uz rokas nav, bet personīgā pārliecība ir.
  2. Mēģinu updeitot/pievienot ierakstus Paradox datubāzē. Jaunā datubāzē raktīt izdodas perfekti - uztaisam DB no nulles, ievietojam visu, ko vien vēlamies. Esošai neizdodas ierakstīt neko ne sitamai. Lasīt var perfekti jebko. Pievienojot ierakstus, šī rindiņa var_dump(px_put_record($this->doc, $rec)); atgriež "true", kas nozīmē veiksmīgu ierakstu. Arī DB izmērs pie mēģinājumiem pieaug, tātad kaut kas tomēr rakstās. Bet nolasot datus, nekas nav mainījies. BET - mēģinot norādīt esošas rakstīšanai //px_set_parameter($this->doc, "tablename", "resttemp.DB");, tā paziņo: "Setting tablenams has no effect - DB is not writable". Faila atvēršanai ir izmēģināti dažādi sviči: r+/rb+, a+/ab+. Rezultāts identisks. Vide: XAMPP 1.7.1 iekļautais Paradox php ekstensija, pxlib versija: 0.6.3 (pēdējā). Paradox 7 DB, tas pats ar Paradox 5 failiem. Borland DBA ir instalēts (5.01). XP SP3 (ar pēdējiem dzīvajiem MDAC), taču ODBC datubāzi neizdodas nolasīt. izvilkums no phpinfo(): Paradox support enabled pxlib Version 0.6.3 support for recoding record data iconv pxlib was build on no value Revision $Revision: 1.37 $ Vai kādam ir idejas/risinājumi/ieteikumi šādām lietām? Datubāze ir Paradox 7, pēc 10 gadu Paradox+Delphi izstrādes migrēt uz ko citu programmētājs atsakās. Avārijas gadījumā laikam nāksies veidot Delphi utilītu, kas batch modē updeitos savu Paradox datubāzi. Izmantotais kods: if(!file_exists($filename)){ $newfile = true; $this->fp = fopen($filename,'w'); } else { $this->fp = fopen($filename,'a+'); } if(!$this->fp){echo 'could not connect to database '.$filename.'!<br>'; return;} ###### Datu ierakstīšana jaunā failā- strādā OK :) if($newfile) { $fields = array(array("col1", "S")); if(!px_create_fp($this->doc, $this->fp, $fields)) { echo 'neizdevās piesaistīt failam .. ';} px_set_parameter($this->doc, "tablename", "testtable"); px_set_parameter($this->doc, "codepage", "1257"); for($i=0; $i<5; $i++){ $rec = array($i); px_put_record($this->doc, $rec); } } else { if(!px_open_fp($this->doc, $this->fp)){echo 'could not initialize database '.$filename.'!<br>';return;} } ##### Datu pievienošana esošam failam if(!$newfile) { //var_dump($this->doc->px_stream); //px_set_parameter($this->doc, "tablename", "resttemp.DB"); //for($i=1; $i<=5; $i++) //{ $rec = array("993","8349",0,0,1,0,"Ilze","Lampina","Ilze Lampina"); $inf = px_get_info($this->doc); //px_put_record($this->doc, $rec, -1); var_dump(px_put_record($this->doc, $rec)); //} } Destruktorā ir šādas rindas: function __desctruct(){ px_close($this->doc); px_delete($this->doc); fclose($this->fp); } Izmēģināt ar un bez px_delete(), rezultāts nemainās.
  3. if($users['xp'] < $lvl1) { $lvl = 1; } elseif($users['xp'] < $lvl2) { $lvl = 2; } elseif($users['xp'] < $lvl3) { $lvl = 3; } elseif($users['xp'] < $lvl4) { $lvl = 4; } elseif($users['xp'] < $lvl5) { $lvl = 5; } elseif($users['xp'] < $lvl6) { $lvl = 6; } elseif($users['xp'] < $lvl7) { $lvl = 7; } elseif($users['xp'] < $lvl8) { $lvl = 8; } elseif($users['xp'] < $lvl9) { $lvl = 9; } elseif($users['xp'] < $lvl10) { $lvl = 10; } Nu i nafik audzināt šitādu koda rakstības stilu. Tādi palagu koderi jāaudzina, kamēr maziņi :) vajag prasti, ērti, papildināmi: $levelis = get_data("select ID FROM user_xp_levels WHERE level_points <= $users['xp'] ORDER BY level_points DESC limit 1;"); echo 'jūzerim ir '.$levelis['ID'].' līmenis<br>'; Datubāzē vaidzēs tabulu, kur glabājas visi līmeņi: [ ID ][ level_points ][ title ] --------------------------------- [ 1 ][ 0 ][ n00b ] [ 2 ][ 100 ][ novice] .. [ 10 ][ 10000 ][ wizard] Viss ērti, smuki, datubāzē maini ko gribi taitļus/punktus, un tikai 2 rindiņās :)
  4. Ventspils augstskola, ja nelaiž gurķi, pirmajos gados bija ļoti OK. Vismaz programmēšanas, linukši un matemātika bija līmenī. Ja vēl Hiļkevičs bīda kaut kādus projektus, tad vispār ideāla vieta, kur mācīties cirst zivi ;> Pietrūka: normālu lielo datubāzu (tik 1 kurss - mysql ievads), elementāras projektu vadības, normālu UMLu. arī modelēšana kā iekš RTU nekaitētu.
  5. taisnība - virtualhosts palīdzēs. 1) uztaisi jaunu virtualhostu skola.localhost, norādi, ka tā direktorija ir [tava-www-foldera-adrese]\Test, piemēram 2) drošībai uzraksti notepad %WINDIR%/System32\drivers\etc\hosts , ievieto tur jaunu rindiņu 127.0.0.0 skola.localhost 3) turpmāk prasīsi http://skola.localhost - vērsies vaļā tieši Test folderis.
  6. stipri vienkāršs - CutePHP, visu saglabā failiņos. man jau liekas, ka vienkāršāk ir vienreiz uzrakstīt savu klasi un tad izmantot, kur vien vajag. 1 klasi jaunumiem + 1 galerijai, 1 - viesu grāmatai, teiksim. Bōnusi - iespēja kustomizēt, pievienojot papildus aizsardzību pret spambotiem. :)
  7. 1x lapas sākumā izsauc mb_internal_encoding("utf-8"); un jebkur citur substr() vietā lieto funkciju mb_substr() ar tādiem pašiem parametriem.
  8. Pilnīgāka informācija postēta blakus forumā: http://www.boot.lv/forums/index.php?/topic/117255-meklejam-php-programmetaju/ nekādā veidā neesmu saistīts ar šo sludinājumu.
  9. Nejauc melno darbu ar tādu, kur vispirms ir jāpadomā, pirms mesties rakstīt kodu. Ir gana daudz cilvēku, kas ir "iemācījušies pēhāpē" un nu meklē darbu šajā nozarē, neizslimojot bērnu slimības (minēto spageti kodu, specgadījumu pārbagātību, intensīvu globāļu un $_SESSION izmantošanu) uz dažām savām sistēmām. Kad lielā projektā paskaties uz melnstrādnieku rakstītu kodu, tad jāsecina, ka figņa vien sanāk, jo uzturamība ta pazūd. Netici? Paskaties kādu sistēmu, kur pāri gājuši 10 programmētāji, ja kādreiz tiec tādai klāt. Ja mūsu darba devēji tiks pie iespējas algot indusu tūkstošus, ar garantiju būs jāiziet cauri 2 fāzēm: 1) Ōōōōō - reāls php programmētājs tikai par 200Ls mēnesī? Davai! Davai desmit viņus! Fiksāk sataisīsim projektu!! 2) Kāda mārrutka pēc visi baltie programmētāji krīt izmisumā un manās projām, kad man vajag mazliet pārtaisīt projektu, kurā PHP kods aizņem tikai 20 megabaitus? Aiziet - ja darba devēja redzesloks aprobežojas ar vizītkartes lapiņām un uz osCommerce balstītiem internetveikaliem, kuru izstrāde ilgst pāris dienas .. pāris nedēļas, tad droši var algot iesācējus, kas prot galvenokārt <? include("aboutus.php"); ?> (jā, ar īsajām iekavām). Tie prasīs mazāku algu. Lielākām sistēmām, kuru izstrāde ilgst gadiem, ar iesēcējiem būs stipri par īsu, bet speciālisti, kuri neapmulst pie prasības uzrakstīt sistēmas pluginu citā valodā, par 250Ls/mēn diez vai strādās.
  10. Grey_Wolf: Es sapratu, ka šajā gadījumā runa ir par atrašanos darbā visu dienu, ja reiz klientu suporta, sisadmina pienākumi (man te zilais Internets pazuda no desktopa un maili vairs nenāk). Protams, ja diena nav jāatsēž, tad cita lieta. Ja cilvēks sēž un šūpo kājas, reizi pa reizei atverot editoru un kaut ko sīku pielabojot "pieraksti klāt pie klientiem SIA 'xxx', viņi pie mums kaut ko pasūtīja", tad haļava uz pusslodzi par 250Ls/mēn ir ļoti laba alga, jo sevišķi, ja darbinieku aiz rokas neviens nerauj strādāt pa vismaz 8 simtiem. Ja tā ir alga par pilnu slodzi kādam, kas " atnāks strādāt pa 250 Ls uz rokas ar 5 gadu pieredzi", tad tā ir ņirgāšanās.
  11. Manuprāt piecos darba gados cilvēkam obligāti būtu jāprot uzstādīt/dancināt linuksi/bsd/windows tā, ka sisadmins priekš tā nav jāmeklē risināt visdažādākās problēmas ar vebu, piem kāpēc uz Vistas neiet WebDAV aplikācija izstrādāt sistēmas integrāciju ar dažādām citām DBVS, ne tikai mysql, spēt izpildīt sistēmas arhitekta vietu pie kādas lielas sistēmas izstrādes, lai varētu uzrakstīt PPA praktiski dajebkam, ar pirkstu parādot, kur kas jāieraksta, lai viss organiski darbotos lielā sistēmā. spēt izstrādāt PHP sistēmas papiildinājumus kā desktop aplikāciju vai bibliotēku Javā/Delphi vai DLL un VBA maisījumā, ja tas ir nepieciešams. Piemēram, reģistrējot sistēmā mailus no autluka spēt žigli integrēt, teiksim, Hordi vai citu lielu sistēmu savā PHP aplikācijā. esmu redzējis "vecākos programmētājus", kas ar 7 gadu programmēšanas stāžu spēj labi ja PPS dažos teikumos uzrakstīt, taču tos neuzskatu par programmētājiem - tie ir viduvēji skriptkidiji. Vai arī saņem savu algu par neko. 5 gados var iemācīties DAUDZ vairāk, nekā tikai veblapiņas štancēt uz jūmlas. Vai Tu uzskati, ka tā visa ir 250ls vērta kvalifikācija? Ja nē - cik spējīgu tad Tu iedomājies PHP programmētāju? 250Ls uz rokas var prasīt tikai cilvēks, kas 5 gadus ir taisījis http://www.ekomajas.lv/lv/parmums/ ķapļap stila lapas un neko vairāk neprot vai pamatskolnieks, kas iemācījies Hātēemelu un nu cērt augšā lapiņas par 50Ls/gab frontpeidžā. Vai cilvēks pilnīgā izmisumā - "ka tik darbs, lai tikai līzingu var nomaksāt par šo mēnesi".
  12. usver

    Datu aizsardzība

    Ja ar salt saprot tikai papildus stringa pielikšanu, tad es ieteiktu labāk izmantot tā vietā sha1. Vai domāji šādu tehniku? md5($klientaparole.'saltastrings'); Priekš md5 ir tik daudz bruteforce tūļu + rainbow tables saģenerētas, ka vienkāršās paroles var sameklēt bez ilūzijām. Ar sha1(sha1( .. )) vismaz būs drošāk, ka klientu universālās paroles tik lēti neuzzinās. Drīkst. Fizisko personu datu aizsardzības likumā tā ir noteikts. Tikai vispirms personas piekrišanu vajag + reģistrēt šo DB valsts iestādēs. http://www.likumi.lv/doc.php?id=4042 AFAIK ar to nodarbojas Datu Valsts inspekcija.
  13. usver

    NTLM logout

    aha, no hederiem var dabūt domēnu/jūzeri, taču par autentifikāciju parūpējas Apache modulis "mod_ntlm" un .htaccess ar "require valid-user". Tas, kāda ir jūzera parole, PHP aplikāciju neinteresē, ka tik ir ielogojies. Paldies, es no sākuma ieliku jau Tavu kodu, un tas strādā. pļurgāšanās izpalika ;> Pilnai laimei jāsaprogrammē vēl pārējā sistēma. Paldies, jū seivd mai dei ;)
  14. usver

    NTLM logout

    Kodu pārbaudīju - paldies, tas tiešām dara to, kas vajadzīgs. Padod vajadzīgo hederi un prasa ielogoties kā valīdam jūzerim. Un - kods ir balstīts uz to pašu $_SERVER['PHP_AUTH_USER']. Vai sanāks eleganta jūzera nomaiņa līdz ar sesiju, atbilstošu sistēmāi, to vēl nezinu. Kad varēšu priecīgi mētāt roķeles pa gaisu un spiegt nebalsī, tad arī atzīmēšos, kā sanāca :)
  15. usver

    NTLM logout

    1) preved, endrju :) 2) aah, paldies, ka atgādināji - Sharepoint mums te ir pieejams, palūrēšu, kas notiek pie jūzeru maiņas. :)
  16. usver

    NTLM logout

    Izveidots brutālais variants: <a onClick="if(confirm('Drošības nolūkos Jūsu pārlūks tiks aizvērts.\nVai aizvērt?')){ window.close(); }">[bildīte]</a>
  17. usver

    NTLM logout

    Kā izlogot lietotāju, kad tas ir pārlūkā autentificējies ar NTLM? Ir izveidota Single Sign-On sistēma - domēnā ielogots lietotājs ar NTLM palīdzību tiek automātiski atpazīts PHP sistēmā. Ja viņš nav ielogojies Windows domēnā, tad izlec lodziņš un pieprasa ievadīt domēna jūzeri/paroli. Visa ielogošanās smuki notiek, taču - kā lietotāju izlogot? 0_o IE: document.execCommand('ClearAuthenticationCache'); // nestrādā. gan ar, gan bez 2. parametra IE: Tools -> Internet Options -> Content -> poga "Clear SSL State" // nestrādā Mozilla: about:logout?protocol=http&domain=* // nestrādā header("WWW-Authenticate: Basic realm=\"COMPANY\""); header("HTTP/1.0 401 Authorization Required"); // šis izmet lodziņu, taču, ja tajā neko neievada/atceļ - lietotāja sesija turpinās, itkā nekas nebūtu bijis esmu mērenā izmisumā, ka nestrādā labi itkā zināmās lietas - lūdzu, palīdziet. :>
  18. 1) lieto mysql_real_escape_string(), piem $email = mysql_real_escape_string($_POST['email']);, savādāk tava sistēma būs caurstaigājama ( varēs ienākt katrs, kam nav slinkums). 2) "UPDATE users SET email='$email', name='$name', surname='$surname' WHERE username='$username'";
  19. usver

    drošība

    vienkārši: kad datus izmanto HTML elementos (selektos, utt) izmanto htmlspecialchars() - tas pasargās no tā, ka cilvis mēģina bakstīt kaut ko tādu: index.php?param=><script>alert('hello');</script> ieliekot iekš DB: izmanto mysql_real_escape_string(), lai nodrošinātos pret to, ka cilvis baksta kaut ko tādu kā ' OR 1=1-- kad datus velc ārā no DB: tāpat izmanto stripslashes(htmlspecialchars($teksts)); vai vienkārši htmlspecialchars(); papildus noderīga lieta, ar ko pārbaudīt komentārus pret spamu - jo spameri sarodas ar laiku: function contains_badwords($string){ $string = strtolower($string); $bads = array('viagra','cialis','porn','lesbian','gay','<a href='); // sliktie vārdi foreach($bads as $badword){ if (false !== strpos( $string, $badword)){ return true; } } return false; } Lietojums: if (contains_badwords($_POST['komentars'])){ die('ej ka tu nafik, spameri!'); } un vispār - sveika, renathy :)
  20. darbu atvieglo sesiju tabula (jo risinājums ir intranet un tā tur dzīvo jau ilgi). identifikators, lai atjaunotu sesiju tiek pieglabāts JS variablī pie klienta starp 2 pieprasījumiem, nekur citur. Tas ir session_id+sha1( session_id() + {id_no_sesiju tabulas, ko neviens cits nevar zināt} ). ja klients atgriež valīdu čeksummu - tiek atjaunota sesija. ja iztek laiks vai invalīdus datus grūž - tad nav arī cepumiņu. ideālā variantā: pielikt remote_addr un http_user_agent pārbaudi klāt.
  21. Izvēlētais risinājums tādai lietai: *) klientam no servera pieprasīt savas sesijas identifikatoru, pēc kura viennozīmīgi var atpazīt sesiju *) izsaukt klientam to pašu ClearAuthenticationCache *) atjaunot klienta sesiju, padodot identifikatoru, atjaunojot arī session_id() un datus kukijā. Brutāli, bet darbojas.
  22. Ir nodibināta HTTPS sesija ar Internet Explorer un Ajax, autentificējoties ar sertifikātu. Pēc minūtēm 20mit remūtais serveris (ar kuru notiek background konekcijas un kuru nevar ietekmēt) pasaka, ka "403 - mēs tevi vairs nepazīstam, ej nafik!". Vēlamais efekts: lai autentifikācijas lodziņš ar sertifikāta izvēli parādītos vēlreiz (kas nozīmētu jaunas sesijas nodibināšanu), taču šķiet, ka to nevar izsaukt mākslīgi. Vienīgais variants, kā izsaukt šo lodziņu atkārtoti, ir restartēt IE VAI nospiest podziņu "Tools->Internet Options->Content => Clear SSL State, kas pārtrauc HTTPS sesiju. Internetā daudzās vietās tiek minēts šis analogs: <script type="text/javascript"> document.execCommand("ClearAuthenticationCache"); </script> Tas ir ļoti barbarisks, jo lietotājs tiek izmests vispār no visām atvērtajām lapām (patreizējo ieskaitot), un rezultāts maz atšķiras no IE pārstartēšanas. Vai kādam ir zināms programmisks analogs pogas "Clear SSL State" spiešanai? Noderētu visa veida IE-only javascript, vbscript risinājumi.
  23. ja tas ir 1 aplikācijas ietvaros ( cilvēki gadiem tavu lapu lietos ikdienā), tad atmaksājas likt šito pie trusted sites - lai viņš dara visu uz nebēdu. ja ir tāda ņemtne ar parastu weblapiņu, tad paprasi, lai PHP servera pusē visu atjauno un parāda javaskriptam.
  24. to visu var izdarīt ar JavaBridge. strādā gan xp vidē uz kodera kompja (manējā), gan win2k3 servera, gan debian servera.
  25. usver

    cron jobs

    cron job - а это ещё куда? :) ja ir kāds esošs UNIX serveris, tad var izvirst un tam caur "crontab -e" ielikt, lai viņš ar wget periodiski izsauc skriptu uz windows servera.
×
×
  • Create New...