Jump to content
php.lv forumi

2easy

Reģistrētie lietotāji
  • Posts

    1,980
  • Joined

  • Last visited

Everything posted by 2easy

  1. 2easy

    gluks

    lol, nez vai tas tiešām ir tik svarīgi, bet stundu es izrāvu no brīža, kad renathy paziņoja kas izraisīja faila "nekopēšanos" 22:59, atņemot tēmas izveidošanas laiku 21:54 (pieņemot ka šajā laikā bij cīņa ap to gļuku, nevis tv skatīšanās :D). tajā edit brīdī gļuks vēl nebij atrasts & novērsts (bij tik aptuveni zināms, kur tas ir). anyway ir tač daudz sakarīgākas lietas, ko apspriest ;)
  2. 2easy

    gluks

    paiet "tikai" stunda un bugs jau atrasts! :)) tādā garā pa dienu veselus 8 bugus var salabot!!! ļoti ražīgs darbs :P
  3. 2easy

    nevarat kads?

    varu ^^ http://freewebsitetemplates.com/preview/counterstrike http://freewebsitetemplates.com/preview/counterstrike2 google: counter strike template
  4. +1 marcis turklāt martinb zināšanai: atbildot forumā uz jebkādu jautājumu, 50% ir tam kas uzdeva jautājumu, 50% visiem tiem kas te kkad nokļūs ar search - tai skaitā ar googli. droši vien šeit šad tad nokļūst arī ārzemnieki pēc kkādiem angliskajiem keywordiem, un pēc tam iztulko šo lapu ar google translate, lai saprastu visu tekstu. tā ka uztaisot tēmu, nevajag uzreiz iedomāties, ka esi baigais kings, kas te visu nosaka :P un par atkārtošanos: liela daļa šajā forumā uzdoto jautājumu (kas neattiecas uz kko baigi specifisku) jau sen dienas inetā ir n-reizes izrunāti pa visādiem forumiem. turklāt pat vairākkārt vienā forumā! hehe, re ko es atradu googlē ar: "nerādīt source site:php.lv" http://php.lv/f/topic/5451-lai-neredz-include-php-koda-gabalu btw šajā forumā kko sameklēt daudz vieglāk ir 4erez google nekā caur paša foruma search :D:D:D
  5. bez html source nav iespējams parādīt lapu. bet visu, ko aizsūta klientam, var arī apskatīt... tāpēc klausi, ko tev Val saka, ja gribi, lai neviens neredzētu tavu sourci :D:D:D
  6. iešu palīgā bubu, lai būtu 2:2 :D nope, pietiek ar GROUP BY ej labāk izgulies test... function qs($s) { // sagatavo stringu for mysql query return is_null($s) ? 'NULL' : "'" . mysql_real_escape_string($s) . "'"; } function go($sSql) { // mysql query ar error reportingu $h = mysql_query($sSql) or die('<b>mysql error ' . mysql_errno() . ':</b> ' . mysql_error() . '<br /><b>query:</b> ' . substr($sSql, 0, 1000)); return $h; } function userPointsLoad() { // izveido/ielādē testa datus go('DROP TABLE IF EXISTS UserPoints'); go('CREATE TABLE UserPoints (User varchar(20) NOT NULL, Points int NOT NULL) ENGINE=MyISAM'); go('INSERT UserPoints (User, Points) VALUES ' . '(' . qs('daived') . ', 3), ' . '(' . qs('daived') . ', 4), ' . '(' . qs('daived') . ', 1), ' . '(' . qs('maris') . ', 3), ' . '(' . qs('maris') . ', 3)' ); } function userPointsList($h) { // izdrukā useru punktu sarakstu no dotā recordset echo '<table cellpadding="1" cellspacing="0" border="1" style="float: left; margin-right: 20px"><tr><th>User</th><th>Points</th></tr>'; while ($r = mysql_fetch_object($h)) echo '<tr><td>' . $r->User . '</td><td>' . $r->Points . '</td></tr>'; echo '</table>'; } function userPointsSelTest() { // pārbauda SELECTus ar/bez DISTINCT userPointsList(go('SELECT DISTINCT User, Points FROM UserPoints')); // nav tas, kas vajadzīgs //userPointsList(go('SELECT User, SUM(Points) AS Points FROM UserPoints')); // mysql error 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause userPointsList(go('SELECT User, SUM(Points) AS Points FROM UserPoints GROUP BY User')); // bingo ;) userPointsList(go('SELECT DISTINCT User, SUM(Points) AS Points FROM UserPoints GROUP BY User')); // same (taču šeit no DISTINCT nav nekāda ieguvuma) } userPointsLoad(); userPointsSelTest();
  7. oo pēc tik daudz nooby jautājumiem beidzot ir parādījusies arī kāda advancētāka tēma :)) pats gan neesmu mēģinājis kompilēt php (nav bijusi tāda vajadzība), tāpēc daudz neko ieteikt nevaru. taču izskatās, ka neesi vienīgais, kas ap šo cīnoties, ir pavadījis vairākas dienas :D googlē pēc "compile php for windows" atradu http://elizabethmariesmith.com/2006/11/how-to-compile-php52-and-php-gtk2-on-windows-using-visual-c-express mo6 noder ;)
  8. izlasot arī otru tavu topiku, cik saprotu tu lapu turi uz savas kastes un pats arī to administrē? ja tā, tad tev jau iedeva linkus uz dns serveriem. btw tu nemaz neesi pateicis, kas tev ir par operētājsistēmu un kādus serverus jau esi uzinstalējis. anyway lasi konkrētā dns servera manuāli, kā tam pievienot subdomain. vai arī sameklē kādu adminu, kas to izdarīs tavā vietā. šis vairāk ir programmēšanas forums, lai gan tās lietas ir saistītas ;)
  9. tas jau labi. vsp es esmu pamanījis, ka no jautātājiem te izceļas 2 kategoriju cilvēki: 1) vieni uzdod jautājumus, lai kko iemācītos un varbūt domā kkad arī nopietnāk pievērsties programmēšanai 2) otri vnk grib fiksi uzcept sev lapu un pēc tam ātrāk visu aizmirst :D:D:D kr4 garāmgājēji...
  10. 2easy

    $.get

    no programmēšanas viedokļa viss notiek pareizi, jo šie requesti tiek izsaukti asinhroni. pēdējā pārbaude vnm izdos false. tā funkcija/closure, kas ir nodefinēta tajā pārbaudē function(data){...}, reāli tiks izpildīta vēlāk, kad pienāks atbilde no servera. anyway 35. un 39. rindiņai nav jēgas, jo tās izpildās citā kontekstā (vsp citā funkcijā, nevis tajā pārbaudē) ir 2 varianti: 1) veic šo pārbaudi tikai uz servera (anyway tev viss vēlreiz tāpat būs jāpārbauda uz servera) 2) izpildi sinhronu pieprasījumu https://developer.mozilla.org/En/Using_XMLHttpRequest#Synchronous_and_asynchronous_requests aaa un ir vēl 3. varians: čeko lietotājvārdu, nevis formas onsubmit brīdī, bet gan onkeyup eventā, kamēr useris vēl to raksta. sāc čekot, kad useris jau ir ierakstījis minimālo garumu (parasti tie ir kādi 3 burti) šajā gadījumā asinhronās pārbaudes ir tieši laikā! ;)
  11. ja db struktūru nemaina, un šo kopsavilkumu nevajag pārāk bieži (nez kā būtu labāk no performances viedokļa), tad... ir varianti :D 1) to var izdarīt arī ar php: sadzen visus tagus masīvā un saskaiti vērtības ar array_count_values() 2) līdzīgi varētu darīt arī iekš mysql, uztaisot temp tabulu ar visiem tagiem un izpildot SELECTu ar DISTINCT un COUNT() iespējams, ka kkā to var izdarīt arī dinamiski (uzreiz bez papildus struktūrām). mo6 kāds varēs ieteikt kādas mysql funkcijas šim gadījumam...?
  12. ar line-height vai padding inline elementu centrē, tā konteineram uzliekot text-align:center block elementu centrē pašam uzliekot width un margin:0 auto btw, kāpēc navigācijas linkam uzliki width:800px ? vsp izskatās, ka pie šāda css, nemaz nevarētu iegūt tos screenus... un kas ir float:center??? ahh sapratu, k4 tas ir kkāds joks. nevarēji sagaidīt 1. aprīli? :D
  13. parasti tač info par uploadoto bildi (vai any upload failu) tiek saglabāta db (kaut vai tāpēc, lai pēc šīs info varētu nodzēst tās bildes/failus, kad tie vairs nebūs vajadzīgi). tad kāpēc cīnīties ap hešu unikalitāti, ja db jau ģenerē unikālus id???
  14. ar to jau šis forums ir tik prikolīgs un interesants :D:D:D
  15. sry, par pamatu ir jāņem nevis garākā mala, bet gan tā mala, kura proporcionāli visvairāk samazinās (tad arī otra mala garantēti iekļausies jaunajās dimensijās, saglabājot sākotnējo platuma:augstuma attiecību) piemērs/skaidrojums algoritmam: pieņemsim, ka bildei ir jāiekļaujas dimensijās 200x100 1) ja par pamatu ņem garāko malu, tad, resaizojot bildi ar dimensijām a) 300x100, iegūst 200x67 // ok, tas der (rezultāts iegūts, nofiksējot platumu uz 200 un pārrēķinot augstumu) b) 300x200, iegūst 200x133 // fail, jo augstums ir lielāks par 100 (rezultāts iegūts, nofiksējot platumu uz 200 un pārrēķinot augstumu) 2) ja par pamatu ņem to malu, kas proporcionāli visvairāk samazinās, tad, resaizojot bildi ar dimensijām a) 300x100, iegūst 200x67 // ok, tas der (rezultāts iegūts, nofiksējot platumu uz 200 un pārrēķinot augstumu) b) 300x200, iegūst 150x100 // ok, tas der (rezultāts iegūts, nofiksējot augstumu uz 100 un pārrēķinot platumu) working example... // image type (most common image types only) // $sP - image path function imTy($sP) { list(, , $iTy) = getimagesize($sP); switch ($iTy) { case IMAGETYPE_GIF: return 'gif'; case IMAGETYPE_JPEG: return 'jpg'; case IMAGETYPE_PNG: return 'png'; case IMAGETYPE_BMP: return 'bmp'; } } // image resize // $h - source bildes handle (resource handle) // $iNewW, $iNewH - jaunās/ierobežojošās dimensijas (width,height). norādot abas, izmantota tiks tikai viena - tai malai, kura proporcionāli visvairāk samazinās // return - jaunās/resaizotās bildes handle vai tā pati handle, ja resize nenotika (kad jaunā dimensija ir lielāka par pašreizējo/oriģinālo) function imResz($h, $iNewW = 0, $iNewH = 0) { // pašreizējās dimensijas $iW = imagesx($h); $iH = imagesy($h); // ja ir dotas abas jaunās dimensijas, tad atstāj tikai vienu (jo ir jāsaglabā sākotnējā malu attiecība w:h) // lai abas pašreizējās dimensijas pēc resaizošanas ietilptu jaunajās dimensijās, par pamatu ir jāņem tā dimensija, kura proporcionāli visvairāk samazinās (otru malu vēlāk pārrēķina) if ($iNewW && $iNewH) if ($iNewW / $iW < $iNewH / $iH) $iNewH = 0; else $iNewW = 0; if ($iNewW >= $iW || $iNewH >= $iH) return $h; // tā kā šī resize funkcija nepalielina bildi, bet tikai samazina, tad var iet mājās :D // tgd arī pārrēķina to otro malu. piemēram, ja jaunais platums ir 2x mazāks, tad arī jauno augstumu vajag 2x mazāku if ($iNewW) $iNewH = round($iH * $iNewW / $iW); else $iNewW = round($iW * $iNewH / $iH); $hNew = imagecreatetruecolor($iNewW, $iNewH); imagecopyresampled($hNew, $h, 0, 0, 0, 0, $iNewW, $iNewH, $iW, $iH); return $hNew; } // image copy (ar iebūvētu resize) // $sSrcP, $sDstP - source un destination path // $iNewW, $iNewH - jaunās dimensijas for imResz() function imCp($sSrcP, $sDstP, $iNewW = 0, $iNewH = 0) { $sTy = imTy($sSrcP); switch ($sTy) { case 'gif': $h = imagecreatefromgif($sSrcP); break; case 'jpg': $h = imagecreatefromjpeg($sSrcP); break; case 'png': $h = imagecreatefrompng($sSrcP); } $hNew = imResz($h, $iNewW, $iNewH); if ($hNew == $h) {copy($sSrcP, $sDstP); return;} switch ($sTy) { case 'gif': imagegif($hNew, $sDstP); break; case 'jpg': imagejpeg($hNew, $sDstP, imagesx($hNew) <= 200 && imagesy($hNew) <= 200 ? 100 : 90); break; // mazākām jpg bildēm lielāka kvalitāte 100% (php jpg kvalitāte sucks, salīdzinot ar photoshop), lielākām bildēm tikai 90% (lai nav pārāk liels file size) case 'png': imagepng($hNew, $sDstP); } } // testam lokāli izmantoju googles logo http://google.com/intl/en_com/images/logo_plain.png // ar to bildi, protams, viss ir kārtībā, taču in production environment tamlīdzīgai pārbaudei normāli būtu jābūt if (!in_array(imTy('google-logo.png'), array('gif', 'jpg', 'png'))) echo 'Bildei ir jābūt gif/jpg/png!'; else imCp('google-logo.png', 'google-logo2.png', 200, 100);
  16. 1) atrodi garāko malu (horizontāla vai vertikāla bilde) 2) aprēķini proporciju, izdalot vajadzīgo garumu ar šīs malas garumu 3) pareizini iegūto proporciju ar otru malu un zināsi kādai tai ir jābūt (lai saglabātos proporcija arī pēc resaizošanas) 4) call imagecopyresampled() un izveido bildes kopiju ar jaunajām dimensijām
  17. vai tev skolā matemātiku un ģeometriju jau māca?
  18. 2easy

    Niķojas

    if($rowz['id']!=$_SESSION['id'])
  19. un ja uploadu taisa nevis noobiskā indiešu stilā, bet tā kā baltie cilvēki to normāli darītu, tad ir jāpārbauda arī $_FILES['tavs-file-name']['error'], lai var izdot atbilstošu error paziņojumu (pārāk liels fails, etc) http://www.php.net/manual/en/features.file-upload.errors.php
  20. problēmu nav nevienā gadījumā. vnk katram ir kkas savs ;)
  21. šajā gadījumā tas bij domāts vairāk priekš paša, nevis googles. varbūt dažreiz, ieskatoties bilžu folderī, ir noderīgi, ka pēc faila var zināt, kuram tabulas ierakstam tā atbilst. bet googlei jau ne hash, ne AUTO_INCREMENT id neko īpaši neizsaka līdzīgi arī datu bāzē ip un datumu var glabāt kā int un timestamp, taču var glabāt arī kā varchar(15) un datetime pirmajā gadījumā ir labāka performance un mazāks datu izmērs, otrajā gadījumā ar vienkāršu select uzreiz var paņemt human readable datus (ir labāka datu lasāmība: teksts vs integer). nju tas tā arī tikai paša ērtībai ;)
  22. substr($teksts, 0, strpos($teksts, ',', 300))
×
×
  • Create New...