• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

چطوری اطلاعاتم رو از دیتا بیس صدا بزنم

taksoftware

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2005
نوشته‌ها
108
لایک‌ها
0
سن
36
سلام بر و بچ یه سوال داشتم اکه کمک کنید که خیلی ممنون میشم سوالم اینه که
من یه اسکریپ آمار دیروز امروز ... ساختم
بعد میخوام براش کنترل پنل بسازم که مدیر بتونه بره توش امارو ببینه خوب تا اینجا مشکلی ندارم
مشکلم اینه که میخوام اون اطلاعات رو از دیتا بیس صدا بزنم که فقط نشون بده یعنی اجرا نکنه مثلا امروز 4 نفر رفتن مثل چاپ کردن فقط نشون بده یعنی اینکه مدیر رفت تو کنترل پنل به تعدا بازدید ها اضافه نشه امیدوارم فهمیده باشین چی گفتم
PHP:
<?php
echo (" THANKFUL ")
?>
 

pooyesh1

کاربر تازه وارد
تاریخ عضویت
8 ژانویه 2006
نوشته‌ها
75
لایک‌ها
0
سوالت واضح نيست
مگه كنتر رو تو كنترل پنل سايت گذاشتي كه با ورود ادمين كنتر مي ندازه اگه اينطوره مگه بقيه هم به كنترل پنل دسترسي دارن
با اينكه سوالت واضح نيست فكر كنم با قرار دادن يك كولي رو دستگاه خودت و شرط گذاشتن براي اينكه هر كس اين كوكي رو داشت كد كنتر اجرا نشه مشكل شما حل بشه
 

taksoftware

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2005
نوشته‌ها
108
لایک‌ها
0
سن
36
منظورم اینه که من همه اینها رو ساختم تو صفحه اول سایتم هم گزاشتم که به خوبی کار میکنه تا اینجا مفهومه
بعد من برای این اسکریپ یه کنترل پنل ساختم yoursite/conter/admin اوکی
بعد مدیر یوزر پسورد را وارد میکنه میره توش اوکی
تو اون صفحه اطلاعات زیر نوشته شده
بازديد هاي امروز
بازديد هاي ديروز
مجموع بازديد ها
و...
اوکی مثلا امروز 10 نفر رفتن تو سایت وقتی من وارد کنترل پنل مشم به بازدید امروز هم اضافه میکنه و میشه 11 الان کاملا اوکی شد
بعد من میخوام اینطوری نشه وقتی تو کنترل پنل میشم بازدیدرو نشون بده یعنی منی که وارد کنترل پنل میشم حساب نکنه تو کنترل پنل مثل یک چاپ بشه همون 10 رو نشون بده
اینای که گفتم برای مجموع بازدید و بازدید امروز انجام بشه

ممنون میشم دستورشو بنویسید چون مخم سوت کشیده و قدرت فکر ندارم تا چند ساعت

PHP:
<?php
echo(" Mer30 ")
?>
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
42
محل سکونت
PubliC_HtmL
سلام

خوب شما نبايد همه کد ها رو در يک صفحه بنويسي
کدهاي قسمت ادمين رو در يک صفحه جدا بنويس و اون اسکريپي که تعداد بازديدکنندها را ثبت مي کنه از کدهاي صفحه ادمينت حذف کن و فقط کدهايي رو باقي بزار که اطلاعات رو از ديتابيس باز خواني مي کنن
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
خوب این که خیلی سادست
یه دونه if بذار و بگو اگه صفحه ای که الآن توشیم (PHP_SELF) مساوی با صفحه ادمین بود کد کانتر رو اجرا نکنه ! :D
 

taksoftware

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2005
نوشته‌ها
108
لایک‌ها
0
سن
36
علیک سلام
خوب شما نبايد همه کد ها رو در يک صفحه بنويسي
کدهاي قسمت ادمين رو در يک صفحه جدا بنويس و اون اسکريپي که تعداد بازديدکنندها را ثبت مي کنه از کدهاي صفحه ادمينت حذف کن و فقط کدهايي رو باقي بزار که اطلاعات رو از ديتابيس باز خواني مي کنن
جواب دوست عزیز من اونارو تو یه صفحه دیگه نوشتم ودر صفحه ادمین اول این کد رو مینویسم که به بانکم وصل بشه
PHP:
<?
include "counter.php";
?>
بعد اون کدی که مربوط به مثلا بازدید امروز هست اون طوری که تعریف کردم براش
PHP:
<?=$today?>
هست رو چطوری بنویسم که فقط چاپ کنه اجرا نکنه

