0
我通过在我的工作中克隆另一个网站来创建一个新网站,并且我没有创建或编码这个。表单操作不会重定向到一个php文件
所以,我的问题是:该网站正在工作,但图像上传不起作用,我不知道发生了什么事情。我尝试了很多东西来解决这个问题,比如var_dump在变量中尝试调试。下面是代码:
<? require_once("header.php"); ?>
<? require_once("menu.php"); ?>
<? require_once("ConnFile.php"); ?>
<?
if ($_GET["acao"] == "excluir")
{
$Tabela = "BannerHome";
$TabelaChave = "idBanner";
if(is_numeric($_GET["k"]))
{
$txtIdProduto = $_GET["k"];
$acao = ("UPDATE $Tabela SET Imagem". $_GET["I"] . " = '' WHERE $TabelaChave = $txtIdProduto ");
if(mysqli_query($link, $acao)) {
echo '<div class="alert alert-success alert-dismissible"" role="alert"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> Registro removido com sucesso</div>';
} else {
echo '<div class="alert alert-danger alert-dismissible"" role="alert"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> Não foi possível remover o registro. </div>';
}
}
}
?>
<?
$id = 0;
if(is_numeric($_GET["k"])) {
$id = $_GET["k"];
}
$DadosProduto = mysqli_fetch_array(mysqli_query($link, "SELECT * FROM BannerHome WHERE idBanner = " . $id));
?>
<? if($DadosProduto["Imagem" . $_GET["I"]] == "") { print '<div class="alert alert-warning alert-dismissible"" role="alert"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> Este banner ainda não possui imagem cadastrada. </div>'; } ?>
<?
?>
<link href="upload/assets/css/style.css" rel="stylesheet" />
<h4>Banner home<small>/Imagems/<?=$DadosProduto["Titulo"]; ?> </small></h4>
<form class="form-horizontal" role="form" id="upload" action="upload/uploadHome.php?k=<?=$id; ?>&I=<?=$_GET['I']; ?>" method="post" enctype="multipart/form-data">
<div id="drop">
<pre>
<center>
Arreste as imagens (Fundo 1920x400, Superior 420x40)
<br>
ou
<br>
<a class="btn btn-primary btn-lg" >Selecione as imagens</a>
<input type="file" name="upl" multiple />
</div>
</center>
</pre>
<ul>
<!-- The file uploads will be shown here -->
</ul>
<div style="clear:both";>
<?
var_dump($DadosProduto);
if($DadosProduto["Imagem" . $_GET["I"]] != "") {
print '<div class="panel panel-default" style="width:145px; float:left; margin-right:4px;">';
print ' <div class="panel-body">';
print ' <img src="../gdThumb.php?imagem=' . $DadosProduto["Imagem" . $_GET["I"]] . '" alt="" class="img-thumbnail">';
print ' </div>';
print ' <div class="panel-footer"><center><a href="?acao=excluir&k='. $DadosProduto["idBanner"] .'&I='. $_GET["I"] .'"><span class="glyphicon glyphicon-remove"></span> Remover</a></center></div>';
print '</div> ';
}
?>
</div>
</form>
<script src="upload/assets/js/jquery.knob.js"></script>
<!-- jQuery File Upload Dependencies -->
<script src="upload/assets/js/jquery.ui.widget.js"></script>
<script src="upload/assets/js/jquery.iframe-transport.js"></script>
<script src="upload/assets/js/jquery.fileupload.js"></script>
<!-- Our main JS file -->
<script src="upload/assets/js/script.js"></script>
<? require_once("footer.php"); ?>
我认为这个问题是在表单动作
<form class="form-horizontal" role="form" id="upload" action="upload/uploadHome.php?k=<?=$id; ?>&I=<?=$_GET['I']; ?>" method="post" enctype="multipart/form-data">
因为上传文件夹中存在和PHP文件了。但是当表单调用这个动作时,什么都不会发生。我试图使用:var_dump,die(),echo,很多事情来看一个简单的反应。我无法调试uploadHome.php,我不知道为什么。
的connFile.php工作
所以,我需要调用此页面来存储我的形象和页面并没有叫。这里是uploadHome.php:
<? require_once("../ConnFile.php"); ?>
<?php
$idProduto = $_GET["k"];
// A list of permitted file extensions
$allowed = array('png', 'jpg', 'gif','zip');
if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){
$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);
if(!in_array(strtolower($extension), $allowed)){
echo '{"status":"error"}';
exit;
}
$arquivo = 'BannerHome_'. $_GET["k"] . '_' . rand(1,1500) . '-' . md5($_FILES['upl']['name']) . "." . $extension;
if(move_uploaded_file($_FILES['upl']['tmp_name'], '../../img/produto/'. $arquivo)){
mysqli_query($link, "UPDATE BannerHome SET Imagem". $_GET['I'] ." = '$arquivo' WHERE idBanner = " . $_GET["k"]);
echo '{"status":"success"}';
exit;
}
}
echo '{"status":"error"}';
exit;
你能提供给我任何信息,将不胜感激,因为我不知道该怎么办。
你很容易遭受[sql注入攻击](http://bobby-tables.com)。如果你付钱给你建造这个,你应该要求把你的钱翻倍。 –
我不认为你需要这些分号,'<?= $ _ GET ['I']; ? >'我目前无法测试,但是我已经使用过这种语法的几次,我认为它是''..我没有找到信息来验证任何一种方式:/ –
我认为问题是: UploadHome.php没有调用表单提交,任何ideias? –