我想我还没有理解PHP逻辑。我在JavaScript中的“如果”工作正常,但在PHP中它总是被忽略。我有这样的形式insert_car.php(它方):错误的“if”逻辑PHP
<input type="file" name="imagem01" id="imagem01" title="Imagem 01" onchange="readURL01(this);" class="button" />
...(和5个图像更加投入和别人文本)
这是insert_db.php相应方:
$gravar_imagem01 = $_FILES['imagem01'];
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem01["name"], $ext);
$nome_imagem01 = md5(uniqid(time())) . "." . $ext[1];
$caminho_imagem01 = "../../images/" . $nome_imagem01;
move_uploaded_file($gravar_imagem01["tmp_name"], $caminho_imagem01);
$sqlinsert = "INSERT INTO tb_carros (... imagem01,...) value (... '$nome_imagem01',...)";
它工作正常,但知道我想提出一个默认的图像,如果输入文件的一个是空的。所以,我没有这insert_db.php:
if (empty($imagem01))
{
$gravar_imagem01 = "sem_imagem.jpg";
$nome_imagem01 = $gravar_imagem01;
}
else
{
$gravar_imagem01 = $_FILES['imagem01'];
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem01["name"], $ext);
$nome_imagem01 = md5(uniqid(time())) . "." . $ext[1];
$caminho_imagem01 = "../../images/" . $nome_imagem01;
move_uploaded_file($gravar_imagem01["tmp_name"], $caminho_imagem01);
}
默认图像(sem_imagem.jpg)被放置,但即使输入“imagem01”不为空,显示的默认图像。那么,我的代码有什么问题?
Ps .:如果我切换“if”和“else”条件,结果是相反的(即使输入imagem01为空,默认图像也不会出现)。这就是为什么我说我的“如果”被忽略。
它也可以工作,但与穆罕默德答案的错误相同。我不知道为什么,但是当输入为空时,insert_db.php仍然生成一个md5 uniq名称(但没有扩展名.jpg)。 – 2013-04-27 14:52:13
@AdrianoMachado:我没有跟着你。你需要进一步缩小问题的范围。做一些调试! – 2013-04-27 15:03:02
我对穆罕默德说(两个答案),当我选择一个图像输入文件,但如果我不选择一个图像,它显示了一个破碎的图像图标,而不是'sem_imagem.jpg'。随着你的代码也发生了。当我在浏览器或phpMyAdmin上的表格中打开源代码页时,会出现一个带有md5 uniq名称但没有'jpg'扩展名的图像(值)。但是进入'if(empty($ _ FILES ['imagem01']))'我没有让md5代码去做。在这种情况下(空输入),我只想将'sem_imagem.jpg'保存为表格中的'imagem01'值。 – 2013-04-27 15:17:15