我有一个非常令人困惑的古怪。我有一个表单,我发布了一些文本字段和一个文本区域。我遇到的问题是在一个或两个字段上我可以发布url(例如,http://www.google.com)。
问题是,有些字段可以正常工作而其他字段不可用,而且在表单发布后,我的网站似乎停止工作。
以下是代码。
<form action="uploadbannerAction.php" method="post" id="addBanner" name="addBanner" enctype="multipart/form-data">
<table width="90%">
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td><label for="name">Name: </label></td>
<td><input type="text" id="name" name="name" /></td>
</tr>
<tr>
<td><label for="file">Image: </label></td>
<td><input type="file" name="file" id="file"></td>
</tr>
<tr>
<td><label for="extra">Text: </label></td>
<td><input type="text" id="text" name="text" /></td>
</tr>
<tr>
<td><label for="link">Link: </label></td>
<td><input type="text" id="link" name="link" /></td>
</tr>
<tr>
<td><label for="details">Details: </label></td>
<td><textarea name="details" class="mceEditor"></textarea></td>
</tr>
<tr>
<td><label for="claim">Claim: </label></td>
<td><input type="text" id="claim" name="claim" /></td>
</tr>
<tr>
<td><label for="priority">Priority: </label></td>
<td><strong><i>Priority for a new entry is set to it's lowest. Please change once added if you need to be changed.</i></strong></td>
</tr>
<tr>
<td><label for="link">Offer Type: </label></td>
<td>
<select name="adverttype" >
<option value="" >Please Select...</option>
<?php
$rowSet = $db->selectAllNoLimit(adverttype);
foreach($rowSet as $key => $offer){
echo "<option value=\"" . $offer['id'] . "\">" . $offer['type'] . " </option>";
}
?>
</select>
</td>
</tr>
</table>
<p class="submit"><button name="submit-banner" value="addBanner">Submit</button></p>
</form>
以下是表单发布到的代码:
<?php
ob_start(); //This is needed for the header to work on the live site!!!!
require_once 'includes/global.inc.php';
include 'classes/advertClass.php'; //Include the Property Class
if(isset($_POST))
{
//Create a new object
$advert = new advert("");
//Collect the variables passed from POST
$name = mysql_real_escape_string($_POST['name']);
$text = mysql_real_escape_string($_POST['text']);
$file = mysql_real_escape_string($_POST['file']);
$link = mysql_real_escape_string($_POST['link']);
$claim = mysql_real_escape_string($_POST['claim']);
$details = mysql_real_escape_string($_POST['details']);
$priority = mysql_real_escape_string($_POST['priority']);
$adverttype = mysql_real_escape_string($_POST['adverttype']);
//Put collected variables into an array called newsArray
$advertArray = array('name'=>$name,'text'=>$text,'link'=>$link,'claim'=>$claim,'details'=>$details,'priority'=>$priority,'adverttype'=>$adverttype);
$advert->save($advertArray);
$error[] = "Thanks. The offer has been added";
header("Location: bannerupload.php?e= $error[0]");
}
?>
现在我遇到的问题是,当我在名为链接的文本字段中发布网址时,它可以正常工作,但是当我尝试在声明中执行相同操作时。它不起作用,它的形式和该页面上的其他所有内容都显示没有CSS。我还尝试在表单提交后直接打印$ _POST变量,但是当我在声明文本字段中有一个url时,print_r不会被操作。
我非常困惑。非常感谢您的帮助。 问候更新 我收到以下错误消息。
不可接受
在此服务器上找不到所请求资源/admin/uploadbannerAction.php的适当表示。
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。
由于 韦恩
答案 0 :(得分:0)
1) $ file = mysql_real_escape_string($ _ POST ['file']); 击>
使用$ _FILE超级全局变量
2)优先级未定义任何文本框或没有任何内容请检查..你使用的是普通文本
答案 1 :(得分:0)
我检查了输出,显示的错误页面可能是由前23行引起的(如果生成的话,即使保存按预期工作,也应该更正)。
此功能将打开输出缓冲。输出缓冲是 而不是从脚本(除标题之外)发送的活动没有输出 输出存储在内部缓冲区中。 php.net ob_start function description
在
之后$advert->save($advertArray);
添加以下几行,看看会发生什么:
$op = ob_get_contents();
ob_end_clean();
die($op);