使用PHP存储视频时出现未定义索引错误
我的php代码有问题。我正在尝试使用表单将数据写入mysql。该表单还包含一个视频上传,该上传将视频存储在本地,并将视频的url存储到数据库中。问题是,当我测试它时,它会出现多个未定义的“videoname”、“videoupload”、“videodescription”索引错误。有趣的是,如果我没有选择要上传的文件,并且仍然在其他字段中输入内容,它会将信息写入数据库,并且不会出现错误。这和视频有关。有人知道它可能是什么吗?谢谢 表格代码:使用PHP存储视频时出现未定义索引错误,php,mysql,html,Php,Mysql,Html,我的php代码有问题。我正在尝试使用表单将数据写入mysql。该表单还包含一个视频上传,该上传将视频存储在本地,并将视频的url存储到数据库中。问题是,当我测试它时,它会出现多个未定义的“videoname”、“videoupload”、“videodescription”索引错误。有趣的是,如果我没有选择要上传的文件,并且仍然在其他字段中输入内容,它会将信息写入数据库,并且不会出现错误。这和视频有关。有人知道它可能是什么吗?谢谢 表格代码: <form action="videoUplo
<form action="videoUpload.php" id="videoUp" method='POST' enctype="multipart/form-data">
<p>Name:<textarea name="videoname" value="" class="name" ></textarea></p>
<p>Upload video:<input type="hidden" name="MAX_FILE_SIZE" value="10485760"> <input type="file" name="videoupload"> </p>
<p>Video Description:<textarea name="videodescription" value="" class="step" ></textarea></p>
<p><input type="submit" name="videosubmit" value="Submit Video" class="submit" /></p>
</form>
姓名:
上传视频:
视频描述:
和php:
<?php
session_start();
//This is the directory where images will be saved
$target = "assets/video/";
$target = $target . basename( $_FILES['videoupload']['name']);
$name = $_POST['videoname'];
$description = $_POST['videodescription'];
$connect = mysql_connect("localhost","root","") or die("Couldn't connect");
mysql_select_db("fyp") or die("Couldn't find db");
$queryreg = mysql_query("INSERT INTO videos(VideoName,VideoLocation,VideoDescription) VALUES('$name','$target','$description')");
//Writes the photo to the server
if(move_uploaded_file($_FILES['videoupload']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file has been uploaded, and your information has been added to the directory";
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
首先,检查文件上传:
$_FILES['videoupload']['error']
然后为错误和成功场景编写代码
关于未定义索引的错误只是告诉您,您试图访问的POST值未定义。
一定有问题。使用您喜爱的浏览器的开发人员工具或分析实际的HTTP请求,并确保传递值
行被插入到表中这一事实一点也不可笑:没有对实际值的验证。无论是否声明变量,查询都会执行。未赋值变量不会在PHP中导致错误
通常,您的代码在不同的地方缺乏验证:
- 无输入验证
- 未验证
mysql\u query()的返回值
- 对SQL注入开放
首先,检查文件上传:
$_FILES['videoupload']['error']
然后为错误和成功场景编写代码
关于未定义索引的错误只是告诉您,您试图访问的POST值未定义。
一定有问题。使用您喜爱的浏览器的开发人员工具或分析实际的HTTP请求,并确保传递值
行被插入到表中这一事实一点也不可笑:没有对实际值的验证。无论是否声明变量,查询都会执行。未赋值变量不会在PHP中导致错误
通常,您的代码在不同的地方缺乏验证:
- 无输入验证
- 未验证
mysql\u query()的返回值
- 对SQL注入开放
在插入变量之前,请尝试清理它们,其中可能有一些字符会打乱查询。在同一页面中是否有“表单”和“php脚本”videoUpload.php
您收到了什么错误代码?检查$\u文件['videoupload']['error']
并与否进行比较,它们位于不同的文件中。我对另一个包含图像上传的表单进行了类似的处理,效果很好。@ZombieHunter所有出现的错误都是针对未定义的索引。但只有当我尝试上传一些东西时,它们才会出现。如果我在填写表单时没有上传视频,它会将其写入数据库,并且不会出现任何错误,除了文件尚未上传的回显消息。在插入变量之前,请尝试清理变量,可能会有一些字符将查询弄乱。您有“表单”和“php脚本”吗在同一页面videoUpload.php
您收到了什么错误代码?检查$\u文件['videoupload']['error']
并与否进行比较,它们位于不同的文件中。我对另一个包含图像上传的表单进行了类似的处理,效果很好。@ZombieHunter所有出现的错误都是针对未定义的索引。但只有当我尝试上传一些东西时,它们才会出现。如果我在填写表格时没有上传视频,它会将其写入数据库,并且不会出现任何错误,除了文件尚未上传的回显消息。