خوب این که خیلی سادست
یه دونه if بذار و بگو اگه صفحه ای که الآن توشیم (PHP_SELF) مساوی با صفحه ادمین بود کد کانتر رو اجرا نکنه !
خوب برای شما سادست ما تازه رفتیم تو خط php ممنون میشم بیشتر توضیح بدی تا این یه تیکه کدو بنویسی
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
42
محل سکونت
PubliC_HtmL
سلام

خوب وقتي اون صفحه رو include مي کني تو صفحه ادمينت چه فرقي مي کنه بازم شمارنده اجرا مي شه ديگه

براي اتصال به بانک لازم نيست که اينکارو بکني دستور اتصال به بانک اينه :

PHP:
$link=mysql_connect("localhost","username","password");
       mysql_select_db("database name",$link);
بعدشم مي توني با mysql_query اطلاعات داخل جدول هاتو مديريت کني
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
ببین
اصلاً کد این counter.php رو بذار اینجا تا ما کارشو راست و ریست کنیم ;)
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
من فرض کردم که صفحه ی ادمین اسمش acp.php هست
کد کانتر رو داخل این if بذار :
PHP:
if ($_SERVER['PHP_SELF'] != "acp.php/")
{


}
;)
 

taksoftware

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2005
نوشته‌ها
108
لایک‌ها
0
سن
36
ببین
اصلاً کد این counter.php رو بذار اینجا تا ما کارشو راست و ریست کنیم
اگه این کارو بکنی که ممنون میشم اقایی
خوب این فایل کانفیگ منه
PHP:
<?php 
$DB_SERVER = "localhost";
$DB_USER = "root";
$DB_PASS = ""; 
$DB_NAME = "vi"; 
mysql_connect($DB_SERVER, $DB_USER, $DB_PASS) or die(mysql_error()); 
mysql_select_db($DB_NAME) or die(mysql_error());
$siteadres="http://www.p30taksoft.net/";
$sitename="Download Free Software";
$adlog= "admin";
$adpas= "admin";
?>
اینم صفحه counter.php که تنظیمات توشه و به بانک وصل میشه و کارها رو انجام میده
PHP:
<?php
include_once "config.php";
$date = date('Y-m-d');
$query = mysql_query("SELECT * FROM counter");
function ucounter($table, $value) {
mysql_query("UPDATE `counter` SET `$table` = '$value'");
}
$dbase = mysql_fetch_array($query);
$today = $dbase['today']; 
$yesterday = $dbase['yesterday']; 
$total = $dbase['total']; 
$c_date = $dbase['date']; 
if ($date != $c_date) { 
ucounter('date', $date);
ucounter('today', 1); 
ucounter('yesterday', $today); 
} else { 
ucounter('today', ($today + 1)); 
ucounter('total', ($total + 1)); 
}
?>
اینم صفحه امار من که به اسم amar.php هست
PHP:
<?include "counter.php";?>
بازديد امروز: <?=$today?><br>
بازديد ديروز:<?=$yesterday?><br>
مجموع بازديدها:<?=$total?><br>
بعد من میخوام بدونم این فایل amar.php رو چطوری بنویسم که فقط نشون بده منظورم داخل ادمین هست یعنی اجرا نشه داخل سایت اجرا بشه خودتون تست کنید ببینید چی میگم
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
خوب برات درست کردم
فایل counter.php رو به این تغییر بده :
PHP:
<?php
include_once "config.php";
$query = mysql_query("SELECT * FROM counter");
$dbase = mysql_fetch_array($query);
$today = $dbase['today']; 
$yesterday = $dbase['yesterday']; 
$total = $dbase['total']; 
if (!strstr($_SERVER['PHP_SELF'], "acp.php"))
{
	$date = date('Y-m-d');
	function ucounter($table, $value)
	{
		mysql_query("UPDATE `counter` SET `$table` = '$value'");
	}
	$c_date = $dbase['date']; 
	if ($date != $c_date)
	{ 
		ucounter('date', $date);
		ucounter('today', 1); 
		ucounter('yesterday', $today); 
	}
	else
	{ 
		ucounter('today', ($today + 1)); 
		ucounter('total', ($total + 1)); 
	}
}
?>
اینم فایل ادمین که اسمش باید acp.php باشه :
PHP:
<?php
include "amar.php";
?>
حالا اگه فایل acp.php رو باز کنی میبینی که آمار رو میده ولی آمار زیاد نمیشه !
دقت کن اسم فایل ادمین حتماً باید acp.php باشه اگه میخوای اسمشو عوض کنی باید تو کد counter.php هم عوض کنی

