PHP错误:未定义的索引

时间:2016-04-24 12:33:39

标签: php mysql ajax file upload

我是Ajax和PHP的新手。 决定创建index.php(使用ajax)和simpan.php

<?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";
}

我很困惑它有一些错误:

  

未定义的索引:在C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php上的foto   第4行

     

未定义的索引:在C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php上的foto   第5行

     

未定义的索引:在C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php上的foto   第10行

     

致命错误:未捕获PDOException:SQLSTATE [23000]:完整性   约束违规:1048专栏&#39;照片&#39;不能为空   C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php:11堆栈跟踪:#0   C:\ XAMPP \ htdocs中\ lat_ajax204 \ simpan.php(11):   PDOStatement-&gt;执行(数组)#1 {main}抛出   第11行的C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php

我在mahasiswa表中为foto创建了一个mysql列,类型为blob。它会成功吗?但是index.php完全没有错误。谢谢

1 个答案:

答案 0 :(得分: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";
  }
}