Jump to content
php.lv forumi

Maris-S

Reģistrētie lietotāji
  • Posts

    634
  • Joined

  • Last visited

Everything posted by Maris-S

  1. Es esmu strādājis mazliet ar zend freimworku, arī šajā forumā esmu prasījis par citu domām par šādām lietām. Tomēr jāsaka ka man tā doma ar freimworku nepatika, es taisīju lapu uz MVC bāzes un tā arī ir tā lieta kas man neiepatikās. Esmu dzirdējis ka zend bibliotēkas var izmantot arī bez MVC struktūras (cake php itkā nēsot tāda iespēja, bet apgalvot neņemšos, zinu tikai no forumiem), tādu lietu gan ir vērts skatīties. Man īstenībā ne visai patīk tā pārlieku lielā automatizēšana, tāpēc arī labāk patīk pašam veidot savu struktūru un izmantot papildus kodu kā pievienojamas klases. Daudz tāda veida klases var atrast pear lapā. Pagaidām vēl neizpētīju viņu ļoti labi, bet šo to esmu jau izmantojis.
  2. Pacēlās jautājums ko darīt ja ir konfigurācijas vērtības ko nevar pamainīt ar ini_set un nav pieejas pie web servera konfigurācijas? Šajā gadījumā konkrēti runa iet par upload_max_filesize un post_max_size, skatījos ar php_info palīdzību, šīs divas vērtības nemainās, ja pirms tam tiek mainītas no php skripta, arī protams augšupielādējot failus nekas nenotiek. Vēl viena lieta ir tāda ka ja fails ir pārsniedzis pieļaujamo faila lielumu, tad POST un FILE surperglobālie masīvi ir tukši, līdz ar to jautājums ir, vai nevar kaut kādā veidā ar php noteikt vai fails ir pārsniedzis izmērus un izdot kļūdas paziņojumu? Jo sanāk tā ka ja nav FILE masīva nav jau ko pārbaudīt.
  3. Te pacēlās saruna par error reporting. Kā jau tika minēts variants - izstrādes stadijā slēgt iekšā, lietošanas laikā slēgt viņu ārā. Es vēl gribēju piebilst ka laba lieta ir izmantot php iebūvētos handlerus kļūdas situācijām arī exceptionu handlerus. Doma tāda kad var definēt viņus pašā sākumā un veidot kādu noklusētu darbību. Pavisam nesen esmu sācis viņus lietot un patiešām izrādījās ļoti noderīga lieta. Es kā noklusētās darbības esmu uzlicis lai raksta kļūdu paziņojumus log failos, tad tos analizējot var vieglāk atrast kādas kļūdas web lapai, ja tās netika atrastas izstrādes stadijā, parocīgi tādu kļūdu gadījumā ja pie kaut kādiem stipri retiem izņēmumiem kaut kas nenostrādā, vai arī pārlūku bagu dēļ, piemēram, kāds pārlūks nenosūta formas datus un tml. Vadīt ārā lietotājam tādas kļūdas nav labi, bet sarakstīt viņas log failos ir jēga. Links par tēmu: http://www.php.net/manual/en/ref.errorfunc.php
  4. Andrisp, paldies, šitas variants smuki nostrādāja, gatavs kods varētu būt, piemēram, šāds (mainījās tikai formas daļa): <form name="upload_form" action="" method="post" enctype="multipart/form-data" onsubmit=" java script: getElement('file_field_id').style.position='absolute'; getElement('file_field_id').style.left='-10000px'; getElement('msg_id').style.display='block'; " > <input type="hidden" name="MAX_FILE_SIZE" value="104857600"> <div id="file_field_container_id"> <div id="msg_id" style="display: none">Uploading, please wait.....</div> <input type="file" id="file_field_id" size="35" name="uploaded_file" value=""> </div> <input type="submit" name="submit_upload" value="OK" onclick="java script: if (document.upload_form.uploaded_file.value.length==0) { alert('Please choose file.'); return false; }"> </form>
  5. Atklāju vienu problēmu safari (apple mac) pārlūkā. No vienas puses pat loģiski, bet pagalam nederīga šitāda loģika. Lieta tāda ka ja izveido formu un formai pieliek kādus laukus (nemēģināju ar dažāda tipa laukiem, bet ar file tipu gan šitā ir) un tad sūtot formu (tātad onsubmit) šim faila tipa laukam uzliek display:none, tad fails vienkārši nenosūtās (uploads nenotiek), jo nav jau ko sūtīt, fails ta noslēpts. Testam kods: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Upload</title> <script type="text/javascript"> function getElement (id) { if (document.getElementById) return document.getElementById(id); else if (document.all) return document.all[id]; else if (document.lyers) return document.lyers[id]; else return null; } </script> </head> <body style="margin: 15px"> <pre> <?php print_r($_FILES); ?> </pre> <form name="upload_form" action="" method="post" enctype="multipart/form-data" onsubmit="java script: getElement('file_field_id').style.display='none'; getElement('uploading_msg_id').style.display='block';"> <div> <input type="hidden" name="MAX_FILE_SIZE" value="104857600"> <input type="file" id="file_field_id" size="35" name="uploaded_file" value=""><br> <input type="submit" name="submit_upload" value="OK" onclick="java script: if (document.upload_form.uploaded_file.value.length==0) { alert('Please choose file.'); return false; }"> </div> <div id="uploading_msg_id" style="position: relative; top: -46px; display: none">Uploading, please wait.....</div> </form> </body> </html> Varbūt kāds jau ir mēģinājis šo problēmu apiet, varbūt var padalīties risinājumā? Tas vajadzīgs vienkārši lai faila izvēles lauciņa vietā parādās uzraksts ka fails tiek uploadēts, vienkārši negribās tagad iet visai lapai cauri un likt kaut kādus abolute pozicionētus divus pa virsu, neslēpjot faila lauku, un katrā vietā rēķināt koordinātes, ja nu kaut kas izmainās. Var protams to 'uploading.....' likt jebkur lapā, bet nomainīt lauciņu ir daudz smukāk.
  6. Nu tas lāmeru variants ir tikai kā piemērs, pie tam arī ar visu mazo izšķirtspēju teorētiski var salīmēt bildi pa daļām pārbīdot to un kopējot atbilstošo apgabalu, čakars, bet iespējams. Nav jēdzīgākas aizsardzības par zīmes likšanu uz bildi, grozies kā gribi, kas ir uz ekrāna ir dabūjams kā attēls un tas salīdzinoši ir daudz vienkāršāk nekā mēģināt krāsot nost uzliktu caurspīdīgu uzrkastu, bildi vai vēl kaut ko.
  7. Te izskanēja jautājums kas vispār ir NaN, būtībā tas nozīmē 'not a number' pārbaudīt vai vērtība ir NaN var ar funkciju isNaN, te links uz funkcijām.
  8. Īsti nesapratu ko jāpanāk, bet nākošo lielāko id varētu atras ar vaicājumu: select min(id) from tasks where id>$id Tomēr nezinu vai kaut kādā veidā mēģināt modificēt identifikatorus ir prāta darbs.
  9. Bildes tādā veidā nav vērts aizsargāt, pat ja lietotājs būs galīgs muļķis visā šajā lietā un nezinās kur meklēt tmp folderus uz datora kur bildes jau ir saglabājušās, vai arī kā šeit jau minēja piemērus, tad viņš vienkārši atverot lapu nospiedīs PrintSrc un iekopēs to visu ekrānu kaut vai photoshopā un izgriezīs bildes vietu (lameru variants, bet strādās labi). Ja gribi aizsargāt kaut cik bildes tad labāk liec uz bildēm virsū tādu kā ūdens zīmi, vai kā pareizāk izteikties, kaut vai saita nosaukumu transparentu šķērsām pa diagonāli bildei, lai to izdarītu var izmantot php funkcijas attēlu apstrādei, protams php manuālī viss tas ir (links). Tas protams neiaizsargās no kopēšanas, bet tomēr būs vismaz uz bildes atsauce uz avotu. No savas pieredzes varu pateikt ka transparentā logo vai saita nosaukuma bildei labāk izmantot png, jo caurspīdīgums labi strādā un php atbalsta šo formātu, nu, bet tas jau katram pašam jāizvēlās kādu risinājumu viņš izmantos.
  10. Jā, izskatās ka iespējams tas arī ir vienīgais normālais variants, papētīju vēlreiz editarea kodu, viņi tieši tā arī dara, atrod ar getElementsByTagName('script') visus scriptus un tad salīdzinot src meklē savējo. Tā laikam arī būs jādara. Paldies par atsaucību!!
  11. Lieta ir sekojoša, vajadzētu noteikt ceļu līdz pašam skripta (js) failam, nevis absolūto ceļu tam failam, kurā šis skripts tiek izmantots, pie tam to jāizdara pašā js filā. Doma tam visam ir tāda, lai varētu sataisīt kādu javascript objektu, kam protams ir arī savas bildes (bildes atrastos vienu līmeni augstāk, '../'), tā lai neatkarīgi no tā kur viņu ieliek (domāts direktoriju nosaukums un dziļums), šis skripts varētu noteikt kur viņam ir atbilstošie attēli, kā piemēru varētu minēt sekojošu objekta struktūru: object_name (direktorija) img (direktorija) main.js additional.js Šajā gadījumā vajadzētu panākt tā, lai pievienojot mājas lapai visu bibliotēku ('object_name') kaut vai mājas lapas galvenajā direktorijā, vai arī lib, js, scripts, lib/scripts, lib/js, vai jebkurā citā direktorijā vai direktoriju dziļumā, pats skripts main.js varētu atrast savas bildes. Šī doma man ienāca prātā no citām js bibliotēkām, piemēram, tinymce un editarea, kur netiek norādītas attēlu direktorijas, bet skripts vienalga zina kur viņas ir. Mēģināju pētīt tinymce javascripta kodus kā viņi to panāk, bet nekā jēdzīga neatradu. Varbūt kāds zin kā varētu šo lietu panākt?
  12. Jā, šitā doma ar templeitu patiešām izskatās baigi labā. Būs jāpamēģina arī tādā veidā sataisīt. Paldies par padomu!
  13. Kārtējo reizi gribēju lūgt Jūsu viedokli... Lieta ir tāda ka jāveido saits ar hierarhisku struktūru, tātad koks. Koka apstrādei izvēlējos "nested set model" (to, kas aprakstīts mazliet zemāk). Ar pašu koku viss skaidrs, bet lieta tāda ka jebkurai mājas lapai var būt dažādas struktūras sadaļas, piemēram, vienkārša teksta lapa un attēlu galerija un tml., katrai vajag atbilstošu apstrādes skriptu. Pašreiz ir tāda doma kokam papildus glabāt procesa un skata failu nosaukumus, kas apstrādā atbilstošās sadaļas, piemēram "process_galery.php", "process_text.php", "view_galery.php" utt. Gribēju uzzīnāt Jūsu viedokli un domas, vai šāda pieeja ir daudz maz jēdzīga, vai ir kāds labāks risinājums? Jau iepriekš paldies!
  14. Principā ar php šo problēmu arī var saistīt, jo ir iespēja bildi samazināt ar php palīdzību, izmantojot php attēlu apstrādes iespējas.
  15. Te man pacēlās jautājums par php koda glabāšanu datubāzē. Principā maziem koda gabaliem it kā varētu viss būt normāli, tomēr doma ir tāda ka rezultātā jāsanāk cms sistēmai, kas varētu tikt labota no web saita, ieskaitot php kodu. Vārdu sakot viss saits ir datubāzē. Šitāda doma man liekās pārāk aizdomīga un tāda nojauta ka kaut kas noies greizi, bet nezinu kas tieši tur varētu nesanākt un būt tas kritiskākais. Varbūt kāds ir mēģinājis tādus brīnumus taisīt un var padalīties pieredzē?
  16. Iespējams ka varēsi panākt vēlamo ar trigeri... Pirmajai datubāzei uztaisi trigeri, kas insertos ierakstu otrās datubāzes tabulā..
  17. Spriežot pēc teikā skatos ka tomēr vairāk nē, nekā jā... Jebkurā gadījumā paldies par atbildēm..
  18. Man te pacēlās jautājums par vai pret frameworkiem kā tādiem. Pats saskāros ar zend framework, nu man personīgi ne visai iepatikās. Gribētu uzzināt Jūsu domas vai labāk viņus izmantot vai nē.
  19. Pamēģini ieslēgt error reportingu skripta sākumā: error_reporting(E_ALL|E_STRICT); ini_set("display_errors", "on");
  20. Nu ar mime tipiem varētu palīdzēt šitā lapa: http://www.webmaster-toolkit.com/mime-types.shtml nezinu vai visi, bet šis tas ir pārskaitīts.
  21. Nu ja kas varēja arī mēģināt konfigurēt to ceļu no php, izmantojot kaut vai to pašu "ini_set" funkciju, tad pilnīgi noteikti mainītos un tāda nejaušība kā cits ini fails būtu izslēgta.
  22. Es īsti nepētiju visu Tavu javascriptu, tomēr ja saki ka ie pilnīgi nokarās, tad atceros, ka pats cīnījos ar līdzīgu problēmu (uz sitienu nav 6 ie, lai paskatītos kā īsti viņš nokarās). Vārdu sakot man lieta tāda atgadījās ka problēmu izraisīja appendChild metode. Tas ir IE6 bugs. Piemēram, ja menu taisa no kaut kādiem elementiem (div, li, utt.) un iekš viena elementa, kaut vai diva tiek veidots vēl viens elements (dinamiski) un tad jaunais elements tiek likts klāt bodijam ar appendChild, tad IE6 vienkārši vairs to lapu nerādīs, rakstīs ka nevar atvērt, pat refresh nelīdz, jārestartē ir. Nezinu vai Tev ir tieši šī problēma, bet ja jā, tad te ir sīkāk (Tev varētu būt noderīgs 2. piemērs): http://support.microsoft.com/default.aspx/kb/927917
  23. Nu īsti nepētīju to "streetstyle.lv" lapu, bet izskatās ka viss sataisīts uz ajax, tā ka parametri tā vai tā tiek padoti, vienīgais lietotājs tos tieši neredz un ja kam ļoti savajadzēsies tad izies cauri javascript kodiņam un izpētīs kādi parametri tiek padoti, pie vajadzības arī pados kaut ko savējo, ja mēģinās ko lauzt. Visumā nekādi nevar pilnībā to noslēpt, jo jebkurā gadījumā jātaisa uz serveri pieprasījums ko tieši vajag no lapas nolasīt, savādāk jau neviena lapa nestrādātu. Tomēr ja vajag noslēpt tā lai vienkārši neredz tieši, tad ajax derēs.
  24. Maza piezīme par collation, izmantojot utf-8 tomēr labāk izmantot "utf8-bin", nevis "utf8-general-ci", pretējā gadījumā salīdzinot tekstus where nosacījumos garumzīmju un bez garumzīmju vārdi būs uzskatīti vienādi, piemēram "vārds" būs atpazīts kā vienāds ar "vards".
  25. Es pavisam nesen pārgāju uz eclipse, tāds bremzīgs, bet man patīk, php kodēšanai ļoti laba programma.
×
×
  • Create New...