;)
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,601
لایک‌ها
49
محل سکونت
Anywhere
خوب الان كدت اشتباهه
تو كه كانتر پي اچ پي رو صدا ميزني اپديت كردن هم صدا ميشه
ميتوني با فانكشن جدا كني
PHP:
<?php 
include_once "config.php"; 
$date = date('Y-m-d'); 
$query = mysql_query("SELECT * FROM counter"); 
function ucounter($table, $value) { 
mysql_query("UPDATE `counter` SET `$table` = '$value'"); 
} 
function showstat();{
$dbase = mysql_fetch_array($query); 
$today = $dbase['today'];  
$yesterday = $dbase['yesterday'];  
$total = $dbase['total'];  
$c_date = $dbase['date']; 
echo"بازديد امروز: $today<br>" 
echo"بازديد ديروز:$yesterday<br>"
echo"مجموع بازديدها:$total<br>"
}
function ustat();{ 
if ($date != $c_date) {  
ucounter('date', $date); 
ucounter('today', 1);  
ucounter('yesterday', $today);  
} else {  
ucounter('today', ($today + 1));  
ucounter('total', ($total + 1));  
} 
}
?>
خوب حالا هرجا خواستي نشون بدي بنويس
showstat();
و برا اپديت كردن بنويس
ustat();
همين ! اين كد برا كانتر پي اچ پي بود
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,601
لایک‌ها
49
محل سکونت
Anywhere
انگار تكراري شد
كد پارسا بهتره
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از mehdvirus :
انگار تكراري شد
كد پارسا بهتره
:lol: :lol:
هیچ وقت نسنجیده حرف نزن !
اول یه دور امتحان کن ببین کدم درسته یا خرابه بعد وقتی دیدی خرابه بگو خرابه ! :D
حتماً تو کد من به این خط توجه نکردی :
PHP:
if (!strstr($_SERVER['PHP_SELF'], "acp.php"))
من کد کانتر رو داخل این if گذاشتم
بنابر این اگه صفحه ادمین باز بشه کد کانتر اجرا نمیشه فقط آمار رو بدون اینکه زیاد کنه نشون میده :D
 

taksoftware

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2005
نوشته‌ها
108
لایک‌ها
0
سن
36
پارسا ازت ممنونم خیلی حال کردم اینقدر خوشحالم که نمیتونم احساسم رو بگم
خیلی اقای
در ضمن میتونی یه تجزیه تحلیلش کنی بگی چیکار کردی
اصلا این چیه PHP_SELF توضیح بده
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از taksoftware :
پارسا ازت ممنونم خیلی حال کردم اینقدر خوشحالم که نمیتونم احساسم رو بگم
خیلی اقای
در ضمن میتونی یه تجزیه تحلیلش کنی بگی چیکار کردی
اصلا این چیه PHP_SELF توضیح بده
خواهش میکنم
این کارا وظیفمونه :D

PHP_SELF فقط یه متغیر هست که نام فایلی که الآن توشیم رو میگه :D
این متغیر :
PHP:
$_SERVER['PHP_SELF']
این فقط نام فایلی رو که توش هستیم میگه

و :
PHP:
if (!strstr($_SERVER['PHP_SELF'], "acp.php"))
این خط توی PHP_SELF میگرده و اگه acp.php رو پیدا نکرد کد های زیر خودش رو اجرا میکنه !
برای این میگم که اگه پیدا نکرد چون پشت تابع strstr علامت تعجب گذاشتم (!)
ولی من کد خواند از دیتابیس رو توی این if نذاشتم ! همینطور که میبینی کد خواندن بالای if هست و کد نوشتن در دیتابیس توی if هست.
گرفتی ؟ :D
بقیشم فکر نکنم چیز سختی باشه
 
بالا