2012-10-08 52 views
2

功能我只是需要一些幫助創建一個PHP函數出這個代碼或者換句話說只是在PHP函數包裝這個代碼:創建出這個PHP代碼

if (isset($_GET['id'])){ 

    $username = mysql_real_escape_string($_GET['id']); 

    if(ctype_alnum($username)){ 

     $check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'"); 
     if(mysql_num_rows($check)===1){ 

      $get = mysql_fetch_assoc($check); 
      $username = $get['username']; 
      $firstname = $get['first_name']; 

      echo '<div id="mini_profile">This is '.$username.'\'s profile.</div>'; 

      }else{ 

      header("Location: index.php"); 
      exit(); 


      } 
     } 
    } 

感謝。

+0

可能無法使用的問題幫助,但我會建議你停止,因爲他們正在使用'mysql_'功能(已廢棄)(http://www.deprecatedphp.com)。看看'mysqli_''或'PDO' – Kermit

回答

4

真的很容易:)

function yourFunc() { 
if (isset($_GET['id'])){ 

$username = mysql_real_escape_string($_GET['id']); 

if(ctype_alnum($username)){ 

    $check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'"); 
    if(mysql_num_rows($check)===1){ 

     $get = mysql_fetch_assoc($check); 
     $username = $get['username']; 
     $firstname = $get['first_name']; 

     echo '<div id="mini_profile">This is '.$username.'\'s profile.</div>'; 

     }else{ 

     header("Location: index.php"); 
     exit(); 


     } 
    } 
} 
} 
+0

哇我之前試過這沒有工作,因爲我沒有去這個順序功能代碼(){}但我只是去功能代碼(){忘記}在最後再次感謝...我覺得現在愚蠢haha –

+0

你可能想把參數傳遞給函數:'function login($ username){...}'並傳遞'$ _GET ['id']'。就像那樣,你也可以從$ _POST登錄,或者其他的。你也可能想添加'AND password ='$ password''。因爲它是非常脆弱的:有人可以輸入一個URL給予查詢字符串的任何id並以該人身份登錄! – Laoujin

+0

這不是一個登錄腳本...它只是爲了獲取用戶名和www.website.com/members.php?id=$username它只是用於部分的id?id = $ username –

1

另一種方式來做到這一點是返回的回聲語句作爲字符串。

0

創建函數的想法是提供可重用的代碼。這意味着你封裝了邏輯,允許你改變代碼的內部工作,而不會影響到函數的實際使用,避免繁瑣的重複。

在你的例子中,你應該考慮屬於這個類別的領域。我個人可以看到可以在這裏完成的幾個功能。

例如,沒有運行,但應該給你的想法。

<?php 

    function getUser($username) 
    { 
    if (is_string($username) && strlen($username)) { 
     $query = " 
     SELECT 
      username, firstname 
     FROM 
      users 
     WHERE 
      username = :username 
     "; 
     $result = executeQuery($query, array("username" => $username)); 
     return $result->fetch(); 
    } 
    } 

    function getDatabase($host, $db, $user, $password) 
    { 
    return new PDO("mysql:host=$host;dbname=$dbname, $user, $pass"); 
    } 

    function executeQuery($sql, array $params = array()) 
    { 
    $db = getDatabase(); 
    $conn = $db->prepare($sql); 

    return $conn->execute($params); 
    } 

    function validateInput($input) 
    { 
    return ctype_alnum($input); 
    } 

    function advanceTo($page, $params) 
    { 
    header("Location: $page.php"); 
    exit(); 
    } 


if (isset($_GET["username"])){ 
    if (validateInput($_GET["username"])) { 
    $user = getUser($_GET["username"]); 
    if (! empty($user)) { 
     // authUserAndSetSessionForUser($user); 
     /** This page is then directed to and welcome message shown **/ 
     advanceTo("user-home-page", array($user)); 
    } else { 
     advanceTo("index"); 
    } 
    } 
} 

?> 
2
function getMyDivElement($name) { 
    $username = mysql_real_escape_string($name); 

    if(ctype_alnum($username)) { 
     $check = mysql_query("SELECT username,first_name FROM users WHERE username='{$username}'"); 
     if(is_resource($check) && ($get = mysql_fetch_assoc($check))) { 
      $username = $get['username']; 
      $firstname = $get['first_name']; //You need this? 

      return '<div id="mini_profile">This is '.$username.'\'s profile.</div>'; 
     } 
    } 

    return null; 
} 

//usage 
if (isset($_GET['id'])) { 
    $div = getMyDivElement($_GET['id']); 
    if($div) { 
     echo $div; 
    } else { 
     header("Location: index.php"); 
     exit(); 
    } 
} 
+0

非常感謝shqipe –