Jump to content
php.lv forumi

bubu

Administratori
  • Posts

    8,897
  • Joined

  • Last visited

Everything posted by bubu

  1. LU vairs nesāk ar paskālu. Sāk uzreiz ar C++. Diemžēl. Un HTML ir tikpat liela programmēšanas valoda, cik MS Word.
  2. Es gan neteiktu sākt ar C++ (tā ir drausmīga valoda, ja grib tiešām C++ stilā programmēt). Bet visādi citādi piekrītu codez'a teiktajam. Programmēšanas pamatus apgūt PHP nav tas labākais. Labāk sākt ar kādu statisku tipu (static typing) valodu.
  3. bubu

    Ka uzinstelet?

    Lūdzu netaisi atkārtotus postus par to pašu. Te viss notiek pēc brīva prāta - ja kādam būs kas sakāms, tad tas to tev pateiks. Šeit nevienam nav pienākums sniegt atbildes uz visiem jautājumiem - viss balstās uz brīvprātīgu dalību forumā. Un tavs skripts izskatās pēc kautkā ļoti specifiska, ar ko nevienam visdrīzāk nebūs vēlmes krāmēties. Tev vislielākās iespējas dabūt palīdzību būs tajā vietā, kurā dabūji šo skriptu. Vai arī uzrakstot tā skripta autoram lūgumu palīdzēt.
  4. Ne php uz tava servera, ne JS nav un nebūs pieeja lietotāja datora cietajam diskam. Tas būtu pamatīgs drošības caurums, ja būtu tāda iespēja. Ja to tik vien tev vajag, kā tikt klāt JS ģenerētajam contentam (tekstam, hipersaitēm), tad to visai viegli ir izdarīt par pašu JS. Lieto DOM funkcijas, atrodi lapā vajadzīgo html elementu (saiti) un izdabū no tā visu informāciju ārā. Vai arī otrs variants - atver to adsense javaskriptu, lasi kodu un saproti ko un kā šie tur ģenerē. Un pēc tam identisku darbību veic ar savu php/js kodu. zirgs22: referreri "viltus" pieprasījumā vilto ar parastu HTTP Referrer headeri. Ar curl'u tas darās šādi: curl_setopt($ch, CURLOPT_REFERER, "http://xxx.yy/referrera/urlis");
  5. Prātīgāk ir strukturēt kodu tā, lai tu to zini jau lapas sākumā, pirms jebkāda izvada: <?php ... // apstrādājam $_GET/$_POST mainīgos un uzstādam $kautkas par True, ja vajadzēs redirektu if ($kautkas) { header("Location: ... "); die(); } ... // lapas html koda izvads ?>
  6. SELECT Category, COUNT(*) FROM products GROUP BY Category Sevis paša labuma dēļ padomā vai tiešām gribi tādu DB struktūru. Daudz prātīgāk būtu taisīt divas tabulas: Kategorijas (id, nosaukums) - kurā likt iekša tos Category tekstus: auglis, dārzenis, oga, ... Produkti (id, nosaukums, kategorijas_id) - kurā likt iekšā tos visus produktus (ābols, apelsīns, ..) ar atbilstošu kategorijas id vērtību (integer skaitlis).
  7. Ar pārraides ātrumu nav jau problēmu. Manā skatījumā lielākā problēma ir lags līdz turienei. Labākajā gadījumā dabūsi ap 100ms (man tas gadās dažreiz dažās "īpašās" dienās). Vidēji tā ~150ms var dabūt. SSH konsolē drusku neērti ir, bet var pierast. Bet endūseriem tas mājaslapu vēršanās laiku ihmo īpaši neietekmē.
  8. Neliekas dīvaini apšaubīt to, kas rakstīts manuālī? :) include Warning'us var atslēgt, lai nerāda nekādus paziņojumus. Ieliec skripta sākumā: error_reporting(E_ALL); ini_set("display_errors", 1); Tad redzēsi visus kļūdu/warningu/notice paziņojumus.
  9. Vispirms sāc ar to, ka atrodi konkrētu vietu kodā, kur notiek kļūda un viss apstājas. Tam lieto JS debugeri, vai vienkāršākajā gadījumā pats jau pateici - error konsoli. Firefoksim to atver ar Ctrl+Shift+J (zem Tools meņu). Kad atradsīsi konkrēto vietu, tad pārbaudi mainīgo vērtības - vai tās atbilst tam, ko sagadi. Utt.
  10. Tas nu gan nav tiesa, Grey_Wolf. Gan ar include, gan ar require var dabūt return vērtību. Šajā ziņā abi strādā vienādi. require no include atšķirība ir, ka pirmais izmetīs fatālu kļūdu, ja fails neeksistē. Otrais tikai warningu. Ko btw var visai skaidri izlasīt manuālī.
  11. Tāpēc, ka rakstot: include("example.txt"); include("example.txt"); saturs tiks iekļauts divas reizes. Turpretī rakstot: include_once("example.txt"); include_once("example.txt"); tas iekļausies tikai vienu reizi (pirmo).
  12. Kukiji ir tik pat droši kā sesijas. Tie abi balstās uz principu, ka lietoājam jāidod kāds unikāls identifikators, kurš tiks padots atpakaļ uz severi pie nākamā http pieprasījuma, tādējādi identificējot lietotaju.
  13. Nevajag skatīties un brīnīties, vajag lasīt :) http://lmgtfy.com/?q=what+is+php+framework PHP freimworki ir tas pats, kas freimworki jebkurā citā valodā. Tās ir gatavas bibliotēkas, kas ļauj vienkāršāk/ērtāk risināt konkrētas problēmas/situācijas, nekā tās būtu jārisina ar plikām valodas iespējām.
  14. bubu

    MySql dump

    Kas tieši tev tur nepalīdz? Ieraksti konsolē: mysql.exe -u username -p db_name < dump.sql un viss notiksies. db_name var arī nerakstīt, ja tev tajā dumpā ir datubāzes USE steitments.
  15. bubu

    MySql dump

    Un kāpēc tu domā, ka imports nav noticis?
  16. bubu

    MySql dump

    Un vai tad tas visu neizdara kā vajag?
  17. bubu

    unlock MD5

    Tu nesaprati, ko Aleksejs tev gribēja pateikt. To domā, ka ja tev ir $passwod = "mamma"; tad kods, kas saglabā paroles hešu datubāzē/failā izskatās šādi: $password = "mamma"; $hash = md5($password); write_to_db($hash); Tas nav pareizi! Normalā softā tā neviens nedara! Tur parasti ir šāds kods: $salt = "ASDQ*P({A1982749ASDLHNL)(!(@*^$@#&*("; $password = "mamma"; $hash = md5($salt . $password); write_to_db($hash); Respektīvi tur hašs tiek rēķināts no stringa "ASDQ*P({A1982749ASDLHNL)(!(@*^$@#&*(mamma" nevis vienkārši "mamma". Tagad iedomājies tu dabū savu hašu 123ABCDE3711...FFE123D. Un tad tu liksi tajā DB meklēt šo hašu. Bet DB ir jābūt iekšā stringam "ASDQ*P({A1982749ASDLHNL)(!(@*^$@#&*(mamma" lai atrastu šo hašu. Vienkarši uz "mamma" tur būs pavisam cits hešs, kurš neatbildīs tam kā softs rēķina hašu no paroles. Kā redzi, ja katrs softs izmantos savu unikālu sāli, tad nekādas DB tev nelīdzēs. Līdzēs tikai bruteforcēšana (pilnā pārlase), kura pie pietiekami gara sāls aizņems nenormāli ilgu laiku (miljoniem gadu).
  18. bubu

    unlock MD5

    Klez, nemaz tik ātri nevarēs. Patlaban pieņemamā laikā CPU var pārlasīt 6 simbolus. Ja izmanto GPU (videokarti) tad ap 7 simboliem. Katrs nākamais simbols aprēķinus paildzina ap 36 reizēm (ja ņem vērā tikai mazos burtus un ciparus) neatkarīgi no cpu jaudas. Ja tu 1 h laikā vari apstrādāt 7 simbolus. Tad 8 prasīs jau uzreiz 36h. 9 - vairāk kā pusotrs mēnesis. Paņemsi paroli kā 12-13 simbolus - un tev tā pietiks vēl vismaz uz gadiem 10 vismaz, lai CPU jauda nepietiktu to bruteforcēt. Tas protams, ja parole tiek tiešā veidā hašota bez salt'a - īstenībā ar salt'u sanāks vēl nereāli ilgāk.
  19. bubu

    unlock MD5

    Liela, vai ne-liela, tam nav nozīme. md5 hašfunkcijas rezultāta izmērs ir 128biti. Lai saglabātu visus iespējamos 160 bitu skaitļus būs nepieciešami divi pakāpē 88 terabaiti. Tas ir aptuveni skaitlis, kurš pierakstās kā 1 un 26 nulles. Tā ka skaitlis 33 miljoni (7 cipari) ir nieks salīdzinot ar 26 ciparu sakitli. Tas ir nereāli. Pat vienu miljono daļu no tā salabāt ir nereāli. Arī pēc pāris gadiem.
  20. bubu

    unlock MD5

    Būtu labāk palasījis atbilstošu lieteratūru, nevis uzdevis tādus jautājumus... MD5 ir hašfunkcija. Tie nav sinonīmi. Tāpat kā BMW ir auto, nevis BMW un auto ir sinonīmi. Un, kā jau cucumber saka, hešfunkcijas nelauž (ja vien tev nav iemesls/profesija meklēt problēmas pašu hešfunkciju uzbūvē/algoritmos). Hešfunkcijām parasti taisa pilnu/ne-tik-pilnu pārlasi meklējot kolīzijas.
  21. bubu

    css !

    Droši vien tāpēc, ka tu developējot testēji tikai uz IE. Ja developēsi un testēsi uz FF, tad uz FF viss būs "normāli", bet uz citiem būs "savādāk" :) Sāc ar to, ka novalidē savu HTML un CSS kodu w3.org lapā.
  22. bubu

    nelade images

    Uzspied uz bildes labo pogu, Properties (vismaz Firefox'ī) un apskaties bildes URL. No tā varbūt kautko izdomāt varēs.
  23. Aizstāj CURDATE() ar konkrētu datumu - pēc tiem 12-tiem naktī. Un testēt nevajag uz produkcijas servera - vajag testēt uz atsevišķa developēšanas servera, kuram tev būs visas privilēģijas, kādas tik vien kārosi.
×
×
  • Create New...