2016-04-24 115 views
-1

我是Ajax和PHP的新手。 決定創建index.php文件(使用AJAX)和simpan.phpPHP錯誤:未定義索引

<?php 
include 'koneksi.php'; //conn 
$target_dir="foto/"; 
$target_file=$target_dir.basename($_FILES['foto']['name']); //error 
move_uploaded_file($_FILES['foto']['tmp_name'],$target_file); //error 
$q=$db->prepare("insert into mahasiswa values 
(?,?,?,?,?)"); 
$param=array($_POST['nim'],$_POST['nama'], 
      $_POST['alamat'],$_POST['email'], 
      $_FILES['foto']['name']); //error 
$q->execute($param); 
if($q){ 
    echo "OK"; 
}else{ 
    echo "fail"; 
} 

我很困惑它有一些錯誤:

Undefined index: foto in C:\xampp\htdocs\lat_ajax204\simpan.php on line 4

Undefined index: foto in C:\xampp\htdocs\lat_ajax204\simpan.php on line 5

Undefined index: foto in C:\xampp\htdocs\lat_ajax204\simpan.php on line 10

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'foto' cannot be null in C:\xampp\htdocs\lat_ajax204\simpan.php:11 Stack trace: #0 C:\xampp\htdocs\lat_ajax204\simpan.php(11): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\lat_ajax204\simpan.php on line 11

我創建mahasiswa表一個MySQL列照片中,類型是blob。它會造成問題嗎?但是index.php根本沒有錯誤。謝謝

+3

[PHP: 「注意:未定義變量」 和 「通知:未定義的索引」]的可能的複製(http://stackoverflow.com/questions/4261133/php-notice-undefined -variable-and-notice-undefined-index) –

+0

這是你上傳文件的時候嗎?提交表單時沒有包含在表單中的文件是否可以? – Technoh

+0

@Technoh即使表單沒有被提交,$ _FILES數組也會被填充,'error'被設置爲'4'。 –

回答

0

使用isset()檢查表單是否被提交。

http://php.net/manual/en/function.isset.php

<?php 
include 'koneksi.php'; //conn 
if(isset($_FILES['foto'],$_POST['nim'],$_POST['nama'],$_POST['alamat'],$_POST['email'])) { 
    $target_dir="foto/"; 
    $target_file=$target_dir.basename($_FILES['foto']['name']); //error 
    move_uploaded_file($_FILES['foto']['tmp_name'],$target_file); //error 
    $q=$db->prepare("insert into mahasiswa values 
    (?,?,?,?,?)"); 
    $param=array($_POST['nim'],$_POST['nama'], 
       $_POST['alamat'],$_POST['email'], 
       $_FILES['foto']['name']); //error 
    $q->execute($param); 
    if($q){ 
     echo "OK"; 
    }else{ 
     echo "fail"; 
    } 
} 
+0

謝謝,沒有更多的錯誤線。但數據不會插入數據庫..你可以修復它嗎? –

+0

Hi Satria,上面的代碼片段是對你的關於未定義索引錯誤的問題的直接回答。爲什麼未插入數據庫中的數據超出了索引錯誤問題的範圍。 – swordsecurity

+0

您可以提出一個新問題併發布您的HTML/PHP代碼,以查看是否有人可以幫助您解決數據庫問題。 – swordsecurity