Javascript 从PHP重定向到HTML输入值
所以我想创建一个简单的结果页面,让用户使用给定的代码下载结果 以下是脚本:Javascript 从PHP重定向到HTML输入值,javascript,php,html,input,Javascript,Php,Html,Input,所以我想创建一个简单的结果页面,让用户使用给定的代码下载结果 以下是脚本: 您在pdf之前缺少一个“”,不是吗 还有错误的头('Location:./'$filename') 试试这个:) 您在pdf之前缺少一个“”,不是吗 还有错误的头('Location:./'$filename') 试试这个:) 这是非常不安全的代码 主要变化如下: 为用户输入数据编写测试您的TODO 先更改PHP块代码,然后在代码段中更改表单(HTML)代码 在任何$\u post['…']之前添加测试是post请求
您在pdf之前缺少一个“”,不是吗 还有错误的头('Location:./'$filename')强> 试试这个:)
您在pdf之前缺少一个“”,不是吗 还有错误的头('Location:./'$filename')强> 试试这个:)
这是非常不安全的代码强> 主要变化如下:
- 为用户输入数据编写测试
您的TODO
- 先更改PHP块代码,然后在代码段中更改表单(HTML)代码
- 在任何$\u post['…']之前添加测试是post请求方法<代码>在代码段中
- 在代码段的文件扩展名i$filename
之前添加。(点)
这是非常不安全的代码强> 主要变化如下:- 为用户输入数据编写测试
您的TODO
- 先更改PHP块代码,然后在代码段中更改表单(HTML)代码
- 在任何$\u post['…']之前添加测试是post请求方法<代码>在代码段中
- 在代码段的文件扩展名i$filename
之前添加。(点)
很少有问题- 正如@showdev在评论中提到的,您的标题应该在任何其他内容之前
- 文件名和扩展名之间缺少
- 标题尾部的
'
- 您应该退出重定向头
<?php // check post request if ($_SERVER['REQUEST_METHOD'] === 'POST') { $errors = []; // check logincode is set and a number if (!isset($_POST['logincode']) || !is_numeric($_POST['logincode'])) { $errors['logincode'] = 'Invalid login code'; } else { $name = $_POST['logincode']; // check file is found if (!file_exists($name.'/'.$name.'.pdf')) { $errors['logincode'] = 'Your results are not ready.'; } // now check for empty errors if (empty($errors)) { exit(header('Location: ./'.$name.'/'.$name.'.pdf')); } } } ?> <form action="" method="post"> <?= (!empty($errors['logincode']) ? $errors['logincode'] : '') ?> <input type="text" name="logincode"> <input type="submit" name="send"> </form>
很少有问题- 正如@showdev在评论中提到的,您的标题应该在任何其他内容之前
- 文件名和扩展名之间缺少
- 标题尾部的
'
- 您应该退出重定向头
<?php // check post request if ($_SERVER['REQUEST_METHOD'] === 'POST') { $errors = []; // check logincode is set and a number if (!isset($_POST['logincode']) || !is_numeric($_POST['logincode'])) { $errors['logincode'] = 'Invalid login code'; } else { $name = $_POST['logincode']; // check file is found if (!file_exists($name.'/'.$name.'.pdf')) { $errors['logincode'] = 'Your results are not ready.'; } // now check for empty errors if (empty($errors)) { exit(header('Location: ./'.$name.'/'.$name.'.pdf')); } } } ?> <form action="" method="post"> <?= (!empty($errors['logincode']) ? $errors['logincode'] : '') ?> <input type="text" name="logincode"> <input type="submit" name="send"> </form>
出了什么问题?从外观上看,您需要使用
命令。出了什么问题?从外观上看,您需要放置header()
命令。为什么它不安全?它是关于@walidz代码(没有对用户输入数据或http_请求方法进行任何测试)的,而不是您的。你的回答很好。我们在同一时间写了答案。谢谢兄弟们,但当我尝试这些代码时,它并没有重定向到pdf文件页面刷新,这就是它的工作原理。我敢肯定。我刚才再次测试了它,服务器是Linux/Apache/php-7.1.13;浏览器ffx/chrome/IE11/MS Edge在所有浏览器中都能正常工作,这意味着重定向到pdf文件。我不知道为什么它不工作,我在000webhost和localhost以及其他一些服务器上试过,总是一样的,它没有重定向到pdf文件,只是在iclick输入时刷新为什么它不安全?它是关于@walidz代码的(无需对用户输入数据或http_请求方法进行任何测试)不是你的。你的答案很好。我们在同一时间写了答案。谢谢兄弟们,但当我尝试这些代码时,它没有重定向到pdf文件页面刷新,这很有效。我确定。我刚才再次测试了它,服务器Linux/Apache/php-7.1.13;浏览器ffx/chrome/IE11/MS Edge在所有浏览器中都能正常工作,这意味着重定向到pdf文件。我不知道为什么它不起作用,我在000webhost和localhost以及其他一些服务器上尝试过,总是一样,它没有重定向到pdf文件,只是在单击Enter时刷新。谢谢兄弟们,但当我尝试这些代码时,它没有重定向到pdf文件,页面刷新就是这样it@walidz我已经编辑过了,可以用了现在,在我的本地主机上工作。当你用xxxx填充输入并点击回车键时,它将被重定向到xxx/xxx.pdf?你确定吗,先生?我尝试了3个网络主机,但仍然没有work@walidz是的,它正在工作。假设您的文件url是localhost/location.php,输入xxxx并提交,它将转到localhost/xxxx/xxxx.pdf。如果没有文件这里,它将显示一个错误。请确保您在重定向位置有一个文件。好的,先生,是的,您是对的错误是脚本的文件扩展名谢谢兄弟们,但当我尝试这些代码时,它没有重定向到pdf文件页面刷新it@walidz我已经编辑了它,现在可以工作了,顺便说一句,在我的本地主机上工作用xxxx填充输入,然后按enter键,它将重定向到xxx/xxx.pdf?你确定吗,先生?我尝试了3个网络主机,但仍然没有work@walidz是的,它正在工作。假设您的文件url是localhost/location.php,输入xxxx并提交,它将转到localhost/xxxx/xxxx.pdf。如果那里没有文件,它将显示错误。请确保在重定向位置有一个文件。好的,先生,是的,你是对的错误是脚本的文件扩展名谢谢兄弟们,但当我尝试这些代码时,它没有重定向到pdf文件页面刷新就是这样,可能是你需要两个点才能取回“location:../.”之类的文件夹($filename)不,先生,文件夹在同一个脚本的文件夹中,所以我应该使用一个点,我认为提交按钮上的问题不起作用,谢谢兄弟们,但当我尝试这些代码时,它没有重定向到pdf文件页面刷新,就是这样,你可能需要两个点才能返回一个文件夹,如“位置:../'.$filename);?不,先生,文件夹在同一个脚本的文件夹中,因此我应该使用一个点,我认为提交按钮上的问题不起作用header()
<form action="" method="post" > <input type="text" name="logincode"> <input type="submit" name="send"> </form> <?php if($_POST){ $name = $_POST['logincode']; $filename = $name.'/'.$name.'.pdf'; header('Location: ./'.$filename.''); } ?>
- 为用户输入数据编写测试