0

我将如何做这样的工作?

<input name="downvid2" type="button" id="downvid2" onclick="
  <?php
header('Content-disposition: attachment; filename=file.pdf');
header('Content-type: application/pdf');
readfile('file.pdf');
?>" value="Download Story" />

问题是我会做一个表单并提交,但我需要一些 PHP 变量的值,我不想在移动页面时丢失它们。

完整的代码是:

<title>Legendmaker - Your Legendmaker Adventure Starring You:</title>

<?php
if( $_POST )
{
$username="***";
$password="*****";
    $con = mysqli_connect("storycodes.db.10339998.hostedresource.com",$username,$password);

    if (!$con)
    {
        die('Could not connect: ' . mysqli_error());
    }

    mysqli_select_db($con, "storycodes");

$code = $_POST['codeInput'];
$code = mysqli_escape_string($con, htmlspecialchars($code)); //May not acually need htmlspecialchars
$query = "SELECT story,video FROM `storycodes` WHERE `code` = '$code'";
$result = mysqli_query($con, $query);

  if (mysqli_num_rows($result)) 
  {
    $row = mysqli_fetch_assoc($result);
    mysqli_free_result($result); 
    extract($row);
    echo $story . $video;   


  }
   else 
  {
   echo "No Data Found. Please check your serial code to ensure that you have not incorrectly entered it. If the code is correct please email the website administrator for further assistance";
  }     

mysqli_close($con);
}
?>
<div align="center">
  <p><span class="linkText"><a href="/index.html">Home</a> <a href="/contact-us.php">Contact Us</a> <a href="/payments.html">Products</a><a href="/products.html"></a></span> </p>
  <p>&nbsp;</p>
  <h2 class="headingText"><img alt="legendmaker - makes legends: banner" width="728" height="90" /></h2>
  <h2 class="headingText">&nbsp;</h2>
  <h2 class="headingText">Your story</h2>
</div>
<p>&nbsp;</p>

  <label>
  <input type="button" name="downvid" id="downvid" value="Download Video" />
  </label>
  <input name="downvid2" type="button" id="downvid2" onclick="
  <?php
header('Content-disposition: attachment; filename=file.pdf');
header('Content-type: application/pdf');
readfile('file.pdf');
?>" value="Download Story" />

我想我必须让它处理涉及文件 PHP 的所有事情,因为我想让这些文件不能通过网络访问,这样只有那些在以前的表单中输入序列码的人才能访问它。

4

2 回答 2

3

不,它不能工作。PHP 是一种服务器端语言,而 HTML 不是。如果您不想提交表单,那么您可以为此目的使用 AJAX,但不像您所要求的那样。要么提交表单以将数据发送到 PHP,要么使用 JavaScript,尤其是 AJAX。

于 2013-02-08T06:32:23.713 回答
1

onclick 事件在客户端执行。而且由于 PHP 是服务器端,因此您的伪代码无法工作。

更好的解决方案是通过链接或提交表单来重定向用户。

重定向应该指向您的 PHP 脚本,该脚本将下载发送给您的用户。这将使浏览器停留在当前页面上,效果就像你的伪样本一样。

于 2013-02-08T06:49:53.050 回答