PHP 表单元素未显示。

Posted

技术标签:

【中文标题】PHP 表单元素未显示。【英文标题】:PHP form elements not showing up. 【发布时间】:2014-05-23 06:37:30 【问题描述】:

所以我为一位学校老师运行了一个小型网站,我一直在尝试实现一些 php 脚本,以便老师可以现场上传文件,而不必来找我手动将它们上传到她的服务器。

我上传了文件本身,但是当我尝试使用文本框让老师输入名称时,字段内的文本拒绝将自己分配给变量。我对所有 $_POST[] 值都使用了转储方法,它出现在数组中。

这是我的表单代码。

<body>
<div id="page">
<div id="header"></div>
<div id="cssmenu">
<ul>
<li><a href="../../index-2.html"><span>Home</span></a></li>
<li><a href="../../tline.html"><span>Timeline</span></a></li>
<li><a href="../../notes-apus.html"><span>Notes</span></a></li>
<li><a href="../../links.html"><span>Links</span></a></li>
<!--   <li class='last'><a href='videos.html'><span>Videos</span></a></li> --></ul>
</div>
<hr />
<div id="content" class="narrowcolumn">
<div class="post" id="div">
<h2 class="style8">File Upload</h2>
<div class="entry" align="center">
      <form action="upload_file.php" method="post" enctype="multipart/form-data">
         <label for="file">File:</label>
         <input type="file" name="file" id="file"><br>
         <label for="text">Entry Name:</label>
         <input type="text" name="Filed" value="File Name" id="FileName">
         <input type="submit" name="submit" value="Submit">
      </form>
</div>
<p class="postmetadata">&nbsp;</p>
</div>
</div>
<hr />
<div id="footer">
<p><br />Last updated
<script type="text/javascript">// <![CDATA[
document.write(document.lastModified);
// ]]></script>
</p>
</div>
</body>

这是上传文件的代码。

<body>
<div id="page">
<div id="header"></div>
<div id="cssmenu">
<ul>
<li><a href="../../index-2.html"><span>Home</span></a></li>
<li><a href="../../tline.html"><span>Timeline</span></a></li>
<li><a href="../../notes-apus.html"><span>Notes</span></a></li>
<li><a href="../../links.html"><span>Links</span></a></li>
<!--   <li class='last'><a href='videos.html'><span>Videos</span></a></li> --></ul>
</div>
<hr />
<div id="content" class="narrowcolumn">
<div class="post" id="div">
<h2 class="style8">File Upload</h2>
<div class="entry" align="center">
      <?php
$filenamed = $_GET["Filed"];
$temp = explode(".", $_FILES["file"]["name"]);

  if ($_FILES["file"]["error"] > 0)
    
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    
  else
    
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("uploadedFiles/" . $_FILES["file"]["name"]))
      
      echo $_FILES["file"]["name"] . " already exists. ";
      
    else
      
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "../../uploadedFiles/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "uploadedFiles/" . $_FILES["file"]["name"];
      file_put_contents("./php_registries/ScullyFilenameRegistry.txt", $filenamed, FILE_APPEND);
      
   

?>
</div>
<p class="postmetadata">&nbsp;</p>
</div>
</div>
<hr />
<div id="footer">
<p><br />Last updated
<script type="text/javascript">// <![CDATA[
document.write(document.lastModified);
// ]]></script>
</p>
</div>
</body>

我只是不明白出了什么问题,所以我真的很想在这方面得到一些帮助。

【问题讨论】:

【参考方案1】:

您从$_GET 获取文件名,而不是$_POST

$filenamed = $_GET["Filed"];

应该是:

$filenamed = $_POST["Filed"];

【讨论】:

成功了!谢谢。我将查找 $_POST[] 和 $_GET[] 的区别,以免犯同样的错误。 @user3516909:这里解释了 $_GET 和 $_POST 之间的区别。 ***.com/questions/3477333/… 还有几个网站可能更好地描述了这些差异。【参考方案2】:

您正在使用表单发出 POST 请求,即您设置method='post'

但在 php 代码中,您使用 $_GET['Filed'] 来获取文件名,而不是使用 $_POST['Filed']

【讨论】:

以上是关于PHP 表单元素未显示。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Javascript 访问动态表单元素 id

检索 Zend 框架中的子表单元素?

php 将表单名称作为数据属性添加到重力表单表单元素

条纹自定义付款表单未正确显示

使用 Mobile Safari“表单助手”在选择元素上未触发更改事件

将 jQuery 验证规则添加到动态生成的表单元素时出错