我想通过POST方法创建表单并检索另一个PHP文件上的表单值。通过POST方法传输表单输入
但不幸的是,它似乎并没有工作。下面
的形式输入文件
<form action="uploadimage.php" method="POST" enctype="multipart/form-data">
<div align="center"><table border=0>';
echo"<tr><td>Caption: </td><td><input type='text' name='caption'></td></tr>
<tr><td>Album</td><td>";
$Query='SELECT * FROM `gallery`';
$result=mysqli_query($connection,$Query);
echo'<select name="albums">';
$count=0;
$previous=-1;
while($data=mysqli_fetch_array($result))
{
if($previous<$data['album'])
{
echo "<option value=".$data['album'].">".$data['album']."</option>";
$previous=$data['album'];
}
if($count<=$data['album'])
{
$count=$data['album']+1;
}
}
echo "<option value='.$count.'>New Album</option>";
echo"</select></td></tr>
<tr><td>Picture: </td><td><input type='file' name='photo'></td></tr>
<tr><td></td><td><input type='submit' name='upload_btn' value='upload'></td></tr>
</table></div>
</form>
不介意其他的代码,我只是担心表单的输入值的转移。
这里是接收在另一个PHP文件
require_once"connection.php";
$target_Path='img/displays/';
$caption=$_POST['caption'];
$albums=$_POST['albums'];
$target_Path = $target_Path.basename($_FILES['photo']['name']);
move_uploaded_file($_FILES['photo']['tmp_name'], $target_Path);
$withoutExt = preg_replace("/\\.[^.\\s]{3,4}$/", "", $target_Path);
mysqli_query($connection,"INSERT INTO `ett`.`gallery` (`id` ,`album`,`name`,`path`)VALUES (NULL,'".$albums."','".$caption."','".$withoutExt."')");
和错误,我接收是如下
通知的形式的值的代码:未定义指数:字幕在C: \ wamp \ www \ ETT Logo \ Controlpanel \ uploadimage.php on line 12
我收到上面的错误表单中的所有输入。并且这些值没有被传送。
我没有看到一个'
'标签 – RiggsFolly我还没有看到任何错误检查有关文件上传[参见手册] (http://php.net/manual/en/features.file-upload.php) – RiggsFolly
您的脚本存在[SQL注入攻击]的风险(http://stackoverflow.com/questions/60174/how-can-看看发生了什么事[Little Bobby Tables](http://bobby-tables.com/)即使 [如果你正在逃避投入,它不安全! ](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) 使用[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly