简体   繁体   中英

PHP Fatal error: Call to undefined function how do I fix it?

I've very new to PHP and am trying to get API (REST) to work with a site I'm currently working on. It works if I submit a form using AJAX but I want it to work without using AJAX. The code I'm using is:

<?php

$postContactUrl = 'https://apiconnector.com/v2/contacts/';
$data = array(
    'Email' => $_POST['email'],
    'EmailType' => 'Html',
    'dataFields' => array(
        array(
            'Key' => 'FULLNAME',
            'Value' => $_POST['name_first'] . " " . $_POST['name_last']
        ),
    )
);
$contact = execute_post($postContactUrl, $data);

$addContactToAddressBookUrl = 'https://apiconnector.com/v2/address-books/' . '123456' . '/contacts';
$book = execute_post($addContactToAddressBookUrl, $contact);

function execute_post($url, $data)
{
    $requestBody = json_encode($data, true);

    $ch = curl_init();

    curl_setopt($ch, CURLAUTH_BASIC, CURLAUTH_DIGEST);
    curl_setopt($ch, CURLOPT_USERPWD, 'username' . ':' . 'password');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: ' . 'application/json', 'Content-Type: application/json'));

    $responseBody = json_decode(curl_exec($ch));

    curl_close($ch);

    return $responseBody;
}

but when I try to add that to the page the form is on I get this error:

PHP Fatal error: Call to undefined function execute_post()

I've tried to fix it but nothing I do seems to work. I don't understand why it works with AJAX but not any other way.

your function should be before your calling function method

function execute_post(){
}

    $contact = execute_post($postContactUrl, $data);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM