Запуск функции путем ввода URL - PullRequest
0 голосов
/ 13 июня 2011

Я искал во всем Интернете, чтобы запустить функцию из URL, и обнаружил, что это невозможно.

Я спрашиваю, есть ли другой способ сделать это.Ниже я объясню, чего я пытаюсь достичь.

На моем веб-сайте есть несколько функций, которые при щелчке гиперссылки на этой странице cracks.php соответственно меняют основное содержание.Теперь я хочу направить людей с одного URL-адреса на страницу cracks.php с уже вызванной функцией.Пример - www.example.com/cracks.php?AC (который будет вызывать функцию с именем AC и содержимое будет изменено до загрузки страницы)

Я нашел этот метод ниже, но не смог заставить его работать.

if(document.location.search == '?AC')  
{  
    AC();  
}  

Извините за грязный код на сайте.Спасибо за чтение, любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 13 июня 2011

Это зависит от того, нужно ли вам делать это динамически или вы можете делать это жестко.Поскольку этот жестко запрограммированный код слишком прост (с помощью if и переключателей), вам нужно сделать следующее:

$functionsList = Array('func1', 'func2');


function func1(){
    echo '1';
}

function func2(){
    echo '2';
}

if (function_exists($_GET['f']) and in_array($_GET['f'], $functionsList)){
    call_user_func($_GET['f']);
}

Затем вызвать your_file_name.php? F = func1 и your_file_name.php? f = func2 и вы увидите разные результаты.

0 голосов
/ 15 июня 2011

С помощью Марка Купмана мне удалось использовать его метод Javascript, и он работал так, как я хотел.

Так вот метод в Javascript:

<html>
    <body>
        <script>
            function handleOnload()
            {
                if(location.search == "?AC")
                   alert("the query string is " + location.search);
            }

            window.onload=handleOnload;
        </script>
    </body>
</html>
0 голосов
/ 13 июня 2011

Вы можете позвонить www.example.com/cracks.php?do=AC, а затем получить do с $doMethod = $_GET['do'];. Затем вы используете функцию switch или несколько if для проверки и выполнения, например, когда. $doMethod равно AC.

Как это:

$doMethod = $_GET['do'];
switch($doMethod)
{
    case "AC":
        //some random stuff to do
        break;
    case "BD":
        //some random stuff to do
        break;
    case "XY":
        //some random stuff to do
        break;
    default:
        break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...