PDA

View Full Version : مشکل با تابع و متغیر های سراسری



milad_d993
سه شنبه 02 تیر 1394, 23:30 عصر
سلام دوستان
من یه شمارنده گذاشتم توی پروژه'م؛
برای اینکه کد های شمارنده رو توی همه صفحهات تکرار نکنم اونا رو توی یه فایل دیگه ریختم و require کردم
موقع اجرا این خطاها رو میده که مربوط به متغیر هاست...


index.php

<?php
require_once("DBconfig.php");
require_once("shortCounter.php");
echo counterURL("counter.php");
?>




shortCounter.php

<?php

$yesterday = date("Y-m-d",strtotime("-1 days"));
$yesterday_data = mysql_query("select count from counter where date = '$yesterday'",$con);
$yesterday_row = mysql_fetch_array($yesterday_data);

$today = date("Y-m-d");
$today_data = mysql_query("select count from counter where date = '$today'",$con);
$c = 1;
if(mysql_num_rows($today_data)== 0)
mysql_query("INSERT INTO counter values (null,'$today',$c)",$con);
else{
$today_row = mysql_fetch_array($today_data);
$c += $today_row["count"];
mysql_query("update counter set count = $c where date = '$today'",$con);
}

$yesterday = ($yesterday_row["count"] == NULL) ? 0 : $yesterday_row["count"];

$all_data = mysql_query("select sum(count) from counter",$con);
$all_row = mysql_fetch_array($all_data);

function counterURL($counterURL){
$shortCounter = '
<table align="center" class="counter">
<tr>
<th colspan="2">خلاصه آمار سایت</th>
</tr>
<tr>
<td>بازدید امروز:</td>
<td>'.$c.'</td>
</tr>
<tr>
<td>بازدید دیروز:</td>
<td>'.$yesterday.'</td>
</tr>
<tr>
<td>بازدید کل:</td>
<td>'.$all_row["sum(count)"].'</td>
</tr>
<tr align="center">
<td colspan="2"><a href="'.$counterURL.'" target="_blank">« نمایش آمار کامل »</a></td>
</tr>
</table>';

return $shortCounter;
}
?>


اینم error ها:


Notice: Undefined variable: c in C:\wamp\www\library\shortCounter.php on line 31

Notice: Undefined variable: yesterday in C:\wamp\www\library\shortCounter.php on line 35

Notice: Undefined variable: all_row in C:\wamp\www\library\shortCounter.php on line 39

H:Shojaei
چهارشنبه 03 تیر 1394, 00:14 صبح
توی جایی که فایل رو صدا میزنید متغیر ها رو هم به این صورت به صورت عمومی تعریف کنید:



global $c,$yesterdy,$all_row;

milad_d993
چهارشنبه 03 تیر 1394, 12:53 عصر
توی جایی که فایل رو صدا میزنید متغیر ها رو هم به این صورت به صورت عمومی تعریف کنید:



global $c,$yesterdy,$all_row;


حل نشد!
همون error ها رو میده باز؛

H:Shojaei
چهارشنبه 03 تیر 1394, 23:10 عصر
این خطی که گذاشتم رو توی showCounter گذاشتید دیگه؟
اون بالا اشتباه گفتم جایی که صداش میزنید ...