PHP: поле ввода pregmatch - PullRequest
       2

PHP: поле ввода pregmatch

0 голосов
/ 20 декабря 2011

У меня есть HTML-форма с полем ввода текста.Мне интересно, как распознать конкретный вклад из формы.Примеры команд ввода:

<input type="text" name="action" value="bookmark http://google.com" />
<?php
        if ($command == "goto"):
        // go to website X
        elseif ($command == "bookmark"):
        // bookmark website X
        else:
        // something else
        endif;
?>

Ответы [ 4 ]

2 голосов
/ 20 декабря 2011

Я думаю, что самый простой способ - разделить строку в первом пробеле, чтобы разделить ее на команду и параметр для этой команды.Параметр "2" для explode () позволяет использовать пробелы в $ param, если это необходимо.

$input = explode(' ', $_POST['action'], 2);
$command = $input[0];
$param = $input[1];

switch ($command) {
    case 'goto':
        // go to website $param
        break;
    case 'bookmark':
        // bookmark website $param
        break;
    default:
        // unknown command
}
0 голосов
/ 20 декабря 2011
$aAct = explode(' ', $_POST['action');
if(is_array($aAct)) {
    switch($aAct[0]) {
        case 'bookmark':
            /* do action e.g. header('Location: ' . $aAct[1]); */
        break;
    }
}

Создайте комбинацию case / break для каждого действия, которое вы намереваетесь указать.

0 голосов
/ 20 декабря 2011

Как то так?:

//get the command from your value
$command = current(explode(" ", $_POST['action']));

//get the url from your value
$url     = next(explode(" ", $_POST['action']));

И как заявлено karim79, более подходящим был бы переключатель для обработки ввода.

switch($command) {

    case 'goto': 
         // do stuff with $url;
         break;
    case 'bookmark': 
         // do stuff with $url;
         break;
    default: // do something default;
}

надеюсь, это поможет

0 голосов
/ 20 декабря 2011

Попробуйте:

$request = $_POST['action'];

$split = explode(' ',$request,2);
$command = $split[0];

if(!isset($split[1])){
    //no url
    die;
}

$url = $split[1];

if($command == "goto"){

    header('location: '.$url);
    die;

}elseif($command == "bookmark"){

    header('location: '.$url);
    die;

}else{

    echo 'No Commands :(';

}

Используйте $_POST или $_GET для получения данных запроса.т.е.: $_GET['action']

Установить местоположение заголовка для перенаправления браузера.die; или exit; используется для завершения и вывода текущего скрипта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...