【问题标题】:PHP form action not redirectingPHP表单动作不重定向
【发布时间】:2016-02-11 02:51:19
【问题描述】:

我开发了一个网络爬虫来搜索我公司网站上的某些标签,以确保它们是实时的,有谷歌分析,等等。但是,我的公司有近百个网站,所以实际的爬取过程实际上就是爬取。所以我想创建一个表单,用户输入我们一家公司的网址,它只爬取那个网站。我不擅长表单,所以我基本上希望表单做的是存储用户输入的 url,然后重定向到另一个页面,其中 url 被提供给爬虫并显示结果。 这基本上是我到目前为止所拥有的,不多,我无法重定向到不同的页面并存储 URL 变量,因此我可以将它传递给我拥有的爬虫代码。

<div id="main-content" class="mc-left"> <div class="entry"> <div style="position:absolute; margin-left:520px; height:25px; width:120px; font-size:10px;"> </div>
</div>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

<form name="form1" id="form1" method="POST" action="submitcrawler.php">
    <div class="hiddenfields">
    <p>Website Address:<br>
    <input name="websiteaddress" type="text"></p>
    <input type="submit" class="submit" name="submit"  value="Submit">          
</form>

如您所见,我希望此表单将我带到 submitcrawler.php,但是,当我创建该 php 文件时,当我点击提交时,它会将我带到当前的 slug (../crawler-2/submitcrawler.php而不是 ../submitcrawler.php) 所以它会抛出 404 错误

【问题讨论】:

  • 你试过../submitcrawler.php
  • 是的,效果很好。非常感谢!

标签: php forms action


【解决方案1】:

表单将提交到与您正在查看的文件位于同一文件夹中的“submitcrawler.php”,因此如果它在 /crawler-2/ 中,那么它就是在寻找它。

如果你想升到上面的目录,请使用 ../,或者可能更好,使用 / 并从 web 根目录(apache / web 服务器可查看的顶级目录)输入文件的路径。

所以

<form action="../submitcrawler.php">

<form action="/submitcrawler.php">

【讨论】:

    【解决方案2】:

    对于您正在寻找的功能,您可以尝试使用method="GET"。这样,您可以在 URL 中看到正在传递给其他 PHP 脚本的信息。

    然后只需在其他 PHP 脚本中检索信息:

    if(isset($_GET['websiteaddress'])) {
        $websiteaddress = $_GET['websiteaddress'];
    } else {
        echo "No web address was received.";
    }
    

    action 属性的形式而言,如果脚本都是静态的,则需要使用绝对路径,否则如果脚本是动态的并且可能会更改服务器上的位置,则使用相对路径

    路径信息:

    http://en.wikipedia.org/wiki/Path_%28computing%29

    http://webdesign.about.com/od/beginningtutorials/a/aa040502a.htm

    【讨论】:

      【解决方案3】:

      如果您正在谈论的文件位于 crawler-2 目录下,它将提交表单到该文件,除非您使用相对路径 ../submitcrawler.php

      【讨论】:

        【解决方案4】:

        您在该表单上设置的操作会将其发送到与当前脚本位于同一目录中的 submitcrawler.php。尝试将操作更改为 ../submitcrawler.php,或者将其设置为脚本的绝对 url (http://mydomain.me/submitcrawler.php)

        【讨论】:

          【解决方案5】:

          您在帖子操作值中使用了相对路径。例如,如果你的爬虫脚本在你的 webroot 中,你应该使用 action="/submitcrawler.php"。如果没有,你可以做类似 action="/path/to/submitcrawler.php"

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多