Jump to content
php.lv forumi

darksign

Reģistrētie lietotāji
  • Posts

    198
  • Joined

  • Last visited

Posts posted by darksign

  1. tnx, par skaidrojumu, sāku kaut ko saprast, bet ne līdz galam.

     

    Uzliku FF CertViewerPlus spraudni, apskatījos pem failus, izeksportēju un nokopēju pareizo, uztaisīju konekciju caur komandrindu, kā parādīji, viss ok, rādās ka konekcija ir. To pašu pamēģināju nenorādot sertifikāta failu, arī ir ok (nezinu kapēc tā...) rāda ka verified..., tad pamainīju komandu šādi "openssl s_client -verify 10 -connect www.e-latvenergo.lv:443" un atbildē dabūju ne vairs 10 kodu, bet 19 -> "Verify return code: 19 (self signed certificate in certificate chain)", vismaz rezultāts savādāks, sapratu to visu tā, ka ja nenorādu CA failu, tad openssl kaut vai tas sertifikāts nav self signed, bet gan trešās kompānijas izdots, vienalga ja neesmu norādījis savā pusē ka pieņemu, tad rāda self signed (pieļauju, ka FF to apstiprināšanu dara automātiski, ja ierauga pazīstamu izdevējfirmu)

     

    Labi, lai arī tur būtu caur to komandrindu, bet mērķis man ir to visu dabūt caur php kodu. Lai es varētu pieslēgties, nosūtīt post datus (curl) un saņemt atpakaļ atbildi (redzēt sourci).

    No sākuma gribēju izmēģināt ignorējot SSL prasības, pieliku parametrus:

           CURLOPT_SSL_VERIFYPEER      => false,     //Ja gadiijumaa apniik njemties, lai ignoree un iztiek bez handsheika
           CURLOPT_SSL_VERIFYHOST      => false,
    

     

    Šie labi nostrādā uz latvenergo lapu, un viņam var nodot post datus, jo viņam ir po, ko es izmantoju, viņš atbalsta visu, ka tik klients atnāk līdz viņam, kaut vai pa nedrošu kanālu, un sourci varēju redzēt.

    Bet kad šo pašu mēģināju tur kur man vajag, tad nekā... serveris atbildēja, lai eju tējot... bez pareiziem sertifikātiem nekā nedabūšu (kas arī ir pareizi no drošības puses).

     

    Tad nu gribu to sourci uz latvenergo lapu dabūt neizmantojot CURLOPT_SSL_VERIFYPEER un CURLOPT_SSL_VERIFYHOST, jeb viņiem abiem jābūt ir true.

    Kuros curl-setopt parametros man jāiebaro viņam tas pem vai kāds cits sertifikāta fails?

     

    būšu ļoti pateicīgs par konkrētu atbildi :)

  2. nebija vajadzības ar AsynchronousFileChannel. Jo notesteejaam ar to Close() tredos, un ja pirms tam bija kļūda, ka failu nevar atvērt, tad tagad Close() vajadzīgā vietā, un mierīgi uz darba datora var 5-6 reizes milisekundē no vairākām plūsmām aiztikt vienu un to pašu failu, kas man arī ir ok (iepriekš bija problēmas kad tikai 5-6 reizes sekundē pie tā faila vērsos...).

    Tagad nav kļūdas rādījušās pie max patreizējās noslodzes, un izskatās ka būs ok :)

  3. Pamēģini (testa nolūkos) noskaidrot, kas ir parakstītājs tam serverim, kuram slēdzies klāt. Un norādīt šī parakstītāja root CA PEM failu, kā parametru:

    CURLOPT_CAINFO => '/cels/rootCA/failu.crt';

    Piemēram, lapai https://www.e-latvenergo.lv

    ...

     

    Es pamēģināju, šeit kods:

     

    
    <?php
    
    function print_arr($arr)
    {
      echo "<br />\n\n<xmp>\n\n";
      print_r($arr);
      echo "\n\n</xmp>\n\n<br />";
    }
    
    
    /**
    * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
    * array containing the HTTP server response header fields and content.
    */
    
    function get_curl($url)
    {
    
      if (!function_exists('curl_setopt_array'))
      {
         function curl_setopt_array(&$ch, $curl_options)
         {
             foreach ($curl_options as $option => $value)
             {
                 if (!curl_setopt($ch, $option, $value))
                 {
                     return false;
                 }
             }
             return true;
         }
      }
    
      $options = array(
           CURLOPT_RETURNTRANSFER => true,     // return web page
           CURLOPT_HEADER         => false,    // don't return headers
           CURLOPT_FOLLOWLOCATION => true,     // follow redirects
           CURLOPT_ENCODING       => "",       // handle all encodings
           CURLOPT_USERAGENT      => "Firefox", // who am i
           CURLOPT_AUTOREFERER    => true,     // set referer on redirect
           CURLOPT_CONNECTTIMEOUT => 30,      // timeout on connect
           CURLOPT_TIMEOUT        => 60,      // timeout on response
           CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
    
           CURLOPT_CAINFO      => 'www.e-latvenergo.lv.crt',
       );
    
       $ch      = curl_init( $url );
       curl_setopt_array( $ch, $options );   //tikai no php 5 un jaunaakas versijas
       $content = curl_exec( $ch );
       $err     = curl_errno( $ch );
       $errmsg  = curl_error( $ch );
       $header  = curl_getinfo( $ch );
       curl_close( $ch );
    
       $header['errno']   = $err;
       $header['errmsg']  = $errmsg;
       $header['content'] = $content;
       return $header;
    }
    
    
    $url = "https://www.e-latvenergo.lv/";
    
    $web = get_curl($url);
    print_arr($web);
    
    ?>
    
    

     

     

    Šeit rezultāts:

     

    Array 
    ( 
     [url] => https://www.e-latvenergo.lv/ 
     [http_code] => 0 
     [header_size] => 0 
     [request_size] => 0 
     [filetime] => -1 
     [ssl_verify_result] => 0 
     [redirect_count] => 0 
     [total_time] => 0 
     [namelookup_time] => 0 
     [connect_time] => 0.016 
     [pretransfer_time] => 0 
     [size_upload] => 0 
     [size_download] => 0 
     [speed_download] => 0 
     [speed_upload] => 0 
     [download_content_length] => 0 
     [upload_content_length] => 0 
     [starttransfer_time] => 0 
     [redirect_time] => 0 
     [errno] => 77 
     [errmsg] => error setting certificate verify locations: 
    CAfile: www.e-latvenergo.lv.crt 
    CApath: none 
     [content] => 
    ) 
    

     

    Veids kā dabūju to crt failu:

    atvēru caur firefox vaļā https://www.e-latvenergo.lv/, tad nospiedu uz tā zaļā laukuma pie adreses kreisajā pusē, tur "More information"

    tad uzspiedu "View Certificate" un sadaļā "Details" nospiedu "Export..." un saglabāju crt failu.

     

    Šeit ir crt faila saturs (35 rindiņas, pēdējā ir tukša):

     

    -----BEGIN CERTIFICATE-----
    MIIF6jCCBNKgAwIBAgIQU3fUE4h+eRVq5mypwjNaYDANBgkqhkiG9w0BAQUFADCB
    vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
    ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug
    YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv
    VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew
    HhcNMDcxMjE5MDAwMDAwWhcNMDkxMjE4MjM1OTU5WjCCAVQxEzARBgsrBgEEAYI3
    PAIBAxMCTFYxEjAQBgsrBgEEAYI3PAIBAhMBLTESMBAGCysGAQQBgjc8AgEBEwEt
    MRswGQYDVQQPExJWMS4wLCBDbGF1c2UgNS4oYikxFDASBgNVBAUTCzQwMDAzMDMy
    OTQ5MQswCQYDVQQGEwJMVjEPMA0GA1UECBMGTGF0dmlhMQ0wCwYDVQQHFARSaWdh
    MRYwFAYDVQQKFA1BUyBMYXR2ZW5lcmdvMTIwMAYDVQQLFClUZXJtcyBvZiB1c2Ug
    YXQgd3d3LnZlcmlzaWduLmNoL3JwYSAoYykwNTEiMCAGA1UECxMZQXV0aGVudGlj
    YXRlZCBieSBWZXJpU2lnbjEnMCUGA1UECxMeTWVtYmVyLCBWZXJpU2lnbiBUcnVz
    dCBOZXR3b3JrMRwwGgYDVQQDFBN3d3cuZS1sYXR2ZW5lcmdvLmx2MIGfMA0GCSqG
    SIb3DQEBAQUAA4GNADCBiQKBgQCyGT11zkNwqlzIvvRxkgpRjzdDA90nFmcbYgqg
    SB3qTRAUljpw3dVmSbd+MkAR6pO9II9RJeSxA1EDq8RdG1peCMlpYQW4HHIVG2Yn
    0Vv/dHEaDXU3PPeoWIU0oTol3R0G9KoDFpHcJJQu7LEXTs7jKAnmv4Fde0raS6dL
    dniG1wIDAQABo4IBzTCCAckwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwQwYDVR0g
    BDwwOjA4BgtghkgBhvhFAQcXBjApMCcGCCsGAQUFBwIBFhtodHRwczovL3d3dy52
    ZXJpc2lnbi5jaC9ycGEwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cDovL0VWSW50bC1j
    cmwudmVyaXNpZ24uY29tL0VWSW50bDIwMDYuY3JsMCgGA1UdJQQhMB8GCCsGAQUF
    BwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBMB8GA1UdIwQYMBaAFE5DyB127zdTek/y
    WG+U8zji1b3fMG8GCCsGAQUFBwEBBGMwYTAkBggrBgEFBQcwAYYYaHR0cDovL29j
    c3AudmVyaXNpZ24uY29tMDkGCCsGAQUFBzAChi1odHRwOi8vRVZJbnRsLWFpYS52
    ZXJpc2lnbi5jb20vRVZJbnRsMjAwNi5jZXIwbgYIKwYBBQUHAQwEYjBgoV6gXDBa
    MFgwVhYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUS2u5KJYGDLvQUjibKaxLB4sh
    BRgwJhYkaHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nbzEuZ2lmMA0GCSqG
    SIb3DQEBBQUAA4IBAQBusmroMpTEyADXJ8Np+dsCIvORLnrXzzRmjs1iODUaVbOZ
    VXRBR4L+YSaRXVQL9fhFaF5Hdw5EHbIRsJPcdAMmeZzpt05YzSxrcLBHHWkyruWE
    fGhHUwam1YJfNVgJr79dr4S15DUE+Y3T23xYmzxr6gGfYMFPwrlcmsMXkpVT0Y+e
    4cR1WPNtZYXppU2wAOA7DSgXe3vzBtO2gpqrSQf8EfVkWPZwQb7txoTAJhHCtS2P
    G59rxaNO/FxFC7JVoj9VRfsA2ndVsltxkns9Siav5Itzl7szG7Au85pi5g2Ps4ld
    Tn6wjg0jeAw75XGWFVD/XoZEk5POLCXkSTtRSp0k
    -----END CERTIFICATE-----
    
    

     

    Kas tur nav pareizi, kapēc viņš neredz kontentu? Kā viņam pareizi iebarot to sertifikāta failu?

    P.S. Crt fails ir tai pašā direktorijā kur php fails.

  4. to bubu: iespeejams ka neizskataas.. bet shis konkreetais koda gabals ir no ekomercijas moduljiem... tapeec shajaa teemaa ;) bet protams.. tev arii taisniiba ;)

     

    es tagad pameegjinaaju vienkaarshi to failu aizveert.. ar Close() ... simuleejot pluusmaas izskataas ka kljuuda vairs nemetaas.. lai gan pastaav teoreetiska iespeeja.. toties daudz mazaaka.. jo negaida kameer skripts beigsies...

     

    dziivosim.. redzeesim, kaa buus.. vai metiis atkalj kljuudas...

  5. javai es iedodu config failu kuraa ir vairaakas rindas:

     

    server_url=...

    keystore_file_path=

    password=

    tips=JKS

    utt..

    un no turienes tiek panjemti.. nav nekaadi papildus parametri.. un man nav nevienu citu sertifikaatu failu, kaa tas ir "CA" gadiijumaa kur ir laikam 3 faili.. sertifikaats, atsleega, un veel chain fails...!

     

     

    kaa shos pashus pareizi noraadiit ieksh php?

  6. Šei ir veids kā to dara iekš JAVA:

    
    import com.sun.net.ssl.internal.ssl.Provider;
    import java.io.PrintStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.security.Security;
    import java.util.Properties;
    
    public class myClass
    {
    
       public myClass(MyObject object1)
       {
           try
           {
               String s = System.getProperty("java.version");
    
                   .....
    
               ServerURL = ...
               proxyHost = ...
               proxyPort = ...
               httpsHandler = ...
               httpsCipher = ...
               keystoreFile = ...
               keystoreType = ...
               keystorePass = ...
               connectionTimeout = ...
               System.setProperty("javax.net.ssl.keyStore", keystoreFile);
               System.setProperty("javax.net.ssl.keyStoreType", keystoreType);
               System.setProperty("javax.net.ssl.keyStorePassword", keystorePass);
               System.setProperty("javax.net.ssl.trustStore", keystoreFile);
               System.setProperty("javax.net.ssl.trustStoreType", keystoreType);
               System.setProperty("javax.net.ssl.trustStorePassword", keystorePass);
    
               if(httpsHandler != null && httpsHandler.length() > 1)
                   System.setProperty("java.protocol.handler.pkgs", httpsHandler);
    
               if(httpsCipher != null && httpsCipher.length() > 1)
                   System.setProperty("https.cipherSuites", httpsCipher);
    
               if(proxyHost != null && proxyHost.length() > 1)
               {
                   System.getProperties().setProperty("https.proxyHost", proxyHost);
                   if(proxyPort != null && proxyPort.length() > 1)
                       System.getProperties().setProperty("https.proxyPort", proxyPort);
               }
    
               if(connectionTimeout != null)
                   System.setProperty("java.net.connectiontimeout", connectionTimeout);
           }
           catch(Exception exception)
           {
               System.err.println("error: configuration problems (" + exception.getMessage() + ")");
           }
       }
    
       public void openConnection()
       {
           try
           {
               URL url = new URL(ServerURL);
               Conn = (HttpURLConnection)url.openConnection();
               Conn.setDoOutput(true);
           }
           catch(Exception exception)
           {
               System.err.println("error: SSL connection problems (" + exception.getMessage() + ")");
           }
       }
    
       String ServerURL;
       String proxyHost;
       String proxyPort;
       String httpsHandler;
       String httpsCipher;
       String keystoreFile;
       String keystoreType;
       String keystorePass;
       String connectionTimeout;
       HttpURLConnection Conn;
    }
    
    
    

     

    Man nepieciešams šo te uztaisīt ar PHP.

    Butībā nav skaidrs kā konkrētās rindas iebarot php curl vai kādai citai funkcijai iekš php:

               System.setProperty("javax.net.ssl.keyStore", keystoreFile);
               System.setProperty("javax.net.ssl.keyStoreType", keystoreType);
               System.setProperty("javax.net.ssl.keyStorePassword", keystorePass);
               System.setProperty("javax.net.ssl.trustStore", keystoreFile);
               System.setProperty("javax.net.ssl.trustStoreType", keystoreType);
               System.setProperty("javax.net.ssl.trustStorePassword", keystorePass);
    

     

     

    Es domāju šajā virzienā.. bet te kaut kas nestrādā:

     

           //megjinam piesleegties serverim ar shaadiem parametriem
           CURLOPT_SSLKEY      => "/keystores/spec.keystore",       // The name of a file containing a private SSL key.
           CURLOPT_SSLKEYPASSWD      => "xxxparolexxx",       // The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY.
           CURLOPT_POSTFIELDS      => $postfields,
    

     

    šeit ir pilnais kods:

     

    
    function get_curl($url, $postfields)
    {
    
      if (!function_exists('curl_setopt_array'))
      {
         function curl_setopt_array(&$ch, $curl_options)
         {
             foreach ($curl_options as $option => $value)
             {
                 if (!curl_setopt($ch, $option, $value))
                 {
                     return false;
                 }
             }
             return true;
         }
      }
    
      $options = array(
           CURLOPT_RETURNTRANSFER => true,     // return web page
           CURLOPT_HEADER         => false,    // don't return headers
           CURLOPT_FOLLOWLOCATION => true,     // follow redirects
           CURLOPT_ENCODING       => "",       // handle all encodings
           CURLOPT_USERAGENT      => "Firefox", // who am i
           CURLOPT_AUTOREFERER    => true,     // set referer on redirect
           CURLOPT_CONNECTTIMEOUT => 30,      // timeout on connect
           CURLOPT_TIMEOUT        => 60,      // timeout on response
           CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
    
           //megjinam piesleegties serverim ar shaadiem parametriem
           CURLOPT_SSLKEY      => "/keystores/spec.keystore",       // The name of a file containing a private SSL key.
           CURLOPT_SSLKEYPASSWD      => "xxxparolexxx",       // The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY.
           CURLOPT_POSTFIELDS      => $postfields,
           // The full data to post in a HTTP "POST" operation.
           //To post a file, prepend a filename with @ and use the full path.
           //This can either be passed as a urlencoded string like 'para1=val1&para2=val2&...'
           //or as an array with the field name as key and field data as value. If value
           //is an array, the Content-Type header will be set to multipart/form-data.
       );
    
       $ch      = curl_init( $url );
       curl_setopt_array( $ch, $options );   //tikai no php 5 un jaunaakas versijas
       $content = curl_exec( $ch );
       $err     = curl_errno( $ch );
       $errmsg  = curl_error( $ch );
       $header  = curl_getinfo( $ch );
       curl_close( $ch );
    
       $header['errno']   = $err;
       $header['errmsg']  = $errmsg;
       $header['content'] = $content;
       return $header;
    }
    
    
    

     

    Bet rezultātā patreiz dabūju šādu kļūdas ziņojumu:

     

    [errmsg] => SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

     

    Ir kādas idejas?

  7. Vajag bez file lock jeb synchronize režīma, t.i. atvērt failu tikai lasīšanai, lai to nebloķētu, un tai pašā laikā varētu izmantot cita programma:

     

    import java.io.*;
    import java.util.Properties;
    
    ...
           props = new Properties();
           readProperties(s); 
    ...
    
       public void readProperties(String s)
           throws ConfigurationException
       {
           try
           {
               props.load(new FileInputStream(s)); //shii rinda sagaadaa probleemas... kas noved pie exception... katru otro reizi kad izsauc funkciju (sekundes laikaa izsaucu vairaakas reizes...)
           }
           catch(IOException ioexception)
           {
               throw new ConfigurationException("exception reading file (" + s + ")", ioexception);
           }
           getProperties(props);
       }
    

     

    Ja kāds zin, tad būtu ideāli ja pateiktu ko tur var palabot, vai kurā virzienā meklēt !? Iespējams, ir kaut kādi globālie mainīgie javā ko uzstādot tas process notiek savādāk!?

  8. Tur visticamāk nav nekāds sakars ar pašu wordpress.

    Man arī tā gadījās uz viena klienta lapas, kur ir savs php rakstīts.

    Izrādījās pētot logus, ka tur tie faili ir izmainīti caur ftp no ārzemju ip. Kaut kāds botnets uzdarbojies.

    Klients bija dabūjis vīrusu datorā, kurš pārķer ftp paroles. Kamēr kopējis kaut kādus failus.

     

    Problēmu atrisināju vienkārši nomainot ftp paroles.

    Pamainīju drošības pēc arī failiem permisijas uz readonly, katru reizi kad kaut ko mainīju atstāju tikai apachem lai var skatīt.

    Un protams klientam pārinstalēju un iztīriju kompi, uzliku normālu antivīrusu (iesaku esset smart security (nod32) vai kaspersky, bet kaspersky manuprāt bremzē kompi mazliet vairāk nekā nod32).

    Pašus iframe tagus protams vajag uzreiz izdzēst. Pie tam paskaties vai tik uz servera visaadās mapītēs tur pat blakus nav nezināmas izcelsmes html faili... kurus arī vajag izdzēst, citādi google ieliks tevi blacklistā... un ta būs jāraksta vēlstules (caur google webmaster tools ... ), lai njem ārā... (vinji pavisam neiznjem, bet tikai ieliek arhiivaa..)

  9. atradu netā, ka var pielikt šādas rindas:

    MASQUERADE_AS(blah.com)dnl
    MASQUERADE_DOMAIN(blahhost.blah.com)dnl
    FEATURE(masquerade_envelope)dnl
    

     

    Tas viss būtu ļoti jauki, taču lieta tāda, ka vai nu man uz Solaris nedarbojas m4 programma, vai arī īsti neizprotu kā viņai jāstrādā, jo uzrakstot:

    m4 /etc/mail/cf/cf/sendmail.mc > /etc/mail/cf/cf/sendmail_jaunais.cf 
    

     

    Man netiek noģenerēts /etc/mail/cf/cf/sendmail_jaunais.cf fails. Pirmkārt bija kļūdas paziņojums ka fails neeksistē. Labi, uztaisīju to failu

    touch /etc/mail/cf/cf/sendmail_jaunais.cf
    

     

    Nomainīju permisijas uz 777. Bet pēc m4 komandas izpildes vienalga fails tukšs...

     

    Ir kādas idejas vai pieredze?

  10. Man nepieciešams uztaisiit epasta sūtītāju, kas maniem klientiem nosūta normālu epastu. Skripts protams ir ok, visu sūta. Bet tā kā tas epasta sūtītājs atrodas uz kaut kādu iekšējo lokālo serveri un suuta caur domeena mail serveri, tad headeros vēstulē ieraksta šādu info:

     

    Reporting-MTA: dns; www.mansdomens.lv <- shis ir ok
    Received-From-MTA: dns, 192.168.1.2 <- shis nav ok, vajag, lai ir www.mansdomens.lv
    

     

    Nu un daudzi epasta serveri saliidzina abus MTA parametrus.. ja nesakriit tad met spam kastee, vai vispaar nepiegaadaa.

     

    Man nepieciešams lai vareetu uzlikt savu custom "Received-From-MTA". Kā to izdarīt nav ne jausmas.

    p.s. root pieeja pie epasta serveriem protams ir...

     

    p.s.s. salasījos netā, ka iespējams ir jāuzliek t.s. smarthost, bet arī to nesapratu kā izdarīt... (admin lietaas uz solaris + sendmail veel neesmu tik zinošs)

    te ir viens no linkiem, kurš man likās ka kaut ko pasaka:

    http://www.elandsys.com/resources/sendmail/smarthost.html

     

    Problēma līdzīga ir arī šeit:

    http://objectmix.com/sendmail/346079-dealing-rejected-outgoing-mails-due-localdomain-header.html#post1266592

     

    meegjinaaju izmainiit shaadu rindinju sendmail.cf failaa:

    HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
    

     

    aizvietoju ar

    HReceived: $?sfrom www.mansdomens.lv (www.mansdomens.lv [x.x.x.x])
    

     

    Bet visu to izlasot tomēr arī nesapratu kas un kā jādara.. tapēc prasu palīdzību :)

     

    Nesapratu arī vai varu manuāli rediģēt /etc/mail/sendmail.cf failu, vai arī tur kaut kaadu citu failu jāizmaina, un tad viņš jāģenerē (kā to dara???)...

    vai arī tāpat kā crontabiem .. izmaina failu, un tad vinju aktivizē padodot kā parametru kaut kur... ?

     

    Lūdzu izsakiet domas, idejas, un droši visādus linkus... varbuut uzvedinaas uz pareizaas domas :)

  11. Sveiki!

     

    Problēma pavisam vienkārša, apache neraksta error logu (tai pat laikā accesslog tiek veiksmīgi rakstīts, tai pašā direktorijā, un definēts zem tās pašas galvenās direktīvas), kaut gan apache httpd.conf failā ir ielikts defaultais:

     

    ErrorLog logs/error_log
    LogLevel warn
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    CustomLog logs/access_log combined
    

     

    īsti nav skaidrs, vai apache nevar atrast to mainīgo "logs" .. kā jau parasti, šī nav direktorija, bet gan mainīgais, pēc defaultā.. nezinu kur viņš uzstādas.. varbūt problēma ir tajā, ka viņš to mainīgo neredz... ?

    Paši logi ir kā jau parasti: /var/log/httpd/...

     

    Tai pat laikā izveidotajiem virtual hostiem.. ierakstot kādā no to direktīvām apache konfigurācijā, error logi rakstās bez problēmām:

     

    ErrorLog logs/virtual_error_log
    

     

    Vai kāds ir saskāries ar šādu problēmu?

     

    p.s. man ir iedots sainstalēts serveris, neko pa jaunam pārinstalēt nedrīkstu, bet shell access man ir.. kādi ieteikumi? .. googlee jau izskatījos, nevaru atrast, varbūt nenāk galvā īstie keywordi.. ta ka ja kaut ko atrod, iemet linku :) tnx ;)

  12. Līdzīga problēma ir aprakstīta šeit: links

     

    tur izlīdzējās ar ereg("[A-Z]", ....) funkciju.

     

    vēl te viens piemērs:

     

    $test1 = "This started with a capital";
    $test2 = "this one not";
    testCapital($test1);
    testCapital($test2);
    
    function testCapital($aStr)
    {
     $firstChar = substr($aStr,0,1);
     if ($firstChar == mb_strtoupper($firstChar))
     {
     echo "<br>'".$aStr."' starts with a capital.";
     } 
     else 
     {
     echo "<br>'".$aStr."' starts NOT with a capital.";
     } 
    }

     

     

    paartaisi to savaam vajadziibaam un buus ok ;)

  13. ir veel taads Hiren's boot CD .. tur ir visaadi labi riiki (caur "dos" vidi palaizhas) kur var arii kaut kaadus labus darbus izdariit.. pirms kjeras klaat GetDataBack (jo tas ir diezgan ilgs process) ... ir savu reizi ljoti labi nostraadaajis tajaa esoshais, ja nemaldos Norton Disk Doctor.. vai kaut kaads cits dakteris.. :)) pameklee netaa iso failu.. kaut kur ir briivi pieejams

  14. ok.. lieta skaidra..

     

    bet joprojaam taa arii iisti nezinu kaa ieksh php to 16 vai vairaak ciparu skaitli pareizi un skaisti konverteet uz stringu... ir kaada iebuuveetaa funkcija php? vai pasham vien ir shitaas lietas jaacep augshaa?

     

    p.s. vismaz uz aatro skatoties php.net neatradu..

    googlee ierakstot "php int to string" .. atrodas labi varianti kaa stringu paartaisiit uz int.. bet otraadi ir tikai strval($int) un tas pats type castings (string)$int

    bet arii sheit ja cipars lielaaks par 16 simboliem.. tad nekonverteejas taa kaa vajag... :/

     

    viens jau daudz maz normaalaaks veids, kas kaut kaa darbojas buutu:

     

    $a = 123456789123456223;
    $v = number_format($a,0,'.','');

     

    te piemeers:

    $a = 123456789123456223;
    $v = number_format($a,0,'.','');
    var_dump($v); echo "<br />";
    echo (string)$v; echo "<br />";
    echo (string)$a."<br />";

     

     

    un izvads:

     

    string(18) "123456789123456224" 
    123456789123456224
    1.23456789123E+17

     

    cik sapratu no php.net ka to number_format arii izmanto tajos type castingos.. bet nu nezinu kaa vinji tur iebuuveejushi.. tachu ar roku straadaa labaak.. hmm.. laikam vinji veel pa vidu tur kaut kur uz float vai bigint kāsto... !?

     

    ir veel kaads veids kaa tos lielos ciparus ar iebuuveetajaam funkcijaam uz stringiem taisiit?

  15. Tu no skaitļa mēģini dabūt stringa garumu?? Tas tev nešķiet dīvaini?

     

    ja tas buutu C tad es par to uztrauktos.. bet taa kaa tas ir php tad praktiski taa ir skriptu valoda.. un viss tur ir strings.. tikai vinjsh te izliekas dazreiz ka kaut ko paarveersh par skaitljiem :D

     

    nu bet shoreiz laikam tas skaitlja buutiiba te ir svariiga un laikam nostraadaa to ko teica Kavasaky

     

    bet vienalga.. nezinu kapeec piem php neizpilda to type castingu (string)$a

    vai ari shaadu lietu

    $a = $a.""; un te vinjam vajadzeetu konverteeties uz stringu.. bet redz nee.. shis paliek par to pashu intu.. stulbi.

     

    tur jau arii tas joks, ka php nav iisti inti.. tie ir interpreteeti no stringa.. tapeec arii visaadi gljuki

  16. es te iisti nesapratu.. tas ir php bugs vai taa tam buus buut:

     

     

    $a = 123456789123456;
    $b = 123;
    $c = strlen($b);
    $d = strlen($a);
    echo $c."<br />";
    echo $d."<br />";
    $aa =  substr($a, $c, $d);
    echo $aa."<br /><hr />";
    
    
    $a = "123456789123456";
    $b = 123;
    $c = strlen($b);
    $d = strlen($a);
    echo $c."<br />";
    echo $d."<br />";
    $aa =  substr($a, $c, $d);
    echo $aa;

     

    un te izvads:

     

    3
    15
    456789123000
    
    --------------------------------------------------------------------------------
    3
    15
    456789123456

     

     

    Lai arii substr ir jaapadod strings.. tachu liidz shim php to dariija vienkaarshi lieliski savu lietu ar type casting.. un visu vareeja baast par stringu iekshaa a tagad nee..

     

    pat pieliekot substr((string)$a, $c, $d); nekaa neliidz

     

    vienalga pirmajaa variantaa paliek taas 000 galaa.. lai gan iisti nesapratu kapeec.... komentaari???

×
×
  • Create New...