Jump to content
php.lv forumi

jb4

Reģistrētie lietotāji
  • Posts

    212
  • Joined

  • Last visited

Everything posted by jb4

  1. jb4

    Vmysql Class

    Man bija slinkums kaut ko ielaadeet un skatiities, bet db_conn() lietoshana mysql_connect() vietaa tiek saukta par abstrakciju un pie citas db vienkarshi tiks uzrakstiita sav db_conn() f-ja. <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">class </font><font color="#0000CC">AbstractDatabase </font><font color="#006600">{ </font><font color="#0000CC">metodes</font><font color="#006600">, </font><font color="#0000CC">kas kopīgas visām DB </font><font color="#006600">} </font><font color="#0000CC">?></font> </font> </code> failaa mysql.php piemeram: <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">class </font><font color="#0000CC">Database </font><font color="#006600">extends </font><font color="#0000CC">AbstractDatabase </font><font color="#006600">{ </font><font color="#0000CC">metodes</font><font color="#006600">, </font><font color="#0000CC">kas raksturiigas tikai MySQL db db_conn</font><font color="#006600">() </font><font color="#0000CC">prieksh MySQL</font><font color="#006600">, </font><font color="#0000CC">db_query</font><font color="#006600">() </font><font color="#0000CC">prieksh MySQL </font><font color="#006600">... } </font><font color="#0000CC">?></font> </font> </code> failaa postgresql.php: <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">class </font><font color="#0000CC">Database </font><font color="#006600">extends </font><font color="#0000CC">AbstractDatabase </font><font color="#006600">{ </font><font color="#0000CC">metodes</font><font color="#006600">, </font><font color="#0000CC">kas raksturiigas tikai PostgreSQL db db_conn</font><font color="#006600">() </font><font color="#0000CC">prieksh PostgreSQL</font><font color="#006600">, </font><font color="#0000CC">db_query</font><font color="#006600">() </font><font color="#0000CC">prieksh PostgreSQL </font><font color="#006600">...} } </font><font color="#0000CC">?></font> </font> </code> <code><font color="#000000"> <font color="#0000CC"><?php $dbtype </font><font color="#006600">= </font><font color="#CC0000">'postgresql'</font><font color="#006600">; include(</font><font color="#0000CC">$dbtype</font><font color="#006600">.</font><font color="#CC0000">'.php'</font><font color="#006600">); </font><font color="#0000CC">$db </font><font color="#006600">= new </font><font color="#0000CC">Db</font><font color="#006600">(); ... </font><font color="#0000CC">$result </font><font color="#006600">= </font><font color="#0000CC">$db</font><font color="#006600">-></font><font color="#0000CC">db_query</font><font color="#006600">(</font><font color="#CC0000">"SELECT ME"</font><font color="#006600">); ... if (</font><font color="#0000CC">$numrows </font><font color="#006600">= </font><font color="#0000CC">$db</font><font color="#006600">-></font><font color="#0000CC">getNumRows</font><font color="#006600">(</font><font color="#0000CC">$result</font><font color="#006600">)) ... </font><font color="#0000CC">?></font> </font> </code>
  2. jb4

    Clean Urls

    Meklētājiem visvairāk patīk parastais 60 grādīgais svītrojums un par to ||| vispār aizmirsti pēc iespējas ātrāk. Daudzi meklētāji ? nemīl un neskatās URĻUS, kuros ir ?, bet tādu paliek arvien mazāk. Par / viņi tā arī neuzzina kas tas ir - tas ir normāla "statiskā" URL atdarinājums.
  3. jb4

    Vispār Kopā.

    <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">require_once(</font><font color="#CC0000">'myshape.class.php'</font><font color="#006600">); </font><font color="#0000CC">$lapa </font><font color="#006600">= new </font><font color="#0000CC">MyShape</font><font color="#006600">(</font><font color="#CC0000">'home/www/sabloni/'</font><font color="#006600">); </font><font color="#0000CC">$lapa</font><font color="#006600">-></font><font color="#0000CC">new_shape</font><font color="#006600">(array( </font><font color="#CC0000">'pamatsablons'</font><font color="#006600">=></font><font color="#CC0000">'pamats.tpl'</font><font color="#006600">, </font><font color="#CC0000">'iipashais_fails'</font><font color="#006600">=></font><font color="#CC0000">'fails.php' </font><font color="#006600">)); </font><font color="#0000CC">$lapa</font><font color="#006600">-></font><font color="#0000CC">insert_values</font><font color="#006600">(</font><font color="#CC0000">'pamatsablons'</font><font color="#006600">,array( </font><font color="#CC0000">'asdf'</font><font color="#006600">=></font><font color="#0000CC">$lapa</font><font color="#006600">-></font><font color="#0000CC">get_shape</font><font color="#006600">(</font><font color="#CC0000">'iipashais_fails'</font><font color="#006600">) )); </font><font color="#0000CC">$lapa</font><font color="#006600">-></font><font color="#0000CC">end_parse</font><font color="#006600">(</font><font color="#CC0000">'pamatsablons'</font><font color="#006600">); echo </font><font color="#0000CC">$lapa</font><font color="#006600">-></font><font color="#0000CC">get_shape</font><font color="#006600">(</font><font color="#CC0000">'pamatsablons'</font><font color="#006600">); </font><font color="#0000CC">?> </font> </font> </code>
  4. jb4

    Clean Urls

    Bet zini, Andri, kopš uzdevi jautājumu tu attaisno cerības, kuras lieku uz visiem Andriem. Kā tur bija ar tiem, kas cer? Sou we go and google a liitle bit. http://www.google.lv meklējam: "mod_rewrite+pretty+url php" un ko mēs atrodam? Atrodam dzīvei jēgu! Labākie rezultāti: http://tavi.sourceforge.net/index.php?page...e=URL+Rewriting http://photomatt.net/scripts/b2url http://www.matthewgifford.com/2002/08/25/PrettyURLs A izrādās nav nemaz tik grūti arī ar mod_rewrite... Un vēl ir pasaulslavenais mod_rewrite ceļvedis: http://www.engelschall.com/pw/apache/rewriteguide/
  5. jb4

    Clean Urls

    Turpinājums iepriekšējam. <code><font color="#000000"> function initVars() { $this->year = 0; $this->month = 0; $this->topic = 0; $this->lapaname = 0; $this->pagenum = 0; } function parseRequest() { $query = ereg_replace('^'.$_SERVER["SCRIPT_NAME"], '', $_SERVER["REQUEST_URI"]); $good_query = ereg_replace('?.+', '', $query); $init_req = explode('/',$good_query); $size = sizeof($init_req); $parsed_req = array(); for ($i=0; $i<$size; $i++) { $item = array_shift($init_req); if ($item != '') { $parsed_req[] = $item; } } return $parsed_req; } function isYear($string) { $int = intval($string); if ($int>1969 && $int<=intval(date('Y'))) { return true; } return false; } function isMonth($string) { $int = intval($string); if ($int>0 && $int<13) { return true; } return false; } function isPage($string) { if (strlen($string)<4 && intval($string)>0) { return true; } return false; } function isLapaname($string) { if (eregi('^[a-zA-Z_]+$',$string) && strlen($string)<=30) { return true; } return false; } function analizeReq() { switch (sizeof($this->req)) { case 1: { if ($this->isYear($this->req[0])) { $this->year = $this->req[0]; } elseif ($this->isLapaname($this->req[0])) { $this->topic = $this->req[0]; } array_pop($this->req); $this->analizeReq(); break; } case 2: { if ($this->isMonth($this->req[1])) { $this->month = $this->req[1]; } elseif ($this->isLapaname($this->req[1])) { $this->lapaname = $this->req[1]; } array_pop($this->req); $this->analizeReq(); break; } case 3: { if ($this->isLapaname($this->req[2])) { $this->lapaname = $this->req[2]; } elseif ($this->isPage($this->req[2])) { $this->pagenum = $this->req[2]; } array_pop($this->req); $this->analizeReq(); break; } case 4: { if ($this->isPage($this->req[3])) { $this->pagenum = $this->req[3]; } array_pop($this->req); $this->analizeReq(); break; } default: { // URL analize done } } } </font> </code> Tātad, kā jau teicu, šī ir Lieldienu dāvana, tāpēc izmantojiet kā gribat un kur gribat. Bez tam, ja jūs interesē atlikušais klases kods, prasiet personīgi pa e-pastu, jo lielajiem dūžiem diezin vai patiktos, ka es te visu savu ūdeni salieku. Priecīgas Lieldienas!
  6. jb4

    Clean Urls

    Sveiks Andri. Kad lasu tavu vārdu, neviļus nāk atmiņā tie laiki, kad valsti vadīja vīri vārdā Andris. Bet mod_rewrite mācīšanos var atlikt uz tiem laikiem, kad ūpim asteskauls lūzīs. Sou tu vēlies būt tikpat kruts cik es: http://www.42901.lv/articles/ http://www.42901.lv/articles/2003/ http://www.42901.lv/articles/2003/03/ http://www.42901.lv/articles/2003/03/dinam...l_pieprasijumi/ http://www.42901.lv/articles/php/ http://www.42901.lv/articles/php/dinamiski...l_pieprasijumi/ Tad pamatdirektorijā atliek .htaccess failā noteikt kādus failus papildus tradicionālajiem ar paplašinājumu .php vēlies parsēt ar PHP. Ja tas ir fails articles, tad aiziet rakstam šādi: <code><font color="#000000"> <Files articles> ForceType application/x-httpd-php </Files> </font> </code> Ar šo te Apaches pamatkonfigurāciju pārjāšanu tu būsi pateicis, ka fails articles jāparsē ar PHP. Kāpēc viss šis darbosies? Tāpēc, ka Apache ir tā uztaisīta, ka URL tiek parsēts no otra gala: Ja galā ir kaut kāds www.andris_premjers.gov/superfails/andris/ tad tiek meklēta direktorija vārdā andris (zīmīgi, ka sakrīt ar tavu vārdu). Ja tā netiek atrasta, tad Apache skatās vai eksistē fails vārdā andris. Ja viņš to atrod (.. liec to savā vietā ... , atcerējos to dziesmu par bitēm, piedod), tad viņš dodas uz šo failu un aidā! Ja tomēr Apache neatrod arī failu vārdā andris, kas ir visai iespējami (kurš gan tur uz servera failu vārdā Andris?), tad viņa (Apache, es par Apache runāju kā par sievieti, par PHP kā puisēnu un MySQL kā meiteni) dodas pa URLi uz labo pusi un meklē direktoriju vārdā superfails un darbojas pēc iepriekšaprakstītā scenārija gadījumam ar failu/direktoriju vārdā andris. Ja tiek atrasts fails vārdā superfails (piemēra vienkāršības labad pieņemsim, ka tiek atrasts), tad viss, kas seko aiz superfails iekš URL ir ar PHP apstrādājams līdzīgi kā index.php?tema=Valdiba&vards=Andris&amats=premjers tikai šoreiz neviens tavā vietā 60 grādīgās slīpsvītras netulkos. Tāpēc izraugies kaut kādu gudru metodi, pēc kuras tiks analizēts pieprasījums un no skaistās virtenes atlasīts tas, ko domājis lietotājs. Tā kā tuvojas svētki, bet man nav olu ko jums dāvāt, uzdāvāšu es savu URL parseri, kas viltīgi atļauj sasniegt rakstus gan pēc to tēmas, gan datuma: (Šis ir fragments no kādas īpašas PHP klases, dodu svarīgākās funkcijas)
  7. Varētu ierakstīt iekšējās kārtības noteikumos, ka nesmuks kods netiek dots ievērtēšanai. Sāksim ar pavisam vienkāršu: vienā rindiņā nedrīkst būt vairāk par vienu semikolu un { kā arī } ja tie atdala kaut kādus zarus vai ciklus. Uldis ir viens nepaklausīgs skolēns.
  8. Visus datus, ko tu nes no lietotaaja ievadiitajiem uz DB izlaizh caur addslashes() un atpakalceljaa, tas ir, tad, kad laid atpakalj no DB uz savu lapu, tad izlaizh ar stripslashes(). <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">if (</font><font color="#0000CC">$_POST</font><font color="#006600">[</font><font color="#CC0000">'teksts'</font><font color="#006600">]) { </font><font color="#0000CC">saglabat_db</font><font color="#006600">(</font><font color="#0000CC">[url=http://lv.php.net/addslashes]addslashes[/url]</font><font color="#006600">(</font><font color="#0000CC">$_POST</font><font color="#006600">[</font><font color="#CC0000">'teksts'</font><font color="#006600">])); } </font><font color="#0000CC">?></font> </font> </code> un atpakaļ ceļā <code><font color="#000000"> <font color="#0000CC"><?php $teksts </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/stripslashes]stripslashes[/url]</font><font color="#006600">(</font><font color="#0000CC">nolasit_db</font><font color="#006600">(</font><font color="#CC0000">'select teksts from tabula'</font><font color="#006600">)); echo </font><font color="#0000CC">$teksts</font><font color="#006600">; </font><font color="#0000CC">?></font> </font> </code>
  9. (papildinajums Kaklz) Visskaistāk jau izskatās, ja failiem vispār nav paplašinājumu. Paplašinājums ir piedēklis, bet URLiem jābūt lietotājam viegli uztveramam un http://www.manalapa.com/articles/tema/virsraksts izskatas septiņdesmit trīs reizes patīkamāk nekā http://www.manalapa.com/articles.php?t=tem...ma&v=virsraksts lai tur vai kas būtu tai php vietā. Nu jā var jau arī http://www.manalapa.com/articles.php/tema/virsraksts bet var taču saprast kuru URLi lietotājs atcerēsies labāk. Lai būtu urlis http://www.manalapa.com/articles/temas_nos...ksta_virsraksts es uztaišu .htaccess failā: <code><font color="#000000"> <Files articles> ForceType application/x-httpd-php </Files></font> </code> un tad ar PHP analizēju $_SERVER['REQUEST_URI'];
  10. tagad normāls enkodings, caur windows izgājis, bet maita CSS2 tik un tā nevalidējas. Kā pie velna dabūt CSS2 validāciju ar latviešu burtiem? Mani jau vienreiz mācīja un man n-tās reizes na haļavu ir izdevies iebraukt tai validācijā, bet kā ir atkal kaut kas riktīgs, tā pa vidu uņikode neīstā. Ko darīt? Kaut kāds universāls solipasolim nava? (tipa uzrakstiet kāds, lūdzu)
  11. Paņemam rokās un liekam. Pēc kārtas.
  12. <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#FF9900">/* PHP optimization version 1.0 task: output "txt txt txt bla txt txt txt" if $a is true or output "txt txt txt txt txt txt" if $a is false */ </font><font color="#0000CC">[url=http://lv.php.net/session_start]session_start[/url]</font><font color="#006600">(); if (!</font><font color="#0000CC">[url=http://lv.php.net/headers_sent]headers_sent[/url]</font><font color="#006600">()) { </font><font color="#0000CC">[url=http://lv.php.net/header]header[/url]</font><font color="#006600">(</font><font color="#CC0000">'Content-type: text/html'</font><font color="#006600">); } </font><font color="#0000CC">[url=http://lv.php.net/set_magic_quotes_runtime]set_magic_quotes_runtime[/url]</font><font color="#006600">(</font><font color="#0000CC">0</font><font color="#006600">); </font><font color="#0000CC">[url=http://lv.php.net/set_time_limit]set_time_limit[/url]</font><font color="#006600">(</font><font color="#0000CC">60</font><font color="#006600">); </font><font color="#0000CC">[url=http://lv.php.net/ob_start]ob_start[/url]</font><font color="#006600">(</font><font color="#CC0000">'ob_gzhandler'</font><font color="#006600">); </font><font color="#0000CC">prestring</font><font color="#006600">(); </font><font color="#0000CC">$a </font><font color="#006600">= </font><font color="#0000CC">false</font><font color="#006600">; </font><font color="#FF9900">// var pamainīt uz true arī </font><font color="#006600">if (isset(</font><font color="#0000CC">$a</font><font color="#006600">) && </font><font color="#0000CC">$a</font><font color="#006600">==</font><font color="#0000CC">false</font><font color="#006600">) { if (isset(</font><font color="#0000CC">$a</font><font color="#006600">)==</font><font color="#0000CC">false</font><font color="#006600">) { die(</font><font color="#CC0000">"Can't perform performance test - important setting not found"</font><font color="#006600">); } } else { echo </font><font color="#0000CC">[url=http://lv.php.net/strtolower]strtolower[/url]</font><font color="#006600">(</font><font color="#CC0000">'BLA '</font><font color="#006600">); } </font><font color="#0000CC">prestring</font><font color="#006600">(); </font><font color="#0000CC">[url=http://lv.php.net/ob_end_flush]ob_end_flush[/url]</font><font color="#006600">(); function </font><font color="#0000CC">prestring</font><font color="#006600">() { </font><font color="#0000CC">$init </font><font color="#006600">= array(</font><font color="#CC0000">'t'</font><font color="#006600">, </font><font color="#CC0000">'e'</font><font color="#006600">, </font><font color="#CC0000">'x'</font><font color="#006600">, </font><font color="#CC0000">'t'</font><font color="#006600">, </font><font color="#CC0000">'i'</font><font color="#006600">, </font><font color="#CC0000">'l'</font><font color="#006600">, </font><font color="#CC0000">'s'</font><font color="#006600">); </font><font color="#0000CC">$arr1 </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/array_shift]array_shift[/url]</font><font color="#006600">(</font><font color="#0000CC">$init</font><font color="#006600">); </font><font color="#0000CC">$arr2 </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/array_slice]array_slice[/url]</font><font color="#006600">(</font><font color="#0000CC">$init</font><font color="#006600">, </font><font color="#0000CC">[url=http://lv.php.net/intval]intval[/url]</font><font color="#006600">(</font><font color="#0000CC">1</font><font color="#006600">), </font><font color="#0000CC">4</font><font color="#006600">-</font><font color="#0000CC">2</font><font color="#006600">); </font><font color="#0000CC">$string </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/implode]implode[/url]</font><font color="#006600">(</font><font color="#CC0000">' '</font><font color="#006600">, </font><font color="#0000CC">$arr2</font><font color="#006600">); </font><font color="#0000CC">$arr3 </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/array_merge]array_merge[/url]</font><font color="#006600">(</font><font color="#0000CC">$arr1</font><font color="#006600">,</font><font color="#0000CC">[url=http://lv.php.net/explode]explode[/url]</font><font color="#006600">(</font><font color="#CC0000">' '</font><font color="#006600">, </font><font color="#0000CC">$string</font><font color="#006600">)); </font><font color="#0000CC">$finalstring </font><font color="#006600">= </font><font color="#CC0000">''</font><font color="#006600">; for (</font><font color="#0000CC">$i</font><font color="#006600">=</font><font color="#0000CC">1</font><font color="#006600">; </font><font color="#0000CC">$i</font><font color="#006600"><</font><font color="#0000CC">[url=http://lv.php.net/abs]abs[/url]</font><font color="#006600">(</font><font color="#0000CC">[url=http://lv.php.net/sqrt]sqrt[/url]</font><font color="#006600">(</font><font color="#0000CC">16</font><font color="#006600">)); </font><font color="#0000CC">$i</font><font color="#006600">++) { if (isset(</font><font color="#0000CC">$arr3</font><font color="#006600">[</font><font color="#0000CC">$i</font><font color="#006600">-</font><font color="#0000CC">1</font><font color="#006600">])) { </font><font color="#0000CC">$finalstring </font><font color="#006600">.= </font><font color="#0000CC">$arr3</font><font color="#006600">[</font><font color="#0000CC">$i</font><font color="#006600">-</font><font color="#0000CC">1</font><font color="#006600">]; } } </font><font color="#0000CC">$y </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/date]date[/url]</font><font color="#006600">(</font><font color="#CC0000">'m'</font><font color="#006600">); </font><font color="#FF9900">/* strādās tikai martā (aprīlī var pielikt klāt date('m')-1) gan jau maijam un citiem mēnešiem arī ir kaut kādi workaroundi. ja baigi vajag, var ar Googli atrast */ </font><font color="#0000CC">$temp </font><font color="#006600">= </font><font color="#0000CC">0</font><font color="#006600">; while (</font><font color="#0000CC">$temp</font><font color="#006600"><</font><font color="#0000CC">$y</font><font color="#006600">) { echo </font><font color="#0000CC">$finalstring</font><font color="#006600">; echo </font><font color="#CC0000">' '</font><font color="#006600">; </font><font color="#0000CC">$temp</font><font color="#006600">++; } } </font><font color="#0000CC">?> </font> </font> </code> Testēts uz PHP 4.3.0 (Windows mašīna, Apache). Strādā ātri un precīzi.
  13. Pirmais: <code><font color="#000000"> <font color="#0000CC"><?php $jurka </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/microtime]microtime[/url]</font><font color="#006600">(); </font><font color="#0000CC">$a </font><font color="#006600">= </font><font color="#0000CC">false</font><font color="#006600">; echo</font><font color="#CC0000">'txt xtx txt xtx'</font><font color="#006600">; if(</font><font color="#0000CC">$a</font><font color="#006600">)echo</font><font color="#CC0000">'bla'</font><font color="#006600">; echo</font><font color="#CC0000">'txt txt txt txt'</font><font color="#006600">; echo </font><font color="#0000CC">[url=http://lv.php.net/microtime]microtime[/url]</font><font color="#006600">()-</font><font color="#0000CC">$jurka</font><font color="#006600">; </font><font color="#0000CC">?> </font> </font> </code> Otrais: <code><font color="#000000"> <font color="#0000CC"><?php $jurka </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/microtime]microtime[/url]</font><font color="#006600">(); </font><font color="#0000CC">$a </font><font color="#006600">= </font><font color="#0000CC">false</font><font color="#006600">; echo</font><font color="#CC0000">'txt xtx txt xtx'</font><font color="#006600">.(</font><font color="#0000CC">$a</font><font color="#006600">?</font><font color="#CC0000">'bla'</font><font color="#006600">:</font><font color="#CC0000">''</font><font color="#006600">).</font><font color="#CC0000">'txt txt txt txt'</font><font color="#006600">; echo </font><font color="#0000CC">[url=http://lv.php.net/microtime]microtime[/url]</font><font color="#006600">()-</font><font color="#0000CC">$jurka</font><font color="#006600">; </font><font color="#0000CC">?> </font> </font> </code> Pirmajam vidēji 0.000185 Otrajam - 0.000192 (jeb pareizāk sakot starpības nava) Tev tjipa microtime() nav uzinstalēts vai arī gribējās kaut ko tāpat vien iepostēt??????????
  14. Jau divi dienas lietoju Dev-PHP IDE. IDE gan tāds paskaļš apzīmējums. Ielāde notiek no http://devphp.sourceforge.net/ Šis ir bezmaksas un man patīk lietot, jo tam nav defaultā izskata Windows Open/Save podziņas. Defaultais source highlight arī ir daudz patīkamāks nekā citos (man jau slinkums tos citus pielāgot). Tāpat ir arī tas, ka pie funkciju argumentu norādīšanas parādās popupsis ar argumentu uzskaitījumu. Bet Zend Studio ir labākais IDE priekš PHP. Tur ir viss ko vari iedomāties par nepieciešamu PHP radīšanai un vēl n fīčas, ko tu nekad neizmantosi. Un maksā arī virs 200$.
  15. jb4

    Problēma!

    Kompromatus velkam laukaa ... :)) Es roku uz sirdes uzliekot varu teikt, ka nevienu web pasūtījumu tā arī neesmu veicis un nevienu taisnu kodu neesmu uzrakstījis, bet inline HTML iekš PHP nav nekāds labais tonis. Atdalīt itkā nemainīgo HTML kodu no PHP dinamiskā satura ir ātrs, bet nekādā gadījumā tālejošs pasākums. Ko darīsim, ja pēkšņi pilnībā mainām lapas izskatu? Vai sākam meklēt kurā vietā kas drukājās laukā, kurā vietā dati tika sagatavoti? (Iekš OOP atrodam klasi, kas atbild par kaut kādas satura vienības parādīšanu un to tad arī labojam - bet te jāmeklē viscaur). Par šablonu lietām. Ticēju šabloniem, līdz nonācu http://www.phppatterns.com Padomājiet cik failos tiek turēti šabloni un cik tad ir mobili šie šabloni pie dizaina maiņas (nē, nu par inline HTML vispār nav ko teikt). Šablonus ir vērts lietot tikai reizē ar spēcīgu caching gan klienta, gan servera pusē, pretējā gadījumā pie sīkumainas informācijas (kad šablonā ir daudzi jūtīgie lauciņi), notiek visai ilga šo jūtīgo vietu meklēšana un aizpildīšana. Lieks darbiņš, ko OOPiskā risinājumā var aizmirst. Tāpat šīs kaudzes ar šablonfailiem ... Tātad pašlaik esmu nonācis līdz slēdzienam, ka tālejošā projektā par procedurālu kodu jāaizmirst un viss jāmet pa objektiem. Dizainera rokās tiek dots CSS un tikai. Tajā tiek norādīts viss, kas skar lapas izskatu. Tā vairs nebūs, ka vienā tabulas rūtiņā ir dizaina bilde un blakus ir raksta virsraksts - PHP ģenerē pamatstruktūras un tām pievieno klašu atribūtus, kurus iekš stylesheetiem atliek aprakstiit "dizaineriem" (pašam, bet biku vēlāk :D). Pārējo XHTML ģenerēšanu var uzticēt tam domātām klasēm.
  16. Var jau ar php mainiit nosaukumus un tad pie bildes ID, un bildes apraksta iekš DB pielikt klaat faila nosaukumu. Faila nosaukumus, kaa es nesen lasiiju, jaaizraugaas taa, lai peec nosaukumiem sakaartojot, taas buutu sadaliitas pa ne paaraak lielaam direktorijaam. Var njemt visas fotografijas pec kartas un likt tam failu nosaukumiem priekshaa burtu. Teiksim 500 bildes saakas ar "a", 500 ar "b" un tā tālāk. Visas ar burtu "a" samet direktorijā img/a/, ar b - img/b/ utt. Nosaukšana tiek fiksēta iekš db. Iekš db jāglabā vienīgi faila nosaukums (un protams parastais info, kas papildina bildi), pilno taku genereesim izmantojot pirmo burtu faila nosaukumaa.
  17. Glabāt datubāze nenozīmē neglabāt uz diska :D Bet bildes tiešām nevajag glabāt DB. Par to ir simtiem rakstu atrodami. Glabā sakārtotās direktorijās. Tas ir ātrāk, drošāk, pārskatāmāk ...
  18. jb4

    Problēma!

    headerus laikam sūtīsi ar javascriptu, ko ja? :)))))))))
  19. Vēl jaukāk ir skaļi domāt: http://www.php-dev.lv/?cat=forums&id=5⊂=110
  20. Ha ha ha. Tomēr atradu pac bez jumsīm. Jāglabā taču ir tikai nākamā recorda ID un Amen. Ak, es muļļa. http://www.ti5.tu-harburg.de/AEA/chapter5-6.pdf
  21. Primary key vienmēr jābūt unikālam. MySQL ir iebūvēta f-ja auto_increment, kas atļauj piešķirt secīgi nākamo unikālo ID vienas tabulas ietvaros. Sarežģītās kontrukcijās ir nepieciešams saglabāt unikālus identifikatorus vairāku tabulu rindām vienlaicīgi. Tas tiek panākts ar papildtabulas - unikālo ID piešķīrējas palīdzību. Jautājums tikai kā tas praktiski notiek? Skaidrs, ka šai papildtabulai primārais key būs auto_increment (ja ne, tad nevar garantēt unikalitāti īsā laika sprīdī veiktiem pievienojumiem tabulām). Kā varētu īsi veidot INSERT un uzreiz SELECT tā, ka tiek SELECTēts tieši tas, kas ievietots. Nevar taču pat automātiski SELECTēt pašu pēdējo ierakstu - ja nu kāds šajā pašā laikā ir pieprasījis unikālo ID ? Bet, ja raksta WHERE, tad tabula jāindeksē, kas savukārt būtiski palēnina INSERT. Visbeidzot, ja šī unikālā ID ģenerēšana ievelkas, tad nav grūti iedomāties kā ievelkas pats ieraksta INSERT ... Jautājums ir tāds: Kā lai veikli atpazīst tikko ievietoto ierakstu? Vai varbūt MySQL piedāvā pie INSERT atgriezt ievietojuma ID ? :)))
  22. Norādi pilnu taku. Piemēram publiskā web direktorija ir /home/public_html/ tad var par iekļāvumu direktoriju norādīt kaut kādu /home/includes/ Tajā includes direktorijā caur www nekad netiksi, bet kad iekļausi failus tad pie takas vai nu raksti relatīvi (../includes/ieklavums.php) vai arī daudz labāk - sākot no paša pamata - manā gadījumā /home/ direktorijas: <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">include(</font><font color="#CC0000">'/home/includes/ieklavums.php'</font><font color="#006600">); </font><font color="#0000CC">?></font> </font> </code>
  23. Mācies lietot $_SERVER, $_SESSION, $_FILES, $_COOKIE, $_GET, $_POST, $_REQUEST ... Ja tu vēlies programmēt ne tikai sev, bet arī kādam citam, tad par ieslēgtajiem globāļiem aizmirsti.
  24. jb4

    Problēma!

    Lieta tāda, ka šī skripta autors lieto PHP ar ieslēgtajiem globālajiem mainīgiem, savukārt tu pēc visiem pareizas programmēšanas priekšrakstiem šādu iespēju esi atslēdzis. Nekādā gadījumā nesadomā globālos mainīgos slēgt atpakaļ iekšā, bet gan atceries, ka turpmāk formu, cookie, sesiju, augšupielādēto failu un caur URL nodotie mainīgie jāpiesauc ka superglobālo masīvu elementi: Cookiji glabājas zem $_COOKIE, sesiju mainīgie zem $_SESSION ... Tavā gadījumā tiek izmantota forma ar method="POST", kas nozīmē, ka formas mainīgos action laukā norādītajā skriptā varēs piesaukt vai nu kā $_POST masīva elementus, vai arī kā $_REQUEST masīva elementus. Ja formā kā metode tiktu norādīts "GET", tad mainīgie būtu masīvā $_GET, kā arī $_REQUEST. Un tātad, lai noskaidrotu vai lietotājs ievadījis formā savu vārdu jāraksta sekojošā koda rindiņa: <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">if (isset(</font><font color="#0000CC">$_POST</font><font color="#006600">[</font><font color="#CC0000">'vards'</font><font color="#006600">])) { echo </font><font color="#CC0000">"Tu ievadīji savu vārdu: </font><font color="#006600">{</font><font color="#CC0000">$_POST</font><font color="#006600">[</font><font color="#CC0000">'vards'</font><font color="#006600">]}</font><font color="#CC0000">"</font><font color="#006600">; } </font><font color="#0000CC">?></font> </font> </code> Un ja tev, lietojot augstāk atrodamo pamācību tāpat nekas nestrādā, pajautā sev, vai tu PHP sev vispār uzstādīji???
  25. Ar to tīri labi galā tiek speciāli šim nolūkam radīti rīki. Viens no tiem: http://www.softpile.com/Utilities/File_Man...ad_06757_1.html
×
×
  • Create New...