使用php将表单变量传递到url
我有以下表单,允许用户选择酒店预订的日期/房间使用php将表单变量传递到url,php,url,variables,Php,Url,Variables,我有以下表单,允许用户选择酒店预订的日期/房间 <form action="booking-form.php" method="post"> <fieldset> <div class="select-date"> <label>Arrival Date</label> <select name="arrd" class="day"> <option value="1
<form action="booking-form.php" method="post">
<fieldset>
<div class="select-date">
<label>Arrival Date</label>
<select name="arrd" class="day">
<option value="1" >1</option>
... snip ...
<option value="24" selected="selected">24</option>
</select>
<select name="arrm" class="month">
<option value="01" >January</option>
... snip ...
<option value="11" selected="selected">November</option>
</select>
<select name="arry" class="year">
<option value="2009" selected="selected">2009</option>
... snip ...
</select>
</div>
<div class="more">
<div class="info">
<label>Days</label>
<select name="days">
<option value="1">01</option>
... snip ...
<option value="7" selected="selected">07</option>
</select>
</div>
<div class="info">
<label>Rooms</label>
<select name="rooms">
<option value="1">01</option>
... snip ...
</select>
</div>
</div>
<input type="submit" value="Check availabilty"/>
<input type="hidden" name="submitted" value="TRUE"/>
</fieldset>
</form>
到达日期
1.
... 剪
24
一月
... 剪
十一月
2009
... 剪
天
01
... 剪
07
房间
01
... 剪
这里是php,它应该处理从表单传递的变量,并通过url将它们传递给预订提供商。
当表单仅在一个没有错误的白色屏幕上提交时,不会发生任何事情
<?php
ini_set ('display_errors',1);
error_reporting (E_ALL & ~ E_NOTICE);
if (isset($_POST['submitted'])){
$errors = array();
// A bunch of if's for all the fields and the error messages.
if (empty($_POST['arrd'])) {
$errors[] = 'Please select a day';
} else{
$arrd = ($_POST['arrd']);
}
if (empty($_POST['arrm'])) {
$errors[] = 'Please select a month';
} else{
$arrm = ($_POST['arrm']);
}
if (empty($_POST['arry'])) {
$errors[] = 'Please select a year';
} else{
$arry = ($_POST['arry']);
}
if (empty($_POST['non'])) {
$errors[] = 'Please choose a number of nights';
} else{
$non = ($_POST['non']);
}
if (empty($_POST['norooms'])) {
$errors[] = 'Please choose a number of rooms';
} else{
$norooms = ($_POST['norooms']);
}
if (empty($errors)){
$arrdate = $arrd . " " . $arrm ."" . $arry;
$url ="https://portals.uk.rezlynx.net/DHPPORTAL/wfrmpakquery.aspx?SiteID=DHOLDHALL&arrdate=$arrdate&non=$non&norooms=$norooms";
header('Location: $url');
exit();
}
else{
foreach($errors as $msg){
echo"-msg<br/>\n";
}
}
?>
如果通过PHP的lint checker(PHP-l)运行代码,您将看到第62行(最后一行)出现语法错误
您只是缺少了需要关闭初始“if”语句的大括号。如果您通过PHP的lint checker(PHP-l)运行代码,您将在第62行(最后一行)看到语法错误
您只是缺少了需要关闭初始“if”语句的大括号。行
header('Location: $url');
应该是
header("Location: $url");
变量不在单引号内计算。行
header('Location: $url');
应该是
header("Location: $url");
变量不在单引号内计算。问题可能是
header('Location: $url');
exit();
要么试试
header('Location: '.$url);
exit();
或
问题可能是
header('Location: $url');
exit();
要么试试
header('Location: '.$url);
exit();
或
您不能在表单的action属性中使用该URL并将方法设置为GET
<form action="https://portals.uk.rezlynx.net/DHPPORTAL/wfrmpakquery.aspx?SiteID=DHOLDHALL" method="get">
[...]
</form>
[...]
难道您不能在表单的action属性中使用该URL并将方法设置为GET
<form action="https://portals.uk.rezlynx.net/DHPPORTAL/wfrmpakquery.aspx?SiteID=DHOLDHALL" method="get">
[...]
</form>
[...]
+1来自我,但我只落后你一分钟左右,想+1我:p+1来自我,但我只落后你一分钟左右,想+1我:我从没想过我尝试了一下,得到了一个apache错误页面。提供程序声明url必须采用以下格式。。。有什么想法吗?错误的URL到底是什么样子的?我认为他们要么无法处理传递的其他URL字段(这没有意义),要么浏览器对第一个参数使用问号,而不是&
,这将导致问题,因为操作URL中已经有一个参数。在后一种情况下,将以下字段添加到URL:
-1如果使用GET方法,表单数据将覆盖表单操作中的查询字符串我从未想到过我尝试了一下,得到了一个apache错误页面。提供程序声明url必须采用以下格式。。。有什么想法吗?错误的URL到底是什么样子的?我认为他们要么无法处理传递的其他URL字段(这没有意义),要么浏览器对第一个参数使用问号,而不是&
,这将导致问题,因为操作URL中已经有一个参数。在后一种情况下,将以下字段添加到URL:
-1如果使用GET方法,表单数据将覆盖表单操作中的查询字符串