nexpay

نظر شما درباره ي اولين اسكريپت من؟؟؟

شروع موضوع توسط sirjan-designe ‏6 ژانویه 2006 در انجمن PHP

  1. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    سلام دوستان من اولين اسكريپتم رو بعد از سه هفته كار كردن با پي اچ پي نوشتم و گذاشتم اينجا تا شما عيب و ايرادهايي رو كه داره بهم بگيد.اين اسكريپت يك شمارنده هست كه با استفاده از بانك اطلاعاتي و تابع تاريخ شمسي تاريخ ورود هر كاربر و آي آدرس و ساعت وردش رو وارد بانك اطلاعاتي ميكنه.اگر آي پي از قبل توي ركوردهاي table ويزيتور ثبت شده باشه اونو به table هيتس ميفرسته و يكي ديگه از كارهايي كه من انجام دادم اينه كه نشون ميده كاربر از كجا اومده البته اگر كاربر از هاست خودم اومده باشه يعني لينك توي سايت خودم باشه به بانك اطلاعاتي نميفرسته اينم واسه اين گذاشتم كه فقط ريفر هاي سايتهاي ديگه رو بهم بده.اگر هم ميبينيد كه يك كم ساده هست آخه من هنوز تازه كارم در ضمن تا اينجا من هر چي ياد گرفتم مديون سالار كابلي هستم آخه اون بود كه منو توي پي اچ پي راه انداخت.

    كد مربوط به جدولهاي بانك اطلاعاتي
    کد:
    CREATE TABLE Visitor (
      id mediumint(20) NOT NULL auto_increment,
      ip varchar(200),
      second INT NOT NULL,
      min INT NOT NULL,
      hours INT NOT NULL,
       day INT NOT NULL,
      month INT NOT NULL,
      year INT NOT NULL,
      site VARCHAR (255), 
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    CREATE TABLE Hits (
      id mediumint(20) NOT NULL auto_increment,
      ip varchar(200),
      second INT NOT NULL,
      min INT NOT NULL,
      hours INT NOT NULL,
       day INT NOT NULL,
      month INT NOT NULL,
      year INT NOT NULL,
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    CREATE TABLE `useronline` (
      `id` int(10) NOT NULL auto_increment,
      `ip` varchar(15) NOT NULL default '',
      `timestamp` varchar(15) NOT NULL default '',
      PRIMARY KEY (`id`),
      UNIQUE KEY `id`(`id`)
    ) TYPE=MyISAM COMMENT='' AUTO_INCREMENT=1 ;
    


    كد ارتباط با بانك اطلاعاتي كه بايد با اين نام ذخيره بشه mysql_connect.inc.php
    PHP:
    <?php
    $host
    ="db_host";
    $user="db_user";
    $pass="db_pass";
    $db="db_name";
    $mysql_link=mysql_connect($host,$user,$pass);
    mysql_select_db($db,$mysql_link);
    ?>


    كد مربوط به اضافه شدن مقدار به بانك اطلاعاتي
    PHP:
    <?
    require_once(
    'mysql_connect.inc.php');
    require_once (
    'jdf.php');
    $year=jdate("Y");
    $month=jdate("m");
    $day=jdate("d");
    $hours=date("h");
    $min=date("i");
    $second=date("s");
    $referer $_SERVER['HTTP_REFERER'];
    $adress explode("www."$_SERVER['SERVER_NAME']); 
    $query "SELECT ip FROM Visitor"
    $result mysql_query($query); 
    while( 
    $list mysql_fetch_array($result)){
    $ip $GLOBALS['REMOTE_ADDR']; 
    if(
    $ip == $list['ip']){
    $sql="insert into Hits (year,month,day,hours,min,second,ip) values
    ('
    $year','$month','$day','$hours','$min','$second','$REMOTE_ADDR')";
    mysql_query($sql);
    $error TRUE;
    return 
    false


    }

    if(!
    $error){
            if (
    $referer != ""

    if (!
    eregi($adress[1], $referer)) 

        
    $addreferer "INSERT INTO Visitor (site) VALUES ('$referer')"
        
    mysql_query($addreferer); 
      } 
    }
    $sql="insert into Visitor (year,month,day,hours,min,second,ip,site) values
    ('
    $year','$month','$day','$hours','$min','$second','$REMOTE_ADDR','$ref')";
    mysql_query($sql);
    }
    ?>


    كد مربوط به نمايش اطلاعات از بانك اطلاعاتي
    PHP:
    <?php
    //this script writed Ramin Arabzadeh.this is first my script
    require_once('mysql_connect.inc.php');
    require_once (
    'jdf.php');
    $yearjdate("Y");
    $month=jdate("m");
    $day=jdate("d");
    $hours=date("h");
    $min=date("i");
    $second=date("s");
    $month1=($month-1);
    $day1=($day-1);
    $hours1=($hours-1);
    $year_now_hits=mysql_query("SELECT * FROM Hits WHERE year='$year'");
    $row_year_now_hits=mysql_num_rows($year_now_hits);

    $year_now_visitor=mysql_query("SELECT * FROM Visitor WHERE year='$year'");
    $row_year_now_visitor=mysql_num_rows($year_now_visitor);

    $month_now_hits=mysql_query("SELECT * FROM Hits WHERE month=$month and year=$year");
    $row_month_now_hits=mysql_num_rows($month_now_hits);

    $month_now_visitor=mysql_query("SELECT * FROM Visitor WHERE month=$month and year=$year");
    $row_month_now_visitor=mysql_num_rows($month_now_visitor);

    $last_month_hits=mysql_query("SELECT * FROM Hits WHERE month=$month1 and year=$year");
    $row_last_month_hits=mysql_num_rows($last_month_hits);

    $last_month_visitor=mysql_query("SELECT * FROM Visitor WHERE month=$month1 and year=$year");
    $row_last_month_visitor=mysql_num_rows($last_month_visitor);

    $today_hits=mysql_query("SELECT * FROM Hits WHERE day=$day and month=$month and year=$year");
    $row_today_hits=mysql_num_rows($today_hits);

    $today_visitor=mysql_query("SELECT * FROM Visitor WHERE day=$day and month=$month and year=$year");
    $row_today_visitor=mysql_num_rows($today_visitor);

    $yesterday_hits=mysql_query("SELECT * FROM Hits WHERE day=$day1 and month=$month and year=$year ");
    $row_yesterday_hits=mysql_num_rows($yesterday_hits);

    $yesterday_visitor=mysql_query("SELECT * FROM Visitor WHERE day=$day1 and month=$month and year=$year ");
    $row_yesterday_visitor=mysql_num_rows($yesterday_visitor);

    $last_one_hours_hits=mysql_query("SELECT * FROM Hits WHERE hours=$hours1 and year=$year and month=$month and day=$day ");
    $row_last_one_hours_hits=mysql_num_rows($last_one_hours_hits);

    include_once (
    "usersOnline.class.php");
    $visitors_online = new usersOnline();
    print 
    " تعداد افراد آنلاين :  " ."<b>"$visitors_online->count_users() ."</b></p>";
    print 
    "<p>بازديدكنندگان امسال :   "."<b>".$row_year_now_visitor ."</b></p>";
    print 
    "<p>بازديدهاي امسال :   "."<b>".$row_year_now_hits ."</b></p>";
    print 
    "<p>بازديدكنندگان اين ماه :  "."<b>".$row_month_now_visitor."</b></p>";
    print 
    "<p>بازديدهاي اين ماه :  "."<b>".$row_month_now_hits."</b></p>";
    print 
    "<p>بازديدكنندگان ماه گذشته :  "."<b>".$row_last_month_visitor."</b></p>";
    print 
    "<p>بازديدهاي ماه گذشته :  "."<b>".$row_last_month_hits."</b></p>";
    print 
    "<p>بازديدكنندگاه امروز :   "."<b>".$row_today_visitor ."</b></p>";
    print 
    "<p>بازديدهاي امروز :   "."<b>".$row_today_hits ."</b></p>";
    print 
    "<p>بازديدكنندگان ديرورز :   "."<b>".$row_yesterday_visitor ."</b></p>";
    print 
    "<p>بازديدهاي ديروز :   "."<b>".$row_yesterday_hits ."</b></p>";
    print 
    "<p>بازديدهاي 1 ساعت پيش :   "."<b>".$row_last_one_hours_hits ."</b></p>";

    ?>

    كلاس مربوط به نمايش افراد آنلاين كه بايد با اين اسم ذخيره بشه usersOnline.class.php
    PHP:
    <?php
    //this script writed Ramin Arabzadeh.this is first my script
    class usersOnline {

        var 
    $timeout 600;
        var 
    $count 0;
        
        function 
    usersOnline () {
            
    $this->timestamp time();
            
    $this->ip $this->ipCheck();
            
    $this->new_user();
            
    $this->delete_user();
            
    $this->count_users();
        }
        
        function 
    ipCheck() {

            if (
    getenv('HTTP_CLIENT_IP')) {
                
    $ip getenv('HTTP_CLIENT_IP');
            }
            elseif (
    getenv('HTTP_X_FORWARDED_FOR')) {
                
    $ip getenv('HTTP_X_FORWARDED_FOR');
            }
            elseif (
    getenv('HTTP_X_FORWARDED')) {
                
    $ip getenv('HTTP_X_FORWARDED');
            }
            elseif (
    getenv('HTTP_FORWARDED_FOR')) {
                
    $ip getenv('HTTP_FORWARDED_FOR');
            }
            elseif (
    getenv('HTTP_FORWARDED')) {
                
    $ip getenv('HTTP_FORWARDED');
            }
            else {
                
    $ip $_SERVER['REMOTE_ADDR'];
            }
            return 
    $ip;
        }
        
        function 
    new_user() {
            
    $insert mysql_query ("INSERT INTO useronline(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");
        }
        
        function 
    delete_user() {
            
    $delete mysql_query ("DELETE FROM useronline WHERE timestamp < ($this->timestamp - $this->timeout)");
        }
        
        function 
    count_users() {
            
    $count mysql_num_rows mysql_query("SELECT DISTINCT ip FROM useronline"));
            return 
    $count;
        }

    }
    ?>

    در ضمن فايلهاش رو هم گذاشتم
     

    فایل های ضمیمه:

    • Counter.zip
      اندازه فایل:
      5.8 KB
      نمایش ها:
      4
  2. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    آقا یک مشکلی به وجود اومده من این اسکریپتو روی لوکال هاست که امتحان میکنم درست جواب میده یعنی آی پی که قبلا ذخیره شده در ویزیتور رو به هیتس میفرسته ولی در روی سرور سایتم درست جواب نمیده و فقط اولین آی پی که وارد میشه رو وارد ویزیترو میکنه و بقیه رو وارد هیتس میکنه (با چند تا آی پی هم امتحان کردم)دلیلش چیه نکنه اون دستور حلقه و if ...else رو بد گذاشتم یک کمکی بکنید؟؟"؟؟
     
  3. iransbs

    iransbs کاربر تازه وارد

    تاریخ عضویت:
    ‏3 می 2005
    نوشته ها:
    471
    تشکر شده:
    0
    محل سکونت:
    ایران، مازندارن، ساری
    دوست عزیز بزرگ ترین مشکل شما تعداد بیش از حل کویری ها هست با اجرا این برنامه سرور خیلی سریع دان می شه
     
  4. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    اره بابا اگه بازدید بره بالا که سرور مدیونمون می کنه
     
  5. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    آقا ممنون یعنی فقط مشکلش همینه خوب به نظرت چیکار کنم تا تعداد کویری هام بیاد پایین خوب میتونم فقط تعداد بازدیدهای امروز و دیروز و کل رو بدم (ولی اینطوری که حال نمیده آخه نصف امکانتش میپره)یه راه خوب پیشنهاد کنید ممنون
     
  6. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    مثل اینکه واقعا هیشکی منو دوست نداره آخه اگه این کم محلی به مرغم کرده بودین دیگه تخم نمیذاشت!!!:( :( :( :( :( :( :( :( :( :(
     
  7. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    یک چیزی رو توجه کردین نصف پستهای این تاپیک رو خودم زدم خوب دیگه باید یک اعتماد به نفس کاذبی داشته باشم
     
  8. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    خوب ببین اول همه این ا رو یه فایل zip کن بزار راحت دانلود کنند که راحت تست کنند
    بعد ببین ایم کدت
    PHP:
    <?php 
    //this script writed Ramin Arabzadeh.this is first my script 
    require_once('mysql_connect.inc.php'); 
    require_once (
    'jdf.php'); 
    $yearjdate("Y"); 
    $month=jdate("m"); 
    $day=jdate("d"); 
    $hours=date("h"); 
    $min=date("i"); 
    $second=date("s"); 
    $month1=($month-1); 
    $day1=($day-1); 
    $hours1=($hours-1); 
    $year_now_hits=mysql_query("SELECT * FROM Hits WHERE year='$year'"); 
    $row_year_now_hits=mysql_num_rows($year_now_hits); 

    $year_now_visitor=mysql_query("SELECT * FROM Visitor WHERE year='$year'"); 
    $row_year_now_visitor=mysql_num_rows($year_now_visitor); 

    $month_now_hits=mysql_query("SELECT * FROM Hits WHERE month=$month and year=$year"); 
    $row_month_now_hits=mysql_num_rows($month_now_hits); 

    $month_now_visitor=mysql_query("SELECT * FROM Visitor WHERE month=$month and year=$year"); 
    $row_month_now_visitor=mysql_num_rows($month_now_visitor); 

    $last_month_hits=mysql_query("SELECT * FROM Hits WHERE month=$month1 and year=$year"); 
    $row_last_month_hits=mysql_num_rows($last_month_hits); 

    $last_month_visitor=mysql_query("SELECT * FROM Visitor WHERE month=$month1 and year=$year"); 
    $row_last_month_visitor=mysql_num_rows($last_month_visitor); 

    $today_hits=mysql_query("SELECT * FROM Hits WHERE day=$day and month=$month and year=$year"); 
    $row_today_hits=mysql_num_rows($today_hits); 

    $today_visitor=mysql_query("SELECT * FROM Visitor WHERE day=$day and month=$month and year=$year"); 
    $row_today_visitor=mysql_num_rows($today_visitor); 

    $yesterday_hits=mysql_query("SELECT * FROM Hits WHERE day=$day1 and month=$month and year=$year "); 
    $row_yesterday_hits=mysql_num_rows($yesterday_hits); 

    $yesterday_visitor=mysql_query("SELECT * FROM Visitor WHERE day=$day1 and month=$month and year=$year "); 
    $row_yesterday_visitor=mysql_num_rows($yesterday_visitor); 

    $last_one_hours_hits=mysql_query("SELECT * FROM Hits WHERE hours=$hours1 and year=$year and month=$month and day=$day "); 
    $row_last_one_hours_hits=mysql_num_rows($last_one_hours_hits); 

    include_once (
    "usersOnline.class.php"); 
    $visitors_online = new usersOnline(); 
    print 
    " تعداد افراد آنلاين :  " ."<b>"$visitors_online->count_users() ."</b></p>"
    print 
    "<p>بازديدكنندگان امسال :   "."<b>".$row_year_now_visitor ."</b></p>"
    print 
    "<p>بازديدهاي امسال :   "."<b>".$row_year_now_hits ."</b></p>"
    print 
    "<p>بازديدكنندگان اين ماه :  "."<b>".$row_month_now_visitor."</b></p>"
    print 
    "<p>بازديدهاي اين ماه :  "."<b>".$row_month_now_hits."</b></p>"
    print 
    "<p>بازديدكنندگان ماه گذشته :  "."<b>".$row_last_month_visitor."</b></p>"
    print 
    "<p>بازديدهاي ماه گذشته :  "."<b>".$row_last_month_hits."</b></p>"
    print 
    "<p>بازديدكنندگاه امروز :   "."<b>".$row_today_visitor ."</b></p>"
    print 
    "<p>بازديدهاي امروز :   "."<b>".$row_today_hits ."</b></p>"
    print 
    "<p>بازديدكنندگان ديرورز :   "."<b>".$row_yesterday_visitor ."</b></p>"
    print 
    "<p>بازديدهاي ديروز :   "."<b>".$row_yesterday_hits ."</b></p>"
    print 
    "<p>بازديدهاي 1 ساعت پيش :   "."<b>".$row_last_one_hours_hits ."</b></p>"

    ?> 


    خیلی اضافه داره که یک باز fetch کنی و بعد متغییری بخوانی
    این طوری:
    PHP:
    $mycn=    //database conect hast
    $sql=mysql_query("SELECT * FROM Hits WHERE month=$month1 and year=$year"); 
    $result=mysql_query($sql,$mycn);
    $row=mysql_fetch_array($result);


    $row_last_month_visitor=$row(month_now_hits); 
    $row_last_month_visitor=$row(month_now_visitorr); 
    $row_last_month_hits=$row(last_month_hits); 
    $row_last_month_visitor=$row(last_month_visitor); 
    امید وارم یکم کمک کرده باشم یادت نره برای دانلود یک فایل zip حتما بزار
     
  9. first saeed

    first saeed Registered User

    تاریخ عضویت:
    ‏25 آگوست 2005
    نوشته ها:
    813
    تشکر شده:
    2
    محل سکونت:
    PubliC_HtmL
    سلام

    اين قضيه rating اين تاپيك چيه؟:blink:
     
  10. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    آقا HBA ممنون از جوابت واقعا خوشحالم کردی درباره RATING هم من دیدم بالای سطر ستاره داره خودم زدم شاید یکی به درد دلمن برسه که رسید البته
     
  11. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    حامد هستم
    خوشحالم استفاده کردی
     
  12. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    حامد جان فقط يك مشكلي من اينو كه گفتي درست نگرفتم ميدونم تو همه رو به آرايه تبديل كردي ولي آخه چه جوري ميشه تعداد ركودهاي آرايه ها رو بشمارم؟؟؟؟يكم توضي بده ممنون
     
  13. avajang.com .leftjee.ir.right
  14. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    این طوری می شمارند
    select count(*) from table
    دیدی باید رو توابع مای اسکیوال بیشتر کار کنی اصل php به نظر من همینا هست

    برای گرفتن چند بار هم for می زاری چند بار fetch می کنی و echo می کنی
     
  15. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    مشکل همین تعداد زیاده
    از همین روشی که حامد گفت یه استفاده بکن چون درسته!
     
  16. sirjan-designe

    sirjan-designe کاربر تازه وارد

    تاریخ عضویت:
    ‏16 نوامبر 2005
    نوشته ها:
    58
    تشکر شده:
    0
    محل سکونت:
    سرزميني كه اپن سورسه
    میشه حد اقل یک خط واسم بنویسید یا یک کمتوضی بدید شرمنده ها
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal