我需要为我的网站创建一个表单,用户将在其中键入代码并将其重定向到文件夹上的特定文件。例如,如果用户插入"例如"在表单中,他/她将被重定向到链接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>
答案 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");
}
?>