简体   繁体   English

PHP 错误:未定义索引

[英]PHP error: Undefined Index

I'm newbie on Ajax and PHP.我是 Ajax 和 PHP 的新手。 Decided to create index.php (using ajax) and simpan.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";
}

I'm confused it has some errors:我很困惑它有一些错误:

Undefined index: foto in C:\\xampp\\htdocs\\lat_ajax204\\simpan.php on line 4未定义索引:第 4 行 C:\\xampp\\htdocs\\lat_ajax204\\simpan.php 中的 foto

Undefined index: foto in C:\\xampp\\htdocs\\lat_ajax204\\simpan.php on line 5未定义索引: foto in C:\\xampp\\htdocs\\lat_ajax204\\simpan.php 第 5 行

Undefined index: foto in C:\\xampp\\htdocs\\lat_ajax204\\simpan.php on line 10未定义索引:foto in C:\\xampp\\htdocs\\lat_ajax204\\simpan.php 第 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致命错误:未捕获的 PDOException:SQLSTATE[23000]:违反完整性约束:1048 列 'foto' 在 C:\\xampp\\htdocs\\lat_ajax204\\simpan.php:11 中不能为 null 堆栈跟踪:#0 C:\\xampp\\htdocs\\ lat_ajax204\\simpan.php(11): PDOStatement->execute(Array) #1 {main} 在第 11 行的 C:\\xampp\\htdocs\\lat_ajax204\\simpan.php 中抛出

I create a mysql column in mahasiswa table for foto, the type is blob.我在 mahasiswa 表中为 foto 创建了一个 mysql 列,类型是 blob。 Does it make the problem?它会造成问题吗? But index.php has no error at all.但是 index.php 完全没有错误。 Thank you谢谢

Use isset() to check if the form is submitted.使用 isset() 检查表单是否已提交。

http://php.net/manual/en/function.isset.php 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";
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM