2016-04-24 29 views
-1

私はAjaxとPHPの初心者です。 PHPエラー:未定義のインデックス

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の列を作成します。 は、それはいくつかのエラーを持って、私は混乱している

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

をindex.phpを(AJAXを使用して)を作成し、simpan.phpことにしましたタイプはBLOBです。それは問題を作りますか?しかし、index.phpには全くエラーはありません。ありがとうございます

+3

[PHP: "注意:未定義の変数" と "注意:未定義のインデックス"]の可能な重複(http://stackoverflow.com/questions/4261133/php-notice-undefined -variable-and-notice-undefined-index) –

+0

これはファイルをアップロードするときですか?フォームにファイルが含まれていなくてもフォームが送信されることはありますか? – Technoh

+0

@Technohフォームがファイルなしで提出されたとしても、 'error'が' 4'に設定された '$ _FILES'配列が埋められます。 –

答えて

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

こんにちはSatria、上のコードスニペットは、未定義のインデックスエラーに関するあなたの質問に直接答えです。データベースに挿入されていないデータが索引エラーの問題の範囲外にある理由 – swordsecurity

+0

新しい質問をしてHTML/PHPコードを投稿して、誰かがデータベースの問題を手伝うことができるかどうかを確認することができます。 – swordsecurity

関連する問題