Форма Vue не отправляется с использованием файла PHP при использовании локального API WHMCS - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь использовать локальный API WHMCS, так как WHMCS хранится в поддомене, поэтому оба находятся на одном сервере.

У меня есть следующая форма

<FlashMessage message="Message sent!" />

<form action="./backend/contact.php" method="POST">
  <div class="mb-4">
    <label class="block" for="name">
      <span class="text-gray-900">Full name</span>
      <input
        class="form-input mt-1 block w-full outline-none"
        placeholder="Sherlock Holmes"
        required
        id="name"
        name="name"
        type="text"
      />
    </label>
  </div>

  <div class="mb-4">
    <label class="block" for="email">
      <span class="text-gray-900">Email address</span>
      <input
        class="form-input mt-1 block w-full outline-none"
        placeholder="sherlock@bakerstreet.com"
        required
        id="email"
        name="email"
        type="email"
      />
    </label>
  </div>

  <div class="mb-4">
    <label class="block" for="department">
      <span class="text-gray-700">Department</span>
      <select
        class="form-select mt-1 block w-full outline-none"
        id="department"
        name="department"
      >
        <option value="1">General Support</option>
        <option value="2">Hosting Support</option>
        <option value="3">Domain Support</option>
        <option value="4">Game Support</option>
      </select>
    </label>
  </div>

  <div class="mb-4">
    <label class="block" for="message">
      <span class="text-gray-900">Message</span>
      <textarea
        class="form-input mt-1 block w-full outline-none h-56 resize-none"
        placeholder="Enter your message here"
        required
        id="message"
        name="message"
        type="text"
      />
    </label>
  </div>

  <div class="flex mt-6">
    <label class="flex items-center">
      <input type="checkbox" class="form-checkbox" />
      <span class="ml-2">
        I agree to the
        <a href="#" class="underline">privacy policy</a>
      </span>
    </label>
  </div>

  <div class="flex mt-6">
    <label class="flex items-center">
      <button
        type="submit"
        class="flex items-center py-3 px-6 border rounded bg-gray-800 hover:bg-gray-900 font-medium text-white transition duration-300 ease-in-out"
      >
        <i class="fas fa-paper-plane mr-4"></i>
        Send
      </button>
    </label>
  </div>
</form>

<script>
import FlashMessage from "../components/FlashMessage";

export default {
  name: "Contact",
  components: {
    FlashMessage
  },
  data() {
    return {
      showMsg: false
    };
  },
  methods: {
    onSubmit() {
      this.showMsg = true;
      setTimeout(() => {
        this.showMsg = false;
      }, 3000);
    }
  }
};
</script>

и вот контакт. php файл

<?php
include("/home/hostedca/billing.hostedcarbon.com/includes/api.php");

$name = $_POST["name"];
$email = $_POST["email"];
$department = $_POST["department"];
$message = $_POST["message"];

$command = "OpenTicket";
$postData = array(
    "deptid" => "$department",
    "name" => "$name",
    "email" => "$email",
    "subject" => "Contact form Inquiry from $name for $department",
    "message" => "$message",
    "priority" => "Medium",
    "markdown" => false,
);

// Call the localAPI function
$results = localAPI($command, $postData);
if ($results['result'] == 'success') {
    echo 'Message sent successfully!';
} else {
    echo "An Error Occurred: " . $results['result'];
}
?>

Не уверен, нужно ли мне добавлять этот код

$api_identifier = "";
$api_secret = "";

$postfields = array(
    "identifier" => $api_identifier,
    "secret" => $api_secret,
    "action" => "OpenTicket",
    "responsetype" => "json",
);

ПУТЬ include - это полный путь cPanel к Файл API. Тем не менее, когда я отправляю форму, я получаю 404 ничего не отображается отображаемых ошибок. Не уверен, что мне нужно использовать внешний API, так как он находится на поддомене, но он находится на том же сервере, любая справка или примеры будут полезны, потому что при отправке ничего не выводится и не печатается.

У меня есть fla sh сообщение на месте, но я не хочу его активировать до тех пор, пока форма не будет отправлена ​​правильно, просто я не уверен, нужно ли мне добавить еще метод onSubmit.

enter image description here

...