我正在尝试使用 php 验证表单,因为它有一个需要验证的文件输入。
基本上,我的表单操作将其发送到 validate.php,它验证表单字段并使用 cURL 中的 POST 将无效数据发送回表单:
$data = array(
'nameError' => $nameError,
'name' => $name,
'description' => $desc,
'descError' => $descError,
'spriceError' => $spriceError,
'sprice' => $sprice,
'iprice' => $iprice,
'incprice' => $incprice,
'incprice' => $incprice,
'durError' => $durError,
'location' => $location,
'img' => $imgError
);
foreach($data as $key=>$value){
$field_string .= $key.'='.$value.'&';
}
rtrim($field_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'sellanitem.php');
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $field_string);
curl_exec($ch);
curl_close($ch);
header("Location: sellanitem.php");
在我的表单页面中,我检查是否设置了帖子数据:
if(isset($_POST['name'])){
$name = $_POST['name'];
}else{
$name = "";
}
if(isset($_POST['nameError'])){
$nameError = $_POST['nameError'];
}else{
$nameError = "";
}
if(isset($_POST['durError'])){
$durError = $_POST['durError'];
}else{
$durError = "";
}
if(isset($_POST['description'])){
$desc = $_POST['description'];
}else{
$desc = "";
}
等等
然后我根据变量的值显示消息:
<td>
<textarea id="name" name="name" title="name" rows="2" cols ="60" style="resize:none; float:right; font-family: Arial;" value=""><?php echo $name;?></textarea>
<?php
if($nameError != ""){
echo $nameError;
}
在谷歌中查找“自动提交表单 php”后,我来到了这个方法。我的想法是,如果我可以自动提交表单,我可以简单地将错误消息作为数据字段包含在我的 sellanitem.php 中。我不知道怎么想,这个 cURL 的东西让我很困惑,到目前为止,我提交了带有无效输入的表单字段来测试它,它只是加载了一个空白页面。我也尝试放置标题(“位置:selleritem.php”),但没有显示错误消息。
什么可能是错误的/可以达到相同结果的替代方法的建议?
干杯,邦迪