php
2011-07-15 175 views 2 likes 
2

有沒有辦法運行一個PHP函數「fun();」只有登錄用戶多次訪問頁面時才使用一次?運行PHP函數一次

這裏是函數。

<?php 

$connect = //connect to database 

function fun() 
{ 

    //loop declare begin 
    $quer = "SELECT * FROM sffedorvsdan WHERE username = '$_SESSION[username]'"; 

    if($quer_run = mysql_query($quer)) 
    { 
     while($row = mysql_fetch_assoc($quer_run)) 
     { 
      $pick1 = $row['pick1']; 
      $pick2 = $row['pick2']; 
      $pick3 = $row['pick3']; 
      $pick4 = $row['pick4']; 
      $pick5 = $row['pick5']; 
      $pick6 = $row['pick6']; 

      //loop end EXCEPT CLOSE 

      $user = $_SESSION['username']; 

      if($pick1 == '11') 
      { 

       $score = mysql_query(" 
        UPDATE stats SET score = (score + 10), mmascore = (mmascore + 10), 
        wins = (wins + 1), games = (games + 1) 
        WHERE username = '$user' 
       "); 

       return $score; 
      } 
      else if($pick1 == '21') 
      { 
       $score2 = mysql_query(" 
        UPDATE stats SET score = (score - 5), mmascore = (mmascore - 5), 
        games = (games + 1) 
        WHERE username = '$user'"); 

       return $score2; 
      } 
     } 
    }else{ 
     echo mysql_error(); 
    } 
} 

?> 
+0

如果您可以使用PHP5,則可以使用singleton/class/__構造。我不確定如何使用PHP4來做到這一點。 – Steven

回答

0

使用認證/會話並存儲用戶訪問該頁面的次數,例如數據庫或平面文件。無論如何,您都需要堅持他們的訪問計數。

+0

這是我最接近的答案。我存儲在mysql數據庫中,不管函數是否被用戶調用過。在函數運行後,我剛剛在數據庫中存儲了一個數值,並添加了一條說明如果存儲了該值的語句,請不要運行該函數。 – user830593

9
if(!isset($_SESSION['visitedOnce'])){ 
    fun(); 
    $_SESSION['visitedOnce'] = true; 
} 
1

你不能運行該函數,然後存儲一個$_SESSION變量?例如:

if (!isset($_SESSION['function_ran']) || $_SESSION['function_ran'] != '1') { 
    fun(); // run function 
    $_SESSION['function_ran'] = '1'; 
} 
相關問題