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" />

前のフォームにシリアルコードを入力した人だけがアクセスできるように、ファイルをWebにアクセスできないようにしたいので、ファイル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 に答える