我想我還沒有理解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