2

このコードから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();


            }
        }
    }

ありがとう。

4

4 に答える 4

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();


        }
    }
}
}
于 2012-10-08T22:56:29.240 に答える
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();
    }
}
于 2012-10-08T23:10:07.830 に答える
1

これを行う別の方法は、echoステートメントを文字列として返すことです。

于 2012-10-08T23:02:29.540 に答える
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");
    }
  }
}

?>
于 2012-10-08T23:03:14.240 に答える