#php
#php
Вопрос:
Я использую formmail от tactite, чтобы информация, отправленная из моей формы, отправлялась мне по электронной почте. После того, как пользователь нажимает кнопку отправки, он переходит на страницу «Спасибо», которая по умолчанию содержит только текст, я пытаюсь изменить это, чтобы загрузить страницу благодарности, которую я создал, и это не работает, что я делаю не так?
Спасибо!
Вот что не работает:
// MSG_THANKS_PAGE is the default page that's displayed if the
// submission is successful
// Parameters: none
$aMessages[MSG_THANKS_PAGE] = load('http://nimbledesigns.com/kelsie/thankyou.html');
Это то, что у меня было раньше, что ДЕЙСТВИТЕЛЬНО работает:
$aMessages[MSG_THANKS_PAGE] = 'Thanks!<br /><br />'.
'<a href="http://nimbledesigns.com/kelsie">Go Back</a>'.
'';
Ответ №1:
В PHP нет load()
встроенной функции. Скорее всего, то, что вы ищете, это file_get_contents()
, который извлекает содержимое файла (локального или иного) в виде строки.
Если этот URL указывает обратно на ваш собственный сервер, вы можете сэкономить на полном обходе HTTP и просто использовать локальный путь ... = file_get_contents('/path/to/that/thank/you/file.html')
.
Ответ №2:
File_get_Contents()
используйте
$aMessages[MSG_THANKS_PAGE] = file_get_contents('http://nimbledesigns.com/kelsie/thankyou.html');
вместо этого.
Документация
file_get_contents() — http://php.net/manual/en/function.file-get-contents.php
Альтернативы
‘ Если этот файл находится на вашем сервере, то вам может потребоваться только сделать это:
$aMessages[MSG_THANKS_PAGE] = file_get_contents('thankyou.html');
Это остановит использование PHP соединителя HTTP stream и вместо этого будет использоваться соединитель ввода-вывода файлов, который будет быстрее с меньшими затратами (хотя разница может быть видна только при медленной работе вашего сервера)
Перенаправляет
Вы также можете перенаправить их на страницу, выполнив эту команду перед отправкой каких-либо данных в браузер:
header('Location: thankyou.html');
exit();
Это перенаправит их браузер на файл. Опять же, предполагая, что она находится на вашем сервере. Вы могли бы заменить это на полный адрес, если требуется http://nimbledesigns.com/kelsie/thankyou.html
Комментарии:
1. Перенаправление работает так же хорошо, как и исправлена моя проблема с форматированием, спасибо!
2. не забудьте часть «exit();», это может привести к отключению вашего скрипта, если вы его не добавите 🙂 удачи
Ответ №3:
Как указывалось ранее, file_get_contents — ваш лучший выбор. Функция load() отсутствует.
Но почему бы просто не перенаправить на страницу? Здесь написано, как это сделать:http://www.tectite.com/fmhowto/redir.php (Я предполагаю, что это почтовая программа form, которую вы используете, и «tactite» было опечаткой).
Ответ №4:
долгое время не использовал php load, но разве он не предназначен только для xml и возвращает объект? это? http://php.net/manual/en/domdocument.load.php