Я делаю страницу всплеска, где пользователь должен ввести свое имя и адрес электронной почты, чтобы загрузить книгу. Это мой первый раз. Когда пользователь заполняет форму и отправляет запросы, я хочу, чтобы книга автоматически загружалась, и я хочу, чтобы их данные формы были отправлены на мой адрес электронной почты, чтобы я мог добавить их в список рассылки.
Прямо сейчас моя HTML-форма выглядит так (я использую formmail):
<form id="myform" method="post" action="submit.php" name="myform" width="100%">
<input type="hidden" name="good_url" value="index.html#submitgood" />
<input type="hidden" name="bad_url" value="index.html#submitbad" />
<input type="hidden" name="env_report" value="REMOTE_HOST,REMOTE_ADDR,HTTP_USER_AGENT,AUTH_TYPE,REMOTE_USER" />
<input type="hidden" name="derive_fields" value="email=EmailAddr,realname=username" />
<input type="hidden" name="recipients" value="myaddress" />
<input type="hidden" name="subject" value="Book Download" />
<fieldset><legend>Please fill out the information below to download.<br><br>Filesize, 59.8 MB.</legend>
<table><tr><td><label for="Name" id="namelabel"><strong>Full name:</strong></label><br>
<input id="Name" type="text" name="username" title="Enter your full name" placeholder="Your Name" autofocus required /></td></tr>
<tr><td><label for="eMail" id="emaillabel"><strong>Email address:</strong></label><br>
<input id="eMail" type="email" name="EmailAddr" title="Enter your email address" placeholder="[email protected]" required /></td></tr>
<tr><td><label for"eMail_repeat" id="emaillabel2"><strong>Repeat Email address:</strong></label>
<input id="eMail_repeat" type="email" name="email_addr_repeat" title="Repeat your email address" placeholder="[email protected]" required oninput="check(this)" /></td></tr>
</table><br>
<input id="reset" type="reset" name="reset" value="Clear" />
<input id="submit" type="submit" name="submit" value="Submit" />
<input type="hidden" name="mail_options" value="HTMLTemplate=MYURL/fmtemplates/mailtemplate.html" /></fieldset></form>
Вы можете видеть, когда пользователь обращается к нему, он обращается к submit.php, который выглядит так:
<?php
require_once('formmail.php');
require_once('pocketdownload.php');
?>
Итак, проблема в том, что первый объект (в данном случае formmail.php) работает отлично, и я получаю сообщение электронной почты со своей информацией, но загрузка (что и не является карнавалом.php) никогда не происходит. Когда я переключаю их (класть pocketdownload.php перед formmail.php), загрузка происходит отлично, но электронная почта никогда не отправляет и всплывающее сообщение о успехе пользователя, которое вы поблагодарили за загрузку, никогда не появляется. В принципе, с этим PHP-кодом будет работать только первый.
Это выглядит как pocketdownload.php:
<?php
$file_url = 'http://LOCATION_OF_MY_FILE';
header("Content-type: application/pdf");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
?>
ТАК! Есть ли способ, когда пользователь нажимает SUBMIT, что оба этих скрипта.php будут запускаться одновременно? Я ошибаюсь в своем PHP-коде? Я слышал, что это можно сделать в Ajax, но я не знаю, как реализовать что-то подобное. Может ли кто-нибудь показать мне путь? Благодарю!!!
EDIT: я решил свою проблему, оставив submit.php так, как это происходит, и изменив всплывающее окно, которое появляется, когда пользователь нажимает submit. Раньше он говорил "Спасибо, что загрузил", но я изменил всплывающее окно, чтобы сказать "Нажмите ЗДЕСЬ для загрузки" (с ЗДЕСЬ, являющейся гиперссылкой на файл).
Это не кричаще, это некрасиво - но это проделало свою работу.
если submit успешно переадресовывается в pdf.
пример
<?php
if(isset($_POST['submit'])) {
/* do your things */
header("Location: http://mywebsite.com/book.pdf")
# OR
echo '<meta http-equiv="Refresh" content="0; url=http://mywebsite.com/book.pdf" />';
}
?>
action
. Но вы можете использовать javascript для выполнения нескольких представлений, например, ajax-вызовов, клонирования форм и автоматической отправки клонов, бла-бла-бла. Но в чистом html форма отправляется в одно место и только в одно место.formmail.php
предотвращения загрузки?