Jump to content
php.lv forumi

Venom

Moderatori
  • Posts

    1,918
  • Joined

  • Last visited

Posts posted by Venom

  1. manīts nav, bet var kaut ko štukot ar version_compare, resp. katru reizi pierakstot kādu "aizdomīgo" f-ju, apskatīties chm manuālī no kuras versijas tas viss iet un tad meklēt arī alternatīvos risinājumus.

    bet drošākais risinājums tomēr prasīt hosteriem atjaunot versiju

  2. vienīgā fīča, ko der ievērot portabilitātes labad - ka image*() f-jas (imagejpeg(), imagepng() etc), kad saglabā bildi uz cietņa, uzliek tai kaucākādas mistiskās tiesības (nezinu, kā tagad jaunākās versijās, bet 4.3.x pirmsākumos tā vel bija), tāpē /me lieto variantu ar

     

    ob_start(); //sākam izvada pārtveršanu

    image*($source); //nenorādam kur ieglabāt, izvadām "ekrāna" buferī

    $tmp=ob_get_clean(); //izvadīto ieglabājam mainīgajā un attīram no bufera

    $fp=@fopen($this->file,'wb'); //rakstām failā binārā režīmā

    fwrite($fp,$tmp);

    fclose($fp);

    chmod($fp,0775); //uzliekam failam tiesības kādas nu vajaga

  3. tikuntā nesapratu

    .

    /

     

    vai teu jāzin mapes nosaukums? tad ņem nost enctype=\"multipart/form-data\", lai tas faila/mapes nosaukums tev ietu kā parasts strings. un tad no tā visu līdz pēdējam /.

  4. Kā var noteikt vai kods ir effektīvs un kaa var pārbaudīt koda ātrdarbību?

    (sorry par translitu - universitaates linukss)

    sasniedzot zinaamu zinaashanu liimeni.

    ja skaties uz cita kodu un domaa - sheit es sho-to paarrakstiitu, tad tas vareetu buut neefektiivs

     

    jautaajums - ko uzskatii par efektivitaati

     

    piem, iekeshot visu svaigaako no datu baazes kaadam 100 lpp (nu taa, ap 3mb lai buutu) - un katru reizi virinaat sho failu vareetu buut aatraak paar apstraadeem un db pieprasiijumiem, tomeer RAMu eed nezheeliigi

    otraadi - leeninsh db novaicaashanas skripts uz laamiem dzelzhiem arii apstraadaas vairaak lietotaaju

     

    zakjku un brunurupuchu jautaajums

    un sheit saakas filosofija

  5. SELECT * FROM pirma_tabula

    RIGHT JOIN otra_tabula ON pirma_tabula.parent=otra_tabula.child AND ...

    RIGHT JOIN tresa_tabula ON pirma_tabula.parent=tresa_tabula.child

    utt.

    WHERE pirma_tabula.id=$_GET['id'] AND ...

     

    ar tiem atbilst_

     

    tik un tā nesapratu

  6. par skaitītāju. piemērām:

    tabula: autoid|hash|seen

     

    kur seen ir INT UNSIGNED DEFAULT "0" NOT NULL

    (pozitīvs netukšs veselskaitlis, pēc noklusējuma 0)

    un hash VARCHAR(32)

     

    tad tur kur vajaga skaitīt -

    $linkhash=md5($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']);

    //hashs, kas atbilst linkam, kāds parādas adreslaukā

     

    $res=mysql_query("UPDATE popular SET seen=seen+1 WHERE hash='".$linkhash."'");

    if (!mysql_affected_rows($res))

    mysql_query("INSERT INTO popular SET seen=1,hash='".$linkhash."'");

     

    un pēc tam populārākās ORDER BY seen DESC

  7. kāpēc lietot: <?php ?>, nevis <? ?>

    pēc defaulta bija <? ?>, bet tad parādījas visādas citādas lietas, ķipa xml/xhtml tags, kurš arī sākas ar <? un beidzas ar ?> (un tad vēl visādi asp ar <%%> utml iraid)

    un tad ej nu php pārserim sazin, kas tur tagad būs.

    uzlika php.ini tādu opciju kā short_open_tags, kas ļauj arī <?=$x?> rakstīt, ja tu esi pārliecināts, ka neizmantosi neko tādu.

     

    koda portabilitātes resp. lai pēc tam neuztraukties, izliekot kodu uz svešā servera, ka vajadzēs "viesu serveri" piekonfigurēt (ja vēl dos tiesības) labāk raxtīt <?php

    un arī <?=x?> vietā - <?php echo $x;?> (ok, to semikolu var izlaist)

     

    un neatdosi gan galus pāris "liekus" burtus uzraxtīdams (man iekš VenPada pat speciāli - var uzraxtīt php un tad nospiest ctrl+space un uzreiz ieliksies <?php

    error_reporting(E_ALL); ?> un kursors pirms ?>, un uzrakstot pecho +to pašu kombināciju - <?php echo ;?> un kursors pirms ";". A register_globals es vienmēr ja ne iekš php.ini, tad .htaccessā nogriežu)

  8. ieliec pašā sākumā, tur, kur pirmais <? (vai pat vēlams, lai tas būtu <?php)

    error_reporting(E_ALL);

     

    $res2=mysql_query('SELECT id, nos FROM brendi');

     

    iekš mysql && zīmei ir mazliet citādāka nozīme, loģiskiem apvienojumiem pierasts lietot AND

     

    while($row=mysql_fetch_row($res)){ 
    ?>
    <TR><TD><A href="./?page=8&prece=<?=$row[4] ?>"><?=$row[1] ?> - <?=$row[0] ?></A></TD></TR>
    <?
    if (empty($res)){ echo "Nav prechu";}}
    ?>

     

    un kas šeit notiek?

    nu protams, ka izvadīsies, ka nav preču, jo ar fetch_row viss arī būs izzīsts

     

    if (empty($res))
    echo "Nav prechu";
    else
    while($row=mysql_fetch_row($res))
    { ?>
    <TR><TD><A href="./?page=8&prece=<?=$row[4] ?>"><?=$row[1] ?> - <?=$row[0] ?></A></TD></TR>
    <? }
    ?>

  9. $res=mysql_query('SELECT ...');
    if (!$res || !@mysql_affected_rows($res))
    {
    _echo 'Nekā nav';
    }
    else
    _while($row=mysql_fetch_row($res))
    _{
    __echo print_r($row,1);
    _}

     

    iemācies pareizi identēt (noformēt ar atstarpēm) kodu, vai vismaz izmanto editoru, kurš iekrāso pāra iekavas, tad arī nesaputrosies ifos/ciklos

     

    citādi tev iekš koda lieks { pirms while iraid

  10. kaut kā tā:

    <div class="labais" style="border:1px solid red;float:right;width:100px">menu menu
    menu menu
    menu menu
    menu menu
    menu menu
    </div>
    <div class="kreisais" style="border:1px solid blue;float:left;margin-right:auto">
    <table border="1" width="100%">
    <tr><td>
    contents contents
    contents contents
    contents contents
    contents contents
    contents contents
    contents contents
    contents contents
    contents contents
    contents contents
    </td></tr>
    </table>
    </div>

  11. kamdēļ iekš onclick izmantot protokolu java script: ? pagaidām neko citu tur neredzēju. validitātes un uzabilitātes pēc iraid jābūt

    <a href="reklāmas links" onclick [note, apakšējā reģistrā]="window.open(reklāmas links,'whatever');return false">Saite</a>

    un tikuntā šis ir sliktāk, nekā ja būtu ļauts target="_blank", jo window.open pārtvers antipopupi

×
×
  • Create New...