PHP表单操作不重定向

时间:2012-07-25 16:14:30

标签: php forms action

我开发了一个网络抓取工具来搜索我公司网站上的某些标签,以确保它们是实时的,有Google分析,等等等等。但是,我的公司有近百个网站,所以实际的抓取过程,实际上是一个爬行。所以我想创建一个表单,用户输入我们公司的网址,然后只抓取一个网站。我不熟悉表单,所以我基本上希望表单做的是存储用户输入的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错误

5 个答案:

答案 0 :(得分:1)

表单提交到'submitcrawler.php'在与您正在查看的文件相同的文件夹中,因此如果它位于/ crawler-2 /那么它就在那里。

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

所以

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

<form action="/submitcrawler.php">

答案 1 :(得分:1)

对于您正在寻找的功能,您可以尝试使用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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您在帖子操作值中使用了相对路径。例如,如果您的抓取工具脚本位于您的webroot中,则应使用action =“/ submitcrawler.php”。如果没有,你可以做一些像action =“/ path / to / submitcrawler.php”