Hướng dẫn call php class function from url - gọi hàm lớp php từ url

Nếu tôi muốn thực thi tập lệnh PHP, tôi chỉ cần trỏ trình duyệt đến

if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}
3

Nhưng nếu tôi muốn thực hiện một chức năng cụ thể bên trong

if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}
4, có cách nào không? một cái gì đó như
if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}
5

Thanks!

Qazi

4.8557 Huy hiệu vàng39 Huy hiệu bạc61 Huy hiệu Đồng7 gold badges39 silver badges61 bronze badges

Hỏi ngày 5 tháng 12 năm 2010 lúc 17:38Dec 5, 2010 at 17:38

Một cách nhanh chóng là làm những việc nhưquick way is to do things like

something.com/myscript.php?f=your_function_name

sau đó trong myscript.php

if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}

Nhưng làm ơn, vì tình yêu của tất cả mèo con, đừng lạm dụng điều này.

Đã trả lời ngày 5 tháng 12 năm 2010 lúc 17:41Dec 5, 2010 at 17:41

Andreas Wongandreas WongAndreas Wong

58.5K19 Huy hiệu vàng105 Huy hiệu bạc123 Huy hiệu đồng19 gold badges105 silver badges123 bronze badges

10

Kịch bản của bạn làm gì hoàn toàn tùy thuộc vào bạn. URL không thể gây ra một cách kỳ diệu APACHE, PHP hoặc bất kỳ thành phần máy chủ nào khác để thực hiện một hành vi nhất định, nhưng nếu bạn viết chương trình của mình sao cho một chức năng cụ thể có thể được thực thi, thì chắc chắn có thể. Có lẽ một cái gì đó như:

switch[$_GET['function']] {
case 'specificFunction':
    specificFunction[];
}

Sau đó, bạn có thể truy cập

if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}
6

Hãy cực kỳ cẩn thận ở đây để liệt kê cụ thể từng chức năng cho phép. Bạn không chỉ cần lấy tham số

if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}
7 và thực hiện một cách mù quáng bất kỳ chức năng nào mà nó nói, vì điều đó có thể gây ra rủi ro bảo mật khổng lồ.specifically list each allowable function. You must not just take the
if[function_exists[$_GET['f']]] {
   $_GET['f'][];
}
7 parameter and blindly execute whatever function it says, since that could present an enormous security risk.

Đã trả lời ngày 5 tháng 12 năm 2010 lúc 17:42Dec 5, 2010 at 17:42

VoteyDiscipleVoteyDiscipleVoteyDisciple

36,6K5 Huy hiệu vàng93 Huy hiệu bạc95 Huy hiệu Đồng5 gold badges93 silver badges95 bronze badges

Hãy thử cái này

$urlParams = explode['/', $_SERVER['REQUEST_URI']];
$functionName = $urlParams[2];
$functionName[$urlParams];


function func1 [$urlParams] {
    echo "In func1";
}

function func2 [$urlParams] {
    echo "In func2";
    echo "
Argument 1 -> ".$urlParams[3]; echo "
Argument 2 -> ".$urlParams[4]; }

và các URL có thể như dưới đây //domain.com/url.php/func1 //domain.com/url.php/func2/arg1/arg2
//domain.com/url.php/func1
//domain.com/url.php/func2/arg1/arg2

Đã trả lời ngày 21 tháng 3 năm 2013 lúc 13:07Mar 21, 2013 at 13:07

BalajibalajiBalaji

3452 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

1

Bạn sẽ phải phơi bày nó theo một cách nào đó. Điều này là do phơi bày tất cả các phương pháp công khai, sẽ là một rủi ro bảo mật.

Example.php

Bài Viết Liên Quan

Chủ Đề