Скобки в почтовом запросе

Я использую wordpress с плагином activecampaign. Я пытаюсь использовать веб-перехватчик для отправки данных электронной почты контактов на страницу php, где я могу что-то сделать с этой информацией. Как мне получить данные, структурированные следующим образом в php:

Закодировано

contact%5Bid%5D=67330&contact%5Bemail%5D=asdf%40d.nl&contact%5Bfirst_name%5D=sadf&contact%5Blast_name%5D=asdf&contact%5Bphone%5D=%2B1063494959&contact%5Borgname%5D=&contact%5Bcustomer_acct_name%5D=&contact%5Btags%5D=&contact%5Bip4%5D=0.0.0.0&seriesid=266

Расшифровано

contact[id]=67330&contact[email]=asdf@d.nl&contact[first_name]=sadf&contact[last_name]=asdf&contact[phone]=+1624567935&contact[orgname]=&contact[customer_acct_name]=&contact[tags]=&contact[ip4]=0.0.0.0&seriesid=266

Я пробовал использовать $email = $_POST["contact[email]"]; но не повезло.

2 ответа

Вот что происходит всякий раз, когда вы используете скобку в качестве идентификатора для данных, отправляемых в POST, он будет формировать ассоциативный массив, например $key=>$value отношение в вашем случае, например, если contact[email] был получен через почтовый запрос, он будет похож на ассоциативный массив формы $contact=>$email к которому можно получить доступ в этом случае, используя $_POST['contact']['email'] потому что данные будут иметь следующую структуру массива Array ( [contact] => Array ( [email] => someone@somewhere.com ) )

Подводя итог, ваш вышеуказанный запрос будет работать, если вы просто скопируете следующий

$email=$_POST['contact']['email'];

Если ответ сработал, не забудьте принять его и проголосовать, чтобы другие могли получить выгоду и легко найти правильный ответ. Если вы столкнулись с дополнительной проблемой, не стесняйтесь спрашивать в комментариях. мир;-)

Вы можете использовать explode с функциями urldecode:

Посмотрите на пример:

$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {
    $param = explode("=", $chunk);

    if ($param) {
        printf("Param\"%s\" - \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
    }
}
Другие вопросы по тегам