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()
      命令。出了什么问题?从外观上看,您需要放置
      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);?不,先生,文件夹在同一个脚本的文件夹中,因此我应该使用一个点,我认为提交按钮上的问题不起作用
      <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.'');
      }
      ?>