缺少$ _POST中的键

时间:2010-04-03 14:55:21

标签: php html

我正在尝试从POST方法获取一些表单数据。

这是表格的代码 -

<form action="" method="post" name="form1" id="form1">

<input type="hidden" value="15" name="ad_id"> 

  <table width="100%" cellspacing="0" cellpadding="0" border="0" class="block">

    <tbody><tr>

      <td valign="top">&nbsp;</td>

      <td align="right">all fields are required</td>

    </tr>

    <tr>

      <td valign="top">&nbsp;</td>

      <td align="center"></td>

    </tr>

    <tr>

      <td valign="top" width="150"><label for="name">Advertisement Name</label>

      *</td>

      <td><input type="text" size="45" value="Banner" id="name" name="name">

        e.g Home Banner</td>

    </tr>

    <tr>

      <td valign="top"><label for="placement">Advertisement Placement</label></td>

      <td><select id="placement" name="placement">      

宽Skyscrapper 160 x 600                         

    </tr>

    <tr>

      <td valign="top"><label for="code">Advertisement Code</label></td>

      <td><textarea rows="5" cols="45" id="code" name="code"></textarea></td>

    </tr>

    <tr>

      <td>Status</td>

      <td><label>

        <input type="radio" checked="checked" value="1" name="status">

        Active</label>

        <label>

          <input type="radio" value="0" name="status">

        Inactive</label></td>

    </tr>        
    <input type="hidden" value="1" name="banner_uploaded" id="banner_uploaded">
    <tr>
     <td>For Country - </td>
     <td>
      <select id="country" name="country">         
 <option>Not posting all the names of country</option>
        </select>
     </td>
    </tr>
    <tr>
                              <td><label for="Scheduling">Valid From </label></td>
     <td><input type="text" value="" id="date-from" name="date-from"> Format : dd/mm/yyyy:hh/mm</td>
    </tr>
    <tr>
                              <td><label for="Scheduling">Valid Till </label></td>
     <td><input type="text" value="" id="date-to" name="date-to"> Format : dd/mm/yyyy:hh/mm</td>
    </tr>

    <tr>

      <td>&nbsp;</td>

      <td align="right"><input type="submit" onclick="return validate_ad_form(add_adv)" value="Update Advertisement" class="button" name="update"></td>

    </tr>

  </tbody></table>

</form>

但是当我通过它传递HTML代码时,我得$ _POST ['code']为空。

当我通过纯文本时,它可以正常工作。

当我打印$ _POST [即used - print_r($ _ POST)],我得到了以下输出 -

数组([ad_id] =&gt; 15 [名称] =&gt;横幅[展示位置] =&gt; ad_468x60 [代码] =&gt; [状态] =&gt; 1 [banner_uploaded] =&gt; 1 [国家] = &gt; IN [date-from] =&gt; [date-to] =&gt; [update] =&gt;更新广告)

请注意,我还没有输入'date-from','date-to'字段。

我已故意进入,因为StackOverflow不允许我发布图片!

人们,任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

问题是你是print_r()正在浏览器中显示。如果您的POST数据中包含HTML,那么当您将数据转储回来时,这些标记将作为HTML感兴趣。您必须强制输出为明文模式(header('Content-type: text/plain);),或者通过htmlspecialchars()运行可以包含HTML的字段以逃避&lt;和&gt;字符。

如果您查看正在执行print_r()的页面的来源,我怀疑您会在那里看到HTML标记。如果您只使用example.jpg图片进行测试,则不会看到任何内容,因为该图片很可能不存在,因此无法渲染,然后<a>标记没有任何内容强调也不会出现。