我正在运行一个html表单来传递宿主变量,表单本身接受URL然后PHP解析所述URL并返回HOST。
<head>
<meta charset="ISO-8859-1">
</head>
<style>
.body {
width:950px;
margin:0 auto;
}
.vastInput{
width:600px;
}
</style>
<div class='body'>
<form id='vastFormatter' method='POST' action="#" accept-charset="ISO-8859-1">
<input type='text' name='tagURL' class='vastInput'/>
<select name='platform'>
<option value='spotx'>spotxchange</option>
<option value='liverail'>liverail</option>
<option value='adap'>adap tv</option>
</select>
<input type='submit' name='submit' value='Submit'>
</form>
这是PHP:
$inputValue = $_POST['tagURL'];
$tagParsed = parse_url($inputValue);
$platform = $_POST['platform'];
$scheme = $tagParsed["scheme"];
$host = $tagParsed["host"];
$path = $tagParsed["path"];
当在变量$ host上运行if语句以查看它是否与特定字符串匹配时,会出现问题。
if($host == "vpc.altitude-arena.com") {
echo "matched";
}
经过多次测试后,我确定在发布表单值和if语句的某处,主机变量中存储的字符串的字符编码不正确,无法正确编码主机值中的“ - ”。
有关如何解决此问题的任何建议吗?
答案 0 :(得分:0)
wmfranca,
每当使用表单时,您必须清理字符串。您可能认为表单帖子来自您的代码,但它可能来自其他地方。 因此,首先修剪结果,然后尝试删除任何空格或您可能找到的任何其他奇怪字符。
我已经尝试了您提供的代码示例,我可以匹配结果:
// I take the variable and run a if statement comparison on it.
if($host === "vpc.altitude-arena.com") {
echo "Yep it matched";
}
?>
我还建议看一下: http://php.net/manual/en/filter.filters.sanitize.php
特朗德