gpt4 book ai didi

具有混合输入(文件和文本)的 PHP 表单

转载 作者:行者123 更新时间:2023-12-04 02:10:11 24 4
gpt4 key购买 nike

我在 html 中有以下形式:

 <form id="signguestbook" class="form-horizontal" action="upload.php" method="post" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label" for="inputName">Uw naam</label>
<div class="controls"><input type="text" id="inputName" placeholder="Uw naam"></div>
</div>
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls"><input type="text" id="inputEmail" placeholder="Email"><span class="maildisclaimer">(uw e-mailadres zal niet op onze site verschijnen)</span></div>
</div>
<div class="control-group">
<label class="control-label" for="inputText">Uw ervaring:</label>
<div class="controls"><textarea rows="5" cols="50" id="inputText" placeholder="Geef hier mee hoe u uw verblijf ervaren heeft!"></textarea></div>
</div>
<div class="control-group">
<label class="control-label" for="inputPhoto">Foto:</label>
<div class="controls"><input type="file" name="photo" id="photo" /></div>
</div>
<div class="control-group">
<div class="controls"><input type="submit" class="btn" value="Versturen" /></div>
</div>
</form>

使用 twitter bootstrap,布局看起来还不错。

然后我有一个带有以下测试代码的 upload.php:

 <?php
if ($_POST["inputName"]) {
echo "Naam: " . $_POST["inputName"] . "<br />";
}
if ($_POST["inputEmail"]) {
echo "Mail: " . $_POST["inputEmail"] . "<br />";
}
if ($_POST["inputText"]) {
echo "Text: " . $_POST["inputText"] . "<br />";
}
// photo is the name of our file input field
if ($_FILES['photo']['error'] > 0) {
echo "Error: " . $_FILES['photo']['error'] . "<br />";
} else {
echo "File name: " . $_FILES['photo']['name'] . "<br />";
echo "File type: " . $_FILES['photo']['type'] . "<br />";
echo "File size: " . ($_FILES['photo']['size'] / 1024) . " Kb<br />";
echo "Temp path: " . $_FILES['photo']['tmp_name'];
}
?>

我没想到这里会出现任何错误,但我得到以下信息:

 Notice: Undefined index: inputName in /var/www/greze/upload.php on line 3
Notice: Undefined index: inputEmail in /var/www/greze/upload.php on line 6
Notice: Undefined index: inputText in /var/www/greze/upload.php on line 9
File name: 3479331713.pdf
File type: application/pdf
File size: 230.8388671875 Kb
Temp path: /tmp/phpJ4z0FV

我的文件被识别,但没有 $_POST 变量。当我执行 var_dump($_POST) 时,它是一个空数组。所以它应该是我表单中的内容,但我已将其设置为发布并且 enctype 是正确的(我记得)......

我必须承认我的编码已经关闭了一段时间。

提前致谢!

最佳答案

这些只是通知。它们出现是因为您尝试将 $_POST 数组与不存在的索引一起使用。

代替

  if ($_POST["inputName"]) {

使用

  if (!empty($_POST["inputName"])) {

其他人会告诉你使用isset(),但它不会做你想做的。 isset() 函数只是检查变量是否存在。但是在这里您还期望此变量为 ba boolean true,这意味着它们也不能为空。此处,empty 函数检查变量是否存在且不为空。

此外,您的 input 元素中没有 name 属性。它们由 name 而不是您期望的 id 标识。

关于具有混合输入(文件和文本)的 PHP 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com