编辑:我之前确实尝试过使用 eq 而不是 == ,但它没有用。出于某种原因,现在确实如此。有可能当时还有另一个错误导致它无法工作,但现在这个问题已经解决了。谢谢你。
我正在尝试做一些简单的验证。我想确保通过变量提供的重定向 url 是否以特定站点开头。如果是,则重定向通过,如果不是,则重定向到站点的根目录。看起来很简单,对吧?
$redir = $input{'redirect'};
$redir_sub = substr($redir, 0, 21);
if ($redir_sub == "http://www.mysite.com") {
print "Location: $redir \n\n";
}else{
print "Location: http://www.mysite.com \n\n";
}
问题是,无论我在其中放置什么变量,“if”都会返回为真。我可以把我最喜欢的网络漫画放在那里,它会重定向到它,尽管字符串不匹配。例如这个:
$redir = $input{'redirect'};
$redir_sub = "http://www.yahoo.com"
if ($redir_sub == "http://www.mysite.com") {
print "Location: $redir_sub \n\n";
}else{
print "Location: http://www.mysite.com \n\n";
}
重定向到雅虎!到底是怎么回事?