使用表单将用户重定向到特定文件

时间:2014-03-18 16:26:23

标签: php

我需要为我的网站创建一个表单,用户将在其中键入代码并将其重定向到文件夹上的特定文件。例如,如果用户插入"例如"在表单中,他/她将被重定向到链接mysite.com/exemple.pdf。如果代码不存在,用户将被简单地重定向到错误页面。

我已经创建了以下表单,但我不确定如何创建PHP文件以将用户重定向到正确的链接。有人可以帮我找一个方法吗?

我对PHP不是很熟悉,也无法找到一个例子。

<form action="mysite.com/form.php" method="post">
<table border="0" cellpadding="8" cellspacing="8">
<tr>
<td width="158">Insert your code for access : </td><td width="388"><input    type="text" name="code" id="tswcode" size="25">
<input type="submit" value="Go" /></td></tr>
</table>
</form>

2 个答案:

答案 0 :(得分:0)

在发送任何正文内容之前,您可以使用PHP header函数将HTTP标头发送到客户端。 HTTP Location响应标头用于将客户端重定向到其他位置。以下代码说明了这一点:

<?php

if(isset($_POST["code"])) {
    header( "Location: http://example.com/" . $_POST["code"] . ".pdf" ) ;
} else {
?>
<form action="mysite.com/form.php" method="post">
<table border="0" cellpadding="8" cellspacing="8">
<tr>
<td width="158">Insert your code for access : </td><td width="388"><input type="text" name="code" id="tswcode" size="25">
<input type="submit" value="Go" /></td></tr>
</table>
</form>
<?php
} //end else
?>

现在,您可以(并且可能应该)在if块内部进行一些检查以查看代码是否有效,查看用户是否有权查看它等等。现在看来,如果他们输入一个不存在的代码,然后当你的服务器重定向到不存在的pdf时,你的服务器只会给它们一个普通的404错误页面。

答案 1 :(得分:0)

在你的form.php中,检查一个名为&#39; example&#39;的文件。存在。

<?php

if(!empty($_POST['code'])) {
  $filename = '/path/to/'.$_POST['code'].'.pdf';  //for example $filename = 'home/Desktop/example.pdf
  if(file_exists($filename)){
     header("Location:$filename");
} else { 
     header("Location: /path/to/error_page");
}
?>