Jump to content
php.lv forumi

Venom

Moderatori
  • Posts

    1,918
  • Joined

  • Last visited

Everything posted by Venom

  1. Nu nez, man kaut kā šķēbīgi reiz sanācis, kad php ģenrēja pieprasījumus un netika pareizi saglabāti dati, no tā laika mazliet piesardzīgāk. Vai arī tas bija Javā?
  2. ftp - ir tikai alternatīva [nu ko tu piesienies!]. Galu galā ar php palīdzību var arī uztaisīt FTP-browseri, arī tādu, kas līdīs iekš ZIPiem un nolasīs informāciju no mp3-ID tagiem un EXIF no imadžiem (tikai ar uploadu ierobežojumu tālāk netiksim). Nedomāju gan ka tas, kas nesapratīs, kas ir ftp, mācēs pamainīt iekš php to $uploaddir tā, la php pēc tam neizmeta vārningu ;) Galu galā visam points ir tāds, ka jāglabā tikai failu nosaukumi iekš db, nevis pats fails.
  3. Venom

    spam

    Nez, man vienmēr gadās otrādi, kad vajag iekš cūkjiem saglabāt vairākdimensiju masīvu. No sesijām nav daudz jāsaprot, tikai: 1) lai uzsāktu/atsāktu sessiju, vaj'g pirms jebkāda izvada uzlikt session_start() [ok, izņēmums ja uzlikts output_buffering=on; bet tas tā retāk] 2) viss kas tālāk tiek iebvietots iekš masīva $_SESSION būs pieejams arī pēc lapas pārlādes/no lapas atvasinātai lapai (kad uzspiež Ctrl+N), ja vien tā atrodas uz tā paša hosta un klientam nav krasi mainījies IP; netika aizvērts brousera logs (vairāklogu brouseriem [Opera/MyIE/Mozilla] - viss brouseris). 3) lai slēgtu sesiju [un dzēstu tajā atrodošos info] var vai nu taisīt session_destroy(), vai unset($_SESSION); [pēdejais tikai iztīra] 4) atkarībā no konfiga, php dos priekšroku visu, kas tiek glabāt iekš $_SESSION redirektēt uz $_COOKIE 5) iekš cūkija var noglabāt sessijas identifikātoru, kas nolasāms ar session_id() un tad pirms session_start(); pamēģināt to atsākt ar session_id($_COOKIE['vecais_SID']); - tad var nolasīt iepriekš sessijā ieglabāto info pat tad, ja "lietotājs" aizvēra brouseri (un pat izslēdza datoru), ja vien nav pagājis pārāk daudz laika un sessijas failiņš tika nodzēsts no servera [var arī nokonfigurēt serveri, lai viš' sessijas glabā iekš RAMa - tad sessiju varēs atsākt pat pēc gada, ja vien serveris nav ticis izslēgts]
  4. uzbrauciens ;) ? Tās bildes, kuras vēl nav: ar parasto <input type="file" /> un no $_FILES ar move_uploaded_file() un jā - uz $upload_dir! Vienkārši ja ir vlom taisīt "saskarni", lai vajadzētu _jau esošās_ bildes vietā uploadēt jaunu (vai piem. no sākuma izdzēst un tad uzuploadēt no jauna), var arī ar FTP uzraut failu pa virsu vecam. Kad bildes glabātos iekš db_only, sanāktu paliela padarīšana. P.S.> ar FTP var arī uzuplādēt kādu 4000x4000 bildi, kuru nevares standarti iepostēt caur webu ar upload_max_size 2Mb, kā tas pierasti ir uz free hosķinģiem.
  5. skriptam ir milzu erors..Kur pareizi butu jaliek abas rindas ar count un foo? Laikam esmu milzu lame un janem jalasa manualis :unsure: Aizmirsu vienu burtu pierakstīt: pašās beigās: seek(3,10); seek(3); ?> vietā ieliekam for ($i=$count;$i>=0;$i--) seek($i,$summa); ?> manuāļi ne tikai jālasa, bet arī jāsaprot ;)
  6. //uzzinām cik daudz elementu ir masīvā no faila $count=count($data)-1; //kādu summa jāmeklē $summa=xx; tur, kur tagad pašās beigās stāv seek(2,3); utt. for ($i=$count;$i>=0;$--) seek($i,$summa); droši vien, ja būs daudz iterāciju, skripta sākumā būs jāieliek set_time_limit(0);, jo droši vien skripts strādās vairāk par defaulta 30 sekundēm P.S.> ja ir pamanīts, tad for iterācijas vairākumā gadījumu uzliku strādāt nevis no 0 līdz x, bet gan no x lejup līdz 0 - jo tā darās ātrāk P.P.S.> līdzīgu paņēmienu esmu izmantojis priekš brute force P.P.P.S.> pēc tam pasaki, kādu vietu olimpiādē dabūji ;)
  7. Venom

    Back-poga

    kā vienmēr izlīdz sessijas: vaijadzīgā lapā, no kuras nedrīks iet atpakaļ uzliekam $_SESSION['noback']=1; lapas augšā: session_start(); if (isset($_SESSION['noback'])) { echo 'No going back from herre'; exit; } of course, jāizdomā arī papildus parametri, kur ļauj iet uz priekšu ;)
  8. mans padoms tālākam ceļam, ja gadījienā summējamais variāblis varētu būt negatīvs, to labāk ietvert iekš iekaviņām: $a=$b+$c; ja $c=-1; $a=$b+-1; ? kaut kā savādi $a=$b+($c); $a=$b+(-1); kaut kā patīkamāk
  9. path uz bildi, pie tam tikai bildes faila nosaukumu, piem. 'bilde_o3.jpg' kāpēc: 1) ja bāzīsi visu datu bāzē (un tev tas arī izdosies), datu bāze būs _ļoti_ liela un lēna. Gribētu redzēt, kā tu viņai reizi nedēļā taisīsi back-upu 2) ja gadījienā tev vajadzēs izmainīt direktorijas nosaukumu/vietu, kur glabājas bildes, to varēs izdarīt iekš php, iepriekš nodefinējot kādu $path_to_images un to attiecīgi pamainot 3) kad vajadzēs izvadīt bildes, nevajadzēs mocītites ar papildus headeru sūtīšanu utt., bet vienkārši echo '<img alt="" src='.$path_to_images.$mysql_result['image_name'].' />'; 4) billžu datu bāzi var apvienot vienā tabulā, ieviešot papildus kolonnu, kurā saglabāsies "sadaļas identifikātors", piem. saitā ir sadaļas: personīgie attēli; dabas foto - attiecīgi apakšsadaļas 1 un 2. Iekš tabulas: ID |image_name|sadala auto|bilde1.jpg |1 auto|bilde1.jpg |2 auto|bilde2.jpg |1 tādejādi arī var izmantot vienu un to pašu bildi vairākās sadaļās, bet tikai vienreiz viņu uploadējot (ja priekš apakšsadaļām direktorija ir viena un tā pati), vai arī iekš php nodefinēt katrai sadaļai savu direktoriju, ķipa: $path_to_image[1]='personigie/'; $path_to_image[2]='dabasfoto/' ; 5) gadījienā, ja gribēsi aizvietot bildi ar, teiksim, jaunāku versiju - var ar FTP palīdzību uzuplādēt iekš att. direktorijas failu ar tādu pašu nosaukumu, bet ar SQL nav jāņemās. utt.
  10. [passing by] auksti verteju to => auGsti mans risinājums: http://code.php.lv/744
  11. Venom

    spam

    labāk nevis cookie, bet $_SESSION un tur var piem ieglabāt $_SESSION['lastpost']=gmmktime() pēc tam pie formas izvada pārbaudīt: echo '<input id="sub" value="post" type="submit"'; if (gmmktime()-$_SESSION['lastpost' ]<30) echo ' disabled="true"'; echo ' />'; tādejādi ūzeris nevarēs nosabmitot formu. Bet lai tas tomēr notiktu vajadzīgajā laikā, var uzlikt JS: [cut] <script language="javascript"> var isDOM=(document.getElementById?true:false); var isIE4=((document.all&&!isDOM)?true:false); var isNS4=(document.layers?true:false); function object(id) { if(isDOM) return document.getElementById(id); if(isIE4) return document.all[id]; if(isNS4) return document.layers[id]; } function disLock() { obj=object('sub'); obj.disabled=false; } setTimeout('disLock()',<?php echo gmktime()-$_SESSION['lastpost']?>*1000); </script> <noscript> You can post anything only after ,<?php echo gmktime()-$_SESSION['lastpost']?> have passed. </noscript> [/cut]
  12. $fp=fopen('tukss.fails','w'); fclose($fp); uz dažādām operētājšistēmām pēc uzstādījumiem 0-baitu faili tiek automātiski dzēsti.
  13. Venom

    Webkamera

    šā vai tā ir vajadzīgs softs, kas vai nu taisa bildi, vai video un laiku pa laikam šo failu updeito iekš HTML iet vai nu <img> vai nu kāds <embed> priekš video pārejais ir izvirtības ;)
  14. jāsūta papildus headeri pašā mailā Content-type: text/html Content-encoding: UTF-8 bet tik un tā ne visas mail-programmas utf-8 sapratīs ja priekš php ir pieietams iconv modulis, tad var izmantot iconv() funckiju utf8 pārtranslēšanai windows-1257 vai kā tamlīdzīgi
  15. php4Delphi Bet tas ir tāds ārprāts, ka esmu no tā drīz vien atteicies (bija doma iebūvēt VenPadā).
  16. Tā kā mazliet rakņājos pa Delphi, varētu pretstatīt, ka ar Delphi var radīt tās pašas CGI programmas, kas būtu pielīdzināmas Perlam. Agrāk pat bija kaut kāds search engīnis, līdzīgs Texinatoram, kuram pieprasījums gāja uz cgi-bin/search.exe?... Vai arī .NET, kurš atļauj to, kas tev uztaisīts iekš *.exe pārtaisīt par web-interfeisu. Bet nu tomēr piekrītu, ka tādiem jokiem tomēr vajag atsevišķus forumus.
  17. 1) droši vien esi redzējis izlecošus logus, bet tie nav javasript, bet gan iekšējo serveru autorizācijas protokolu (Basic/NTLM/LDAP u.c.) izsauktie logi, šajā gadījumā nonākam pie 2) kas ir SIngle-Sign-On (vienreizējās autorizācijas) paņēmiens Globāli tam ir 3 pieejas 1) pieejas liegšana tieši no skripta, jebšu tu uztaiši kādu pārbaudes failu check.php, kuru require_once(); katra "aizsargājamā" faila pašā sākumā - check.php pie nepareizo datu ievadīšanas vai nu taisa exit;, vai nu iz-echo kaut kādu paziņojumu un exit;, vai nu taisa redirektu utml. 2) pieejas liegšana no servera puses - izmantotjo (Apache gadījumā) httpd.conf un .htaccess failus var globāli uzlikt kaut kādus ierobežojumus - pēc IP, pēc ūsernāmiem (require_valid_user), tad izlec šāds te logs un prasa ievadīt paroli, arī ja tu neizsauc pa tiešo *.php, bet var liegt pieeju arī direktorijām un failiem. Tad neielogotam ūserim serveris pat nesūtīs tev šo failu informāciju. 3) abu pieeju maisījums, piem. atļaut pieeju tikai no iekšējā LAN IP-adresēm, bet arī pajautājot kādu paroli.
  18. Venom

    jautaajums par div

    nu jā, clear:both ķipa: uzlikt enteru pirms un pēc elementa, tikai tam enteram 100% width, līdzīgi kā ja ieliktu <hr> pirms un pēc div-a
  19. kūkiji ... nu nevajadzētu būt pārāk drošiem, it īpaši ja tajos glabājas paša parole labāk izmanto $_SESSION un vai nu saglabā tajā kaut ko tādu unikālu, ar kuru čeko, vai ūzeris bija pareizos datus ievadījis, vai nu ja tomēr gribi katru erizi čekot ar MySQL, mēģini vismaz tos kquerijus nokešot (sk. SELECT manuālī) es taisītu ko līdzīgu: ja iesūtīti dati ar paroli un ūsernamu pārbaudu ar mysql, vai tāds ūseris iraid, ja iraid, lieku iekš session kaut kādu $_SESSION[session_id()]=md5(session_id()); vēlāk čekoju, if (isset($_SESSION[session_id()] && $_SESSION[session_id()]==md5(session_id())) tad ielogots plusi tādi, kā: 1) nekur netiek saglabāta parole (ok, lietotāja vārdu var saglabāt) 2) sessijām grūtāk piekļūt nekā kūkijeim (parasti - jāpiekļūst fiziski serveram) 3) pat ja izķer sessijas datus a) no tiem neko nesapratīs B) ne uzreiz sapratīs, pēc kāda algoritma ir nokriptēta vērtība un kāda vērtība (md5 vietā var izmantot crypt() f-ju ar mainīgu salt) c) pat ja pārķer datus, tie nebūs derīgi vēl vienai konekcijai /ja vien nekonektējas no tā paša browsersofta ar papildus parametriem/ - jo katru reizi mainīsies session_id()
  20. Gacha, cilvēks runāja par to, lai varētu bildi pašu samazināt: nevis uzlikt tai width="50%" height="50%", un lādēt to pašu 1024x960 pikseļu 200Kb-go failu, bet no izejfaila uztaisīt kaut kādu 100x100 pikseļu 5kb priekšapskates failiņu, uz kuras uzklikšķinot tad arī var nokačāt to 1024x960.
  21. Venom

    jautaajums par div

    labi, varbūt ar float neiet, bet vajadzētu iet ar div vertical-align:bottom;clear:both iekļautu citā elementā, kuram height=100%, piem citā divā.
  22. 1) ar phpinfo() pārliecināties, ka ir uzinstalēts GD 2) skatīt php manuāli ap funkcijām imagecreate, imageproportional, imageresize utt. ir pieejami gatavi skripti un klases, kas to dara.
  23. dikti neiedziļinājos, bet parasti pēc history.back vai location.href maiņas noder location.reload() un vēl, vairākās vietās gan labāk pielietot <meta http-equiv="refresh" content="sekundes; url=http://">
  24. Venom

    VenPad Aquitaine

    pieietams 1.7.9 īzmaiņas vairāk iekšējas
×
×
  • Create New...