Jump to content
php.lv forumi

Exzo

Reģistrētie lietotāji
  • Posts

    112
  • Joined

  • Last visited

Posts posted by Exzo

  1. function toggle(id) {
    
    var elem = document.getElementById(id);
    
    if (elem.style.display == '') {
    	elem.style.display = 'none';
    } else {
    	elem.style.display = '';
    }
    }

     

    un uzliec onclick="toggle('kaukaads_id')" jebkuram elementam

  2. 1. Pārliecinies, ka direktorija kuru uztaisa skripts ar mkdir ir patiešām 0777;

    2. Iespējams vaina ir tajā ka direktorijas owners ir php process. Tapēc arī chown nenostrādā (tad jau katrs muļķis varētu nomainīt owneri kaut vai root direktorijai);

     

    Risinājums:

    ftp_mkdir un ja vajag ftp_chmod.

     

    Šādi izveidotai direktorijai owners automātiski būs tas caur kuru notika ftp konekcija.

  3. Tikko atklāju stulbu dīvainību:

     

    Pēc session_write_close() man neredirektējas ar header('Location: '.blabla);

    Bez session_write_close skripts nokaras uz mūžīgo ielādi, taču līdz šodienai bez tā lieliski iztiku...

     

    Tagad nesaprotu vai problēma ir klienta pusē ar browseri vai tomēr ar servera galā kaut kas ir mainīts.

     

    Ir idejas?

  4. Es ar to cīnos mazliet sarežģītāk:

     

    1. ar preg_match salīdzinu User-Agent stringu ar jau zināmu spambotu User-Agent fragmentu sarakstu (šobrīd ~50 gab).

    Tas ar zināmu ticamību atsijā ļaundabīgākos spambotus, lai gan protams User-Agent gan var viegli nofeikot.

    2. bilde;

     

    Pēc pieredzes 1. etapā aizrijas lielākā daļa aktīvāko spambotu un tos tikai pāris gadījumus, kad tomēr ielīda forumā, piebeizdu ar bildi.

  5. Kā ar php var dabūt faila permisijas (modes) neizmantojot ftp_rawlist(), shell_exec() utml funkcijas?

    Skaitās, ka stat() dod ārā informāciju par failiem, taču īsti neredzu kā lai no iegūtajiem rezultātiem izkasa piemēram '0644'...

  6. Nesen servadmins kaut ko izmainījis php konfigurācijā (mani protams nebrīdinot) un kopš tā laika pilnībā pazuduši E_ERROR paziņojumi.

    Tā vietā sktipts tiek vienkārši norubīts bez jebkādām pazīmēm, kas norādītu uz iemeslu.

     

    php.ini display_errors = on;

    nelīdz arī error_reporting(E_ALL), lai gan visi pārējie normāli uzrādās, ieskaitot E_NOTICE un E_STRICT

     

    Pirmajā dienā 3 stundas mocījos kamēr sapratu, kas vispār notiek...

     

    Ir kādas idejas kur meklēt problēmu? Jo arī pats admins nezin ko tur ir samudrījis.

  7. Folderis "/var/tmp/" kurā faili tiek uploadoti ir writable ('drwxrwxrwt' ja precīzāk) un tajā tiek uploadoti faili no web formas.

    Tālākais faila liktenis jau ir atkarīg no PHP konfigurācijas

    Tad ftp_put (arī move_uploaded_file) tikai pārvieto failu "/var/tmp/phpSPa9f6" uz "/usr/userfolder/bla_bla/bilde.jpg". Un ne vairāk.

    Vārdsakot failu var bakstīt kamēr viņš ir iekš "/var/tmp/"

     

    Apmēram tā varētu būt, vismaz to es izsecināju no manu skriptu darbības, jo nekur neesmu lasījis aprakstu kā tas viss darbojas īstenībā.

  8. Es šādu heveru dabūju gatavu uz ĻOTI apgraizīt servera apmēram šādi (safe-mode compatible):

     

    /* bla bla bla */
    //Uzmet failu un pasaka kas noticis
    if(ftp_put($conn_id,$filename,$_FILES['userfiles']['tmp_name'],FTP_BINARY)) {
    	echo "Fails ".$_FILES['userfiles']['name']." tika augshupielaadeets<br>";
    	if (resize_jpg ($_FILES['userfiles']['tmp_name'],$_FILES['userfiles']['tmp_name'],100,100) && ftp_put($conn_id,$thumb_filename,$_FILES['userfiles']['tmp_name'],FTP_BINARY)) { // resize_jpg (source,target,sizeX,sizeY)
    		echo 'un izveidots thumbnails.';
    	} else {
    		echo 'taču thumbnailu izveidot neizdevās.';
    	}
    }
    /* bla bla bla */

     

    Tobiš bildes resaizots tiek TEMP fails un tikai tad nolikts vajadzīgajā direktorijā, līdzīgi var resaizot arī lielo bildi (protams pirms thumbnaila ģenerēšanas).

     

    Bet vispār failus safe-modē var pilnīgi mierīgi rakstīt izmantojot FTP:

    $handle= fopen('ftp://'.FTP_USER.':'.FTP_PASS.'@'.FTP_HOST.'/'.$filename, 'wb');

    un tālāk jau kā parasti...

  9. mazliet offtopic

     

    Kā jau bieži vien šajā forumā gadās, diskusija no "" pāriet uz "kāpēc", bet ja precīzāk, tad uz "a nafig vajag".

     

    Protams bieži vien problēma ir tajā, ka cilvēks nespēj izklāstīt lielo/sarežģito domu rakstiski pāris teikumu postā, tapēc paskaidrojumu noreducē līdz pamatproblēmai, neiedziļinoties iemeslos.

    Un galu galā kāda starpība, cik tas liekas [ir]racionāli vienam vai otram, svarīgi ir tas, ka cilvēks ir ar to gatavs čakarēties līdz sliktai dūšai un tapēc šeit interesējas kā atrisināt konkrēto paša radīto problēmu kaut mazliet nesāpīgāk.

     

    Lai tik kāds mēģina man iestāstīt, ka nekad pats nav mēģinājis izveidot kaut ko nestandarta, lai arī tas būtu sarežģītāk, bet "glaunāk"...

     

    Daudzmaz mēģinājis atbildēt ir andrisp, pārējie kā jau parasti bīda demagoģiju...

  10. Ka tik tā mysql_close() doma nav tajā, ka, ja jau esošas konekcijas vidū esi kaut ko darījis citā DB, aizver vairs nevajadzīgo konekciju un turpini darbināt sākumā atvērto.

     

    Nu baigais savārstījums sanāca, bet ceru ka doma +/- saprotama.

     

    Galu galā:

    mysql_query ( string query [, resource link_identifier] );

    "If the link identifier is not specified, the last link opened by mysql_connect() is assumed."

×
×
  • Create New...