2012-07-25 106 views
1

我开发了一个网络爬虫来搜索我公司网站上的某些标签,以确保它们是实时的,有谷歌分析,等等。然而,我的公司有近百个网站,所以实际的抓取过程实际上是一种抓取。所以我想创建一个表单,用户输入我们公司的一个网址,它只能抓取那个网站。我对表单不太满意,所以我基本上希望表单存储用户输入的url,然后重定向到不同的页面,在该页面中将url提供给抓取工具并显示结果。 这里基本上是我迄今为止,没有太多,我有麻烦重定向到不同的页面和存储的URL变量,所以我可以将它传递给我有的履带式代码。PHP表单动作没有重定向

<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文件,当我点击提交它带给我当前的蛞蝓(../crawler-2 /submitcrawler.php而不是../submitcrawler.php),所以它抛出了一个404错误

+2

做你试过'../submitcrawler。php' – 2012-07-25 16:16:41

+0

是的完美工作。非常感谢你! – rhuber16 2012-07-25 17:25:15

回答

1

表单提交到'submitcrawler.php'在与你正在查看的文件相同的文件夹中,所以如果它in/crawler-2 /那么这就是它的外观。

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

所以

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

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

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

0

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

0

您在后置操作值中使用了相对路径。例如,如果您的爬虫程序脚本位于您的webroot中,则应使用action =“/ submitcrawler.php”。如果没有,你可以做一些像action =“/ path/to/submitcrawler.php”

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