2016-04-24 85 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