/E-Haci.net

texnologiya, elm, təhsil mövzularında düşüncələr

Author: E-Haci

  • PHP class və sadə nümunə

    PHP-də obyekt yönümlü proqramlaşdırmanın əsasında CLASS məntiqi dayanır. Class obyektin tərifidir, obyektin xassələrini, metodlarını təyin edir. Sadə nümunə gətirək: Məsələn qrafik qurmaq üçün bir ümumiləşmiş proqram hissəsi-class yazılır, daha sonra o klassdakı funksiyaların parametrlərinə müxtəlif qiymətlər ötürməklə obyekt təyin olunur: Temperatur-zaman qrafiki, sürət-zaman qrafiki və.s.

    İndi isə CLASS-ın daha anlaşılan olması üçün PHP-də sadə bir class qurub istifadə edək.

    <?php
    class web_sehife
    {
    function bash_hisse($sehife_baslighi,$charset,$content)
      {
      echo '<head>';
      echo '<meta http-equiv="Content-Type" content="'.$content.'; charset='.$charset.'" />';
      echo '<title>'.$sehife_baslighi.'</title>';
      echo '</head>';
      }
    
    function esas_hisse ($ust_logo,$sol_menyu_link,$sol_menyu_metn,$esas_metn)
      {
      echo '<body>';
      echo '<img src="'.$ust_logo.'">';
      echo '<table width="100%" style="height:90%"><tr>';
      echo '<td valign="top" width="10%">';
      for ($i=0;$i<=(count($sol_menyu_link)-1);$i++) {echo '<a       href="'.$sol_menyu_link[$i].'">'.$sol_menyu_metn[$i].'</a>
      ';}
      echo '</td>';
      echo '<td valign="top">'.$esas_metn.'</td>';
      echo '</tr></table>';
      }
    
    function ashaghi_hisse($muellif,$istehsal_ili)
      {
      echo '<table width="100%" style="height:10%"><tr>';
      echo '<td> Səhifəni hazırladı: '.$muellif.' – '.$istehsal_ili.'</td>';
      echo '</tr></table>';
      echo '</body>';
      }
    }
    
    $sol_menyu_metn[0]='Ana səhifə';$sol_menyu_metn[1]='Google'; $sol_menyu_metn[2]='Əlaqə';
    $sol_menyu_link[0]='index.php';$sol_menyu_link[1]='http://google.com'; $sol_menyu_link[2]='#';
    
    $el=new web_sehife();
    $el->bash_hisse('Sınaq','utf-8′,'text/html');
    $el->esas_hisse('her_hansi_shekil.jpg',$sol_menyu_link,$sol_menyu_metn,'Saytin esas metn hissesi');
    $el->ashaghi_hisse('Elvin85′,'Dekabr,2009′);
    ?>
    

    Nümunədəki web_sehife CLASS-ı baş logo, sol menyu, əsas mətn və aşağı hissədən-footerdən ibarət veb səhifə generasiya edir. $obyektimiz isə CLASS tipli dəyişəndir, yəni obyektdir. Obyektin hansı CLASS-a aid olduğunu elan etməklə biz CLASS-ın funksiyalarından istifadə edib sadə bir veb səhifə qurduq.

  • İngiliscə-Azərbaycanca texniki lüğət sistemi

    İngiliscə-Azərbaycanca texniki lüğət sistemi – www.en2az.net
    screen
    Müəlliflər: Elvin HacıFərhad Ələkbərov.

  • PHP-də verilənin MySQL-dən Flash-ə və əksinə ötürülməsi

    Flash-dən Mysql-ə və əksinə verilən ötürmək zərurəti veb-də flash applicationlardan istifadə edən hər bir proqramçıya lazım ola bilir.(flash oyun, flash test və.s.-lərdə registration, highscore və.s.-in bazaya yazılması və ordan oxuması). Bunun üçün bir neçə üsulla rastlaşmışam indiyədək, mən öz istifadə etdiyimi, özüm düzüb qoşduğumu paylaşıram.

    1. Mysql-dən flasha. Bu bir az sadədir, belə ki, sehife1.php faylındakı flash obyektin html kodundakı faylın adına GET metodu ilə lazımı dəyişəni ötürürük.


    $deyishen=mysql_result(mysql_query("select ad from cedvel where id='1';"),0);

    Tutaq ki yuxarıdakı kimi mysql-dən veriləni dəyişənə mənimsətdik, indi onu flasha ötürək.

    <object classid.....

    <param name="movie" value="biliklimsn.swf?deyishen=" />
    ....
    <embed src="biliklimsn.swf?deyishen=".......

    Iş tamamdır, flash faylın daxilində _root.deyishen dəyişəni məhz biz istəyən mysql verilənidir indi.

    2. İndi isə flashda emal olunmuş veriləni əksinə, php-dən mysql-ə qaytaraq.

    sehife2.php adlı fayla bu kodu əlavə edirik:

    $input = file_get_contents("php://input");
    mysql("update cedvel set ad='$input' where id='1'");
    echo 'İş tamamdır';

    Daha sonra sehife1.php-dəki uyğun flash faylın root freymlərindın birinə bu kodu daxil edirik.

    my_str = _root.deyishen+'aaa';
    var my_xml:XML = new XML(my_str);
    my_xml.contentType = "text/xml";
    var receive_xml:XML = new XML();
    receive_xml.onLoad = function(success){
    if(success){

    _root.status.text=this.toString();

    my_xml.sendAndLoad("sehife2.php", receive_xml);

    } else {
    _root.status.text="Xəta baş verdi";
    }
    }

    Bununla da əsas mexanizm təsvir olundu. Bu mexanizmlə istənilən sayda və həcmdə veriləni bazadan flasha və əksinə ötürmək olar. Məsələn əgər istifadəçi sehife1.php faylında flash oyun oynayırsa, və ordakı istifadəçi adını dəyişmək istəyirsə, o halda oyun başlayanda 1) vasitəsi ilə onun adı flasha ötürülür, flashda redaktə etdikən sonra submit edir, və 2) vasitəsi ilə ad bazada update olunur.

  • PHP linklər

    php.net
    free-php.net
    php.su
    phpclasses.org – Classes
    www.smashingmagazine.com – PHP Tools
    20 BEST PHP LIBRARIES

    Faydalı saytlar yüzlərlədir, hələ ki, yadıma düşənlər bunlar, yazını redaktə edib əlavə edərəm yadıma düşdükcə. Bu yöndə faydalı sayt bilənlər varsa, commentsə yazsalar əla olar.

  • Web proqramlaşdırmaya başlamaq istəyənlərə

    Web proqramlaşdırmaya başlamaq istəyənlərə(proqramlaşdırma ilə məşğul olanlara aiddir təbii ki) bələdçi planım:

    1. Front Page yaxud Dreamweaver proqramlarından birini install etməklə statik veb səhifələrin düzəldilməsi üzərində məşqlər.

    2. HTML, CSS, JAVASCRİPT-i mənimsəməyə başlamaq. Dərslik kimi w3schools.com məsləhətlidir.

    3. PHP, MYSQL, AJAX öyrənməyə başlamaq. Yenə də w3schools.com məsləhətlidir.

    4. Hazır php, javascript classlar, css-lər yükləyib onların kodları üzərində çalışmalar.
    phpclasses.org, mootools.net, free-css.com və.s. saytlar məsləhət görülür.

  • Jquery gallery

    Bu ünvanda baxa və yükləyə bilərsiniz.

  • Simple AJAX

    Ajax barədə veb proqramlaşdırma haqda məlumatlı insanlar yəqin ki, çox eşidib. Son illər veb proqramlaşdırmada istifadə olunan ən önəmli nailiyyətlərdən biridir desək, yanılmarıq.

    AJAX özü ayrıca proqramlaşdırma dili deyil, adın açmasından(“asynchronous JavaScript and XML”-termin kimi ilk dəfə 2005-ci ildə James Garret tərəfindən işlədilib. )göründüyü kimi XML və JavaScriptin asinxron işlədilməsindən doğan yeni texnologiyadır.

    Əsas qayə səhifə bütöv yüklənmədən səhifədəki verilənlərin serverə ötürülməsi və uyğun emal olunmuş cavabın qəbuludur. Ən tanınmış saytlardan nümunə gətirək:

    1. Facebook – Facebook demək olar ki bütövlüklə AJAX ilə “geyindirilib”. Məktubların göndərilməsi, şərhlərin yazılması, səsvermələr, reklamlar, dəvətlər, paylaşım bölmələri və.s. AJAX əsasında işləyir. Yəni siz məlumatı səhifə bütöv yüklənmədən ötürür(məsəsən rəy,ismarış yazmaq) və qəbul edirsiniz(məsələn tanıyan biləcəyiniz dostlar siyahısı, online dostlar siyahısı və.s.)

    2. Twitter – Bu saytda da AJAX-dan geniş istifadə olunub. Favorites, Direct Message, @Nickname linkləri, update düyməsi – bunlar hər biri AJAX ilə çalışır.

    Nümunələr çoxdur, təbiidir ki, müasir veb saytların mütləq əksəriyyəti AJAX-dan istifadə etməyə məcburdurlar, çünki hazırda ona ideal alternativ yoxdur.

    Mail servislər də bu texnologiyadan geniş istifadə edirlər, Azərbaycanda tanınan veb poçt saytlarından yalnız Mail.ru hələ də ənənəvi proqramından istifadə edir, onda AJAX-a aid nəyəsə rast gəldiyimi xatırlamıram. Əvəzində Hotmail, Gmail, Yandex Mail(neo version) və.s. saytlar başdan ayağa AJAX ilə çalışırlar.

    İndi isə öz istifadə etdiyim, sadə bir AJAX loader nümunəsini sizlərlə paylaşıram. Bu nümunə verilən linkə tıkladıqda səhifənin istənilən zonasını reload edə, ordakı köhnə məlumatı, yenisiylə əvəz edə bilər, təbii ki bu zaman səhifənin bütöv təkrar yüklənməsinə gərək olmur.

    1. Javascript test.js faylı create edin və daxilinə bu kodu əlavə edin:

    var xmlhttp = false;

    try {

    xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”);

    } catch (e) {

    try {

    xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);

    } catch (E) {

    xmlhttp = false;

    }}

    if (!xmlhttp && typeof XMLHttpRequest != ‘undefined’) {

    xmlhttp = new XMLHttpRequest();

    }

    var showlayer = true;

    function myajax(serverPage,objID) {

    if (showlayer == true ){

    var oldcontent=document.getElementById(objID).innerHTML ;

    document.getElementById(objID).innerHTML = “Yüklənir…“;

    var obj = document.getElementById(objID);

    xmlhttp.open(“GET”, serverPage);

    xmlhttp.onreadystatechange = function() {

    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

    obj.innerHTML = xmlhttp.responseText;

    }

    }

    xmlhttp.send(null);

    } else {

    showlayer = true;

    document.getElementById(objID).innerHTML = “”;

    }}

    2. data.html faylını create edin və daxilinə bu kodu yazın:

    Verilənlər yükləndi!

    3. İndi isə sadə bir html test.html faylı create edin və oraya bu kodu daxil edin:

    <script src=”test.js” type=”text/javascript”></script>

    <div id=”ajaxfield”></div>

    <a onclick=”myajax(‘data.html’,’ajaxfield’)” href=”#”>Ajax link</a>

    Bununla da AJAX-ı sadə bir nümunədə test edə və bu sadə model üzərində istədiyiniz əksər AJAX məsələni həll edə bilərsiniz. Məsələn test.html faylındakı showHide(‘data.html’,’datalayer’) funksiyasında data.html əvəzinə data.php istifadə etsək və data.php?deyishen=ad_soyad yazıb data.php faylında bu ad_soyad-a uyğun bazaya müraciət göndərib məlumat almaq kifayət qədər çox məsələlərin həllində köməkçi ola bilər.

  • PHP and MsSQL

    If you want to use mssql with php, it is easy.

    Open php.ini file in your php root folder of your localhost (for examle, in vertrigo server, C:/…/Vertrigo server/php/php.ini) and edit this line:  ;extension=php_mssql.dll. Delete ‘;’ this and save document. Then download from internet php_mssql.dll for php , then copy this file to the php root folder of your localhost.  restart the server. Mssql connection now will work finely. All mysql functions works as mssql functions. You just need to change ‘y’ to ‘s’.  🙂  For example mysql_connect -> mssql_connect.

  • Security digits in php (captcha) for login pages

    Simplest captcha generator:

    Add this code to the login form:

    <?

    if (isset($_POST[“code”]) and  isset($_SESSION[“seccode”])  and $_POST[“code”]==$_SESSION[“seccode”])
    {

    echo ‘Correct security code’;’

    }

    else

    {

    echo ‘Incorrect security code’;

    }

    // 5 digit security number.

    $t1=rand(1,9);$t2=rand(1,9);$t3=rand(1,9);$t4=rand(1,9);$t5=rand(1,9);
    $code=$t1.”.$t2.”.$t3.”.$t4.”.$t5;
    $_SESSION[“seccode”]=$code;

    ?>

    <input name=”code” type=”text” id=”code” maxlength=”5″> <img src=”cap.php” />

    Create cap.php file in root folder and add this code there:

    <?php
    session_start();

    $image = writeToImage(‘seccap.jpg’, urldecode($_SESSION[“seccode”]));

    imagejpeg($image);

    function writeToImage($imagefile, $text){
    if(file_exists($imagefile))
    {
    $image = @imagecreatefromjpeg($imagefile);

    $text_color = imagecolorallocate($image, 13, 14, 191);

    imagestring($image, 6, 15, 3,  “$text”, $text_color);
    }
    else
    {
    $image  = imagecreatetruecolor(150, 30);
    $bgc = imagecolorallocate($image, 255, 255, 255);

    $tc  = imagecolorallocate($image, 0, 0, 0);
    imagefilledrectangle($image, 0, 0, 150, 30, $bgc);
    imagestring($image, 1, 5, 5, “Error loading $imagefile”, $tc);
    }
    return $image;

    }

    ?>

    Create small jpg file named ‘seccap.jpg’ with wished background, and upload it to a root folder of your website.

    CAPTCHA SECURITY FOR YOUR WEBSITE IS READY!!! 🙂