Jump to content
php.lv forumi

Roze

Administratori
  • Posts

    1,561
  • Joined

  • Last visited

Everything posted by Roze

  1. Der lasiit manuaaliSecond, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mysql_close() will not close links established by mysql_pconnect()). Rakstiju standarta variantaa labaak taapeec ka, vieniigi zinot ko tu dari un tas ir tavs MySQL serveris, preteeji pienaaks briidis kad tu aizsitiisi visas tev atveeleetaas konekcijas (hostinga piegaadaataaji parasti taas limitee). Tas negaazh nost serveri, bet vienkaarshi ir korekta servera darbiiba kad klients/lietotaajs ir izsmeelis visas maksimaali atljautaas konekcijas (lai arii teoreetiski PHP buutu jaameklee esoshas briivas konekcijas biezhi vien gadaas ka vinsh atver jaunu). Protams no weblapas viedoklja pilniigs kirdik :) Ne velti pie funkcijas dokumentacijas ir Warnings Using persistent connections can require a bit of tuning of your Apache and MySQL configurations to ensure that you do not exceed the number of connections allowed by MySQL.
  2. Tas nav vienoziimiigi atbildams. Var buut 100 kveriji kas straadaa aatraak par vienu pashu. Noziime ir tam ko kverijs dara/izpilda, vai tas ir pareizs / optimaals un vai logjisks no datubazes uzbuves viedoklja. mysql_pconnect() vietaa standarta variantaa labaak ir lietot mysql_connect proti ne-persistant konekcijas. Iznjeemums vareetu buut ljoti liels vienmeeriigs paraleelu pieprasiijumu skaits, tachu tad arii shis tas jaapamaina no pasha MySQL puses (galvenokaart jaasamazina wait timeout settings - lai MySQLs netureetu pusdienu valjaa neaktiivas konekcijas). Konekteeties vajag tad kad tas ir nepiecieshams.. Proti ja tev lapaa neizpildaas neviens SQL kverijs tad teiksim lapas headerii iekljaut mysql konekciju buutu nejeedziigi. Bet taa parasti konekciju veido skripta saakumaa (iznjemot varbuut OOPiskus variantus kur db handlerus piestartee veelaak) jo parasti tas vai izdosies vai neizdosies piesleegties ir visbuutiskaakais - ja neizdodas tad idejiski lapu taalaak laadeet nav jeegas. Otraamkaartaam pie ottreizeeja konekta pie MySQL, php censhas atrast vai jau nav shaada konekcija izveidota liidz ar to pie katra pieprasiijuma nav pamata konektam :) Note: This function has been deprecated since PHP 4.0.6. Do not use this function. Use mysql_select_db() and mysql_query() instead. mysql_query ir krietni vien aatraaka jo mysql_db_query pie katra kverija ieprieksh veel izsauc mysql_select_db, kuru mysql_query gadijumaa nepiecieshams izsaukt tikai vienu reizi.
  3. Roze

    Sesijas

    Ganjau standarta problēma ar UTF byte order mark (BOM). Proti daļa editoru (zināms ka tā mēdz darīt Dreamweaver) lai identificētu ka fails ir UTFā faila sākumā pieliek charu (ķeburu ;) ) ko php savukārt nesaprot (un pašā editorā tas nav redzams). Pamēģini teiksim atvērt ar notepadu un pārseivot.
  4. Roze

    templates

    Nu redz te ir divas galeejibas "lame users" arii templati var sabojaat neieliekot teiksim korekti {} vai kaut ko citu :) Kaa jau rakstiiju, piekriitu, ka templeishu gadijumaa veel var meegjinaat kaut ko salabot.. <title><? escape($cls->konv_src($title)) <- shis nu noteikti nav vajadziigs un noteicoshais jo izvades mainiigos tu tikpat labi vari apstraadaat pirms izvadiishanas un templatee taksh ar neliksi kautko taadu ne? Nu tad tev viss veel ir priekshaa.. Jo mana peedejaa laika pieredze ir taada ka shaadas aatrdarbiibas izmainjas ir gandriiz fataalas :) saitam ar 3 ljimonu tiiriem php pieprasiijumiem dienaa un manupraat uz normaalas 4CPU kastes :)
  5. Roze

    templates

    Negribu saakt ticiibu / flame karus (ir jau bijushi ne vien vienu reizi :) ), bet, manupraat, ar templateem ljoti aizrauties nevajag. Proti mineeto piemeeru <html> <title>{title}</title> <body> {teksts} </body> </html> Var aizstaat ar <html> <title><? echo $title; ?></title> <body> <? echo $teksts; ?> </body> </html> Kas principaa arii ir ir php koda nodaliishana no html .. Pie kam ja aizstaaj echo ar <? =$title ?> tad veeljovairaak (vizuaali). Tai pashaa laikaa otrais variants stradaas krietni aatraak jo nav jaaielasa papildus templates fails nav jaameklee kur tajaa ir kaut kaadi ieprieksh predefineeti tagi utt. Vieniigaa jeedziigaa vieta vareetu buut wysiwyg editoros, jo <? ?> ir tagi liidz ar to preteeji {} tas netiek paraadiits. Nekorekti darbojoties var ieviesties sintakses kljuuda kas template gadijumaa var tikt noveersta.
  6. Papildus labs variants ir nodaliit arii lietotaajus - proti webam / frontendam / pashai lapai izveido lietotaaju tikai ar SELECT, INSERT, UPDATE nu ja vajag tad arii ar DELETE tiesiibaam, bet privileegjeeto lietotaaju (ar DROP, GRANT utt) tiesiibaam lieto tikai savaam vajadziibaam vai administraacijas riikaa.
  7. Nu var jau meegjinaat ar iebuuveetajaam MySQL Replace, Convert vai Cast komandaam, tachu manupraat vienkaarshaak ir ar php. Principaa viss kas ir nepiecieshams ir iconv() atbalsts. "& #124;" ir html kodeejums specialchari. Ganjauka var atrast tabeliiti kaa sarepleisot apakalj uz normaaliem utf characteriem.
  8. Vispaar jau lai pilnibaa benchmarkotu php un izbeegtu no taa ka briizhiem kaut kas izpildaas aatraak briizhiem leenaak sheit http://blog.rompe.org/node/85 ir labs raksts kaa to izdariit precizaak..
  9. Roze

    operators %

    Lai rekjinatu lapas parasti dara taa: $lapu_skaits = ceil($ieraksti_kopaa / $ieraksti_lapaa);
  10. Roze

    guest book

    http://hotscripts.com/PHP/Scripts_and_Prog...ooks/index.html Vari pamekleet sheit. Domaaju, ka noteikti atradiisi sev piemeerotu..
  11. Ko nozīmē ļoti līdzīgi rezultāti? :) Ja teiksim skripts izpildās 2 milisekundēs bet tu panāc uzlabojumu uz 1ms, cilvēkam jau neko tas būtiski neizsaka, taču atrdarbības uzlabota pa 50%. Un ja parēķinam jau uz 100 vai 1000 paralēliem lietotājiem / pieprasījumiem - šī "praktiski ļoti maza atšķirība" pieaug jau krietni manāma gan servera noslodzes gan jau jūtamas bremzes ziņā.
  12. Tad jau tas ir driizaak webservera -> php skaroš jautājums. Proti zem kāda usera tas darbojas. Fiziski piem apache jau nekādīgi savādāk nevar ierwraitot failu tik vien zem pats chrootojas (proti nobody, apache, wwwrun vai kā tā). Protams savādāk var būt ar suexec un safemode settingiem vai arī php cgi/fcgi veidā.
  13. Nu 644 vai 744 vaidzeetu buut ok. Aiz kam jautu uploadeejot un resaizojot imagi vari vinjai gruuzt pa virsu un ieprieksh vai peecaak ar chmod vari salikt pats kaa gribi.
  14. Nu liec <tr><td align="center"><img ..><img ..><img ..><img ..><img ..><img ..></td></tr> <tr><td align="center"><img ..><img ..></td></tr>
  15. Nu funkcijaam imagejpeg() http://lv.php.net/imagejpeg imagegif() imagepng() ir opcionaals otrais parametrs, kura tu vari noraadiit kur saglabaat nogjenereeto bildi uz diska..
  16. Vai nu ir rakstības kļūda vai kā: Bet nu tur kaut kā tie apastrofi ir nelabi salikti aiz abiem .gif pa diviem '' Debugam vienmēr der ideālā print_r funkcija <pre><? print_r($GLOBALS['gal']); ?></pre>
  17. Tas atkarīgs no lapas / struktūras. Proti ja latviešu, krievu u.c. valodas lapas koks / materiāli ir identiski, tad vienkāršāk un manuprāt ērtāk ir glabāt katram elementam tulkojumus tajā pašā ierakstā dažādos laukos (tad var ērti pārslēgties -> lasīt šo rakstu angliski utt). Taču ja struktūra pilnīgi atsķirās tad var izmantot tikai vienu nosaukuma / satura lauku (pat obligāti netaisot vairākas tabulas) un datus glabāt utf. Tādējādi var saglabāt unikālus id katram objektam un lapas adrese paliek gaužām vienkārša. Pretēji tam ka tev jāpadod vēl teiksim ?lang=lv mainīgais tu vari padot tikai 'id' un jau secināt kādā valodā tas ir.
  18. Te jaizskjir divi varianti: Vai tev nepiecieshams zinaat vai lietotaajs vispaar ir bijis sektooraa vai arii konkreeti jaazin kad un cik reizes tas ir noticis? Ja apmekleejuma laiks nav buutisks tad var meegjinaat jau tevis saakotneeji iecereeto atdaliishanu ar '|' Proti nepiecieshams tikai viens kverijs. UPDATE tabula SET apmeklejums = CONCAT(apmeklejums,'|',$sektora_id) WHERE uid = '$uid' kur teiksim sektora_id ir apmekleetais sektors un uid lietotaaja id, un sektori tikai kraasies galaa, peec tam diezgan vienkaarsho noselecteet visus lietotaaja apmekleetos sektorus. Otrs variants ir kaa bubu saka izmantot atseviskju tabulu kur ir lietotaaja ID un Sektora id (opcionaali arii citi lauki kaa apmekleejuma laiks utt) un katrs apmekleejums tiek ielikts kaa jauns ieraksts. Katram veidam ir savas priekshrociibas un miinusi - izveele tavaa zinjaa :) Es izveleetos otro, jo tad pastaav iespeeja arii kaadaa briidii tiiriit kaut kaadu ljoti vecu veesturi kaa arii peciizaak izsekot kad un kas ir noticis.
  19. Reizeem tas ir visai noderiigi / izdeviigi / aatrdarbiigi. Piemeeram ja nepiecieshams kaadam ierakstam piekaartot dinamiska daudzuma viena tipa laukus/veertiibas - teiksim indeksus. Protams var taisiit papildus tabulu kura satur katraa ierakstaa savu indeksu un noraadi uz ierakstu kursh to satur. Tad pie daudz ierakstiem un indeksiem shii tabula sanaak vienkaarshi milzoniiga un lai atrastu kautvai ierakstu(s) kursh(i) satureetu divus indeksus sanaak paarlasiit un taisiit intersectu diezgan lielam datu apjomam, kas ir leenu. Turpretii peec '|' sadaliishanas sheemas shaadu pieprasiijumu var diezgan viegli un aatri veikt ar parastaam string mekleeshanas funkcijaam (like, substring utt). Protams dazhaadu datu glabaashana vienaa laukaa nav diezko jeedziiga. Lai arii no cita aspekta, ja veelaak nav nepiecieshama atlasiishana/mekleeshana peec konkreeta lauka, tad shaadi var ieguut db kurai dati aiznjem vismazaak vietas. Proti ja defineejam konkreetu lauku seciibu teiksim Vards|Uzvards|Dzimums|Vecums|Unveelchupaardazhaadiem tad gadijumaa ja lietotaajs(i) nebuus aizpildiijushi kaadu no laukiem tad db ievietojamaa datu virkne buus vienkaarshi iisaaka preteeji tuksham / NULL laukam ja katrai veertiibai buus defineets savs lauks.
  20. Roze

    WEB kamera

    Nuja tas bija mms streams tad noteikti, ka ir/bija (ja ne pats webserveris tad blakus) MS Win ar Windows Media Services. Uz linux ir liidziigi servisi ir prieksh quicktime (Darwin) un arii divx streamoshanai bet taa jau cita opera.. Parasti tak visaam webcameraam naak liidzi kaads softs / veids kaa ievietot atteelu weblapaa: Saglabaajam uz diska / ftp statiskas bildes ko lapaa var refreshot - parasti tam gan ir kaads java aplets vai labaak flash kas pats dinamiski ielasa naakoshos kadrus.
  21. Roze

    par mirorēšanu

    Nu sho vareetu saukt par "miroru" tikai statiskam webam.. preteeji tas aptuvena kopija jo saglabaati faili kaa index.php?menu=345342&id=234543 diezkas nav.
  22. Roze

    par mirorēšanu

    Nu mirrors principaa ir kopijas izveidoshana un pamata jeega tam ir lai atslogotu centraalo resursu un sadaliitu noslodzi / uzlabotu aatrdarbiibu. Piemeeram mineetais lv.php.net atrodas Latvijaa liidz ar to *.lv useriem tas veras krietni aatraak nekaa teiksim pats php.net. Nu taakaa php ir gan failu sisteemas (copy u.c. funkcijas), kaa arii ftp / socketu atbalsts liidz ar to var itkaa uzrakstiit skriptu kas piesleedzas pie ftp vai kaada db servera un vienkaarshi paarkopee visus failus / datus, tad var teikt ka miroreeshanu var nodroshinaat itkaa arii ar php, tachu parasti to dara savaadaak - proti ar citiem riikiem un panjeemieniem. DB serveri tiek linkoti, repliceeti - izmainjas vienaa atspoguljojas arii citos. Webserveriem faili tiek sinhronizeeti ar rsync vai citiem tooljiem.. Aareeji (nekontakteejoties ar autoru) saglabaat kaadu php dinamisku lapu buus diezgan problemaatiski. Vari jau itkaa seivot html lapas tachu navigaacija 99% gadiijumu buus nojaukta.
  23. Iespeejams ka vinsh (klients) kaut kaa nekorekti vai vispaar nenolasa tnsnames.ora ar attieciigaa servera aprakstiem (neesmu mekleejis ceelonjus / iemeslus). Tas gan taa ir tikai uz windows platformas, uz *ix straadaa korekti arii vienkaarshais ora_logon("useris@TNSNAME","parole"); variants.
  24. Pag nesaprotu kāds žē un kur problēma (vari arī nesaprotu jautājumu). <tr><td><input type="text" name="vards"></td></tr> <tr><td><font size="1">Tavs Vards</font></td></tr> Ir tak zem input lauka un ar mazākiem burtiem?
  25. No kurienes konnects tiek taisiits? Vai no Windows? Vai linux? Jaanjem veeraa ka php uz servera (vai arii ja taa ir tava lokaalaa darbstacija) vajag Oracle clientu (gan uz linux, gan windows) un ar extensijas eneibloshana kaa tas ir mysql tikai nepietiek. Klientam jaabuut nokonfigureetam t.i. ieksh tnsnames.ora jaabuut ierakstiitam attieciigajam serverim. Piemeeram SOMESERVER.LV = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = 10.10.10.1) (Port = 1527) ) ) (CONNECT_DATA = (SID = SERVERIS) ) ) Ja tas ir linux tad apaches profilaa ir jaabuut veel dazhaadiem envirounment parametriem (parasti var ielikt ieksh apachctl startup scripta) piem: export ORACLE_HOME=/usr/oracle/ora817 export ORACLE_TERM=$TERM export NLS_LANG=Latvian_Latvia.BLT8CP921 export ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data export ORA_NLS32=$ORA_NLS export ORA_NLS33=$ORA_NLS export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/lib export LIBPATH=$ORACLE_HOME/lib export TMPDIR=/tmp export TNS_ADMIN=/etc PATH=$PATH:/usr/java/jdk118_v3/bin:$ORACLE_HOME/bin export PATH unset USERNAME unset TWO_TASK Konekteejoties no windozes parasti der kaut kas shaads: <? putenv("ORACLE_HOME=c:/orant"); $or=ora_logon("useris@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = SERVERIS)(PORT = 1525)) (CONNECT_DATA = (SID = SERVERASIDS)))","parole"); ?> kur ORACLE_HOME ir oracle klienta atrashanaas vieta. useris - userneims SERVERIS - servera hosts vai IP SERVERASIDS - Oracle sids parole - pati par sevi :)
×
×
  • Create New...