发布包含网址的文本字段

时间:2014-07-02 10:34:27

标签: php forms url

我有一个非常令人困惑的古怪。我有一个表单,我发布了一些文本字段和一个文本区域。我遇到的问题是在一个或两个字段上我可以发布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错误。

由于 韦恩

2 个答案:

答案 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);