PHP Notice: Undefined index and Form Fields error

Indra Wira Pramana

I'm trying to make a database of employee, but i'm stuck since Input Form is returning to an error, i'm using Bootstrap and validator plugin.

I already check all field (except input file of foto_pelamar and select form of pendidikan_pelamar) and I though about something not right around my code of fields for input file and select form

P.S. I left the submission script without checking if the field is empty or not, I'm just testing for inserting data to MySQL.

Here are my codes :

input.php

<!DOCTYPE html>
<html lang="en">
  <head><?php session_start();?>
    <title>Dashboard</title>

    <link href="/gyankapratama/css/bootstrap.css" rel="stylesheet">

    <link href="/gyankapratama/css/sb-admin.css" rel="stylesheet">
    <link rel="stylesheet" href="/gyankapratama/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" href="/gyankapratama/css/datepicker3.css">

    <script src="/gyankapratama/js/jquery.js"></script>
    <script src="/gyankapratama/js/moment.min.js"></script>
    <script src="/gyankapratama/js/bootstrap-datepicker.js"></script>
    <script src="/gyankapratama/js/bootstrap.js"></script>
    <script src="/gyankapratama/js/bootstrapValidator.js"></script>

    <?php $Today= date("d/m/Y");?>

    <script type="text/javascript">
    var Today="<?php echo $Today; ?>";
$(document).ready(function() {
$('#datepicker').datepicker({
    format: 'dd/mm/yyyy',
    endDate: Today
});

    $('#html5Form').bootstrapValidator({
        feedbackIcons: {
            valid: 'fa fa-check',
            invalid: 'fa fa-times',
            validating: 'fa fa-refresh'
        }
    });

});
</script>

    <link rel="icon" 
      type="image/png" 
      href="/gyankapratama/img/favicon.png">
  </head>

  <body>

    <div id="wrapper">

      <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">

        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="index.php">Administrator Dashboard</a>
        </div>


        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav side-nav">
            <li><a href="index.php"><i class="fa fa-dashboard"></i> Dashboard</a></li>
            <li class="active"><a href="input.php"><i class="fa fa-edit"></i> Input Pelamar</a></li>
            <li><a href="daftar.php"><i class="fa fa-table"></i> Daftar Pelamar</a></li>
            <li><a href="arsip.php"><i class="fa fa-briefcase"></i> Arsip Pelamar</a></li>

            <!-- Super Admin Role --> 
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-group"></i> Administrator <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="daftar_adm.php">Daftar Administrator</a></li>
                <li><a href="add_adm.php">Tambah Administrator</a></li>\
              </ul>
            </li>

          </ul>

          <ul class="nav navbar-nav navbar-right navbar-user">
            <li class="dropdown user-dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <?php echo $_SESSION['username']; ?> <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="profile.php"><i class="fa fa-user"></i> Profile</a></li>
                <li class="divider"></li>
                <li><a href="logout.php"><i class="fa fa-power-off"></i> Log Out</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </nav>

      <div id="page-wrapper">

        <div class="row">
          <div class="col-lg-12">
            <h1>Pelamar <small> Input data baru</small></h1>
            <ol class="breadcrumb">
              <li><i class="fa fa-home"></i> Dashboard</li>
              <li class="active">Input Pelamar</li>
            </ol>
          </div>
        </div>

        <div class="row">
        <div class="col-lg-12">
          <form id="html5Form" class="form-horizontal" action="input_script.php" method="post" enctype="multipart/form-data" data-bv-message="Masukkan tidak valid">


<div class="form-group">
<label class="col-lg-3 control-label">Nama Lengkap</label>
<div class="col-lg-5">
<input type="text" class="form-control" placeholder="Nama Lengkap"
data-bv-notempty="true"
data-bv-notempty-message="Nama tidak bisa dikosongkan"
pattern="[a-zA-Z]+"
data-bv-regexp-message="Nama hanya bisa menggunakan alfabet"
name="nama_pelamar" id="nama_pelamar" required/>
</div>
</div>

<div class="form-group">
<label class="col-lg-3 control-label">Jenis Kelamin</label>
<div class="col-lg-5">
<input type="radio" name="kelamin_pelamar" id="kelamin_pelamar" value="Laki-Laki" required/> Laki-Laki
<input type="radio" name="kelamin_pelamar" id="kelamin_pelamar" value="Perempuan" /> Perempuan
</div>
</div>

<div class="form-group">
        <label class="col-lg-3 control-label">Tempat, Tanggal Lahir</label>
        <div class="col-md-2">
            <input type="text" class="form-control" placeholder="Tempat Lahir"
data-bv-notempty-message="Nama Tempat Lahir tidak bisa dikosongkan"
pattern="[a-zA-Z]+"
data-bv-regexp-message="Nama Tempat Lahir hanya bisa menggunakan karakter alfabet"
name="tempat_pelamar" id="tempat_pelamar" required/>
        </div>
        <div class="col-md-3">
        <div class="input-group date" id="datepicker">
            <input type="text" class="form-control" data-date-format="dd/mm/yyyy" placeholder="Tanggal Lahir" name="lahir_pelamar" id="lahir_pelamar"
            data-bv-date-message="Tanggal lahir tidak valid"
            required/>
                <span class="input-group-addon">
                    <span class="fa fa-calendar"></span>
                </span>
            </div>

        </div>
    </div>

    <div class="form-group">
        <label class="col-lg-3 control-label">Berat, Tinggi Badan</label>
        <div class="col-md-2">
            <input type="text" class="form-control" placeholder="Kilogram"
data-bv-notempty-message="Berat Badan tidak bisa dikosongkan"
pattern="[0-9]+" data-bv-lessthan="true" data-bv-lessthan-value="150"
data-bv-stringlength="true" data-bv-stringlength-max="3"
data-bv-regexp-message="Berat badan hanya bisa menggunakan angka"
data-bv-lessthan-message="Berat badan tidak normal"
name="berat_pelamar" id="berat_pelamar" required/>
        </div>
        <div class="col-md-3">
            <input type="text" class="form-control" placeholder="Centimeter"
data-bv-notempty-message="Tinggi Badan tidak bisa dikosongkan"
pattern="[0-9]+" data-bv-lessthan="true" data-bv-lessthan-value="250"
data-bv-stringlength="true" data-bv-stringlength-max="3
data-bv-regexp-message="Tinggi badan hanya bisa menggunakan angka"
data-bv-lessthan-message="Tinggi badan tidak normal"
name="tinggi_pelamar" id="tinggi_pelamar" required/>
        </div>
    </div>

<div class="form-group">
<label class="col-lg-3 control-label">Alamat Lengkap</label>
<div class="col-lg-5">
<input type="text" class="form-control" placeholder="Alamat Lengkap"
data-bv-notempty-message="Alamat tidak bisa dikosongkan"
pattern="[a-zA-Z0-9]+"
data-bv-regexp-message="Alamat hanya bisa menggunakan karakter alfanumerik"
name="alamat_pelamar" id="alamat_pelamar" required/>
</div>
</div>

<div class="form-group">
        <label class="col-lg-3 control-label">Kecamatan, Kota</label>
        <div class="col-md-2">
            <input type="text" class="form-control" placeholder="Kecamatan"
data-bv-notempty-message="Kecamatan tidak bisa dikosongkan"
pattern="[a-zA-Z]+"
data-bv-regexp-message="Kecamatan hanya bisa menggunakan alfabet"
name="kec_pelamar" id="kec_pelamar" required/>
        </div>
        <div class="col-md-3">
            <input type="text" class="form-control" placeholder="Kota"
data-bv-notempty-message="Kota tidak bisa dikosongkan"
pattern="[a-zA-Z]+"
data-bv-regexp-message="Kota hanya bisa menggunakan alfabet"
name="kota_pelamar" id="kota_pelamar" required/>
        </div>
    </div>

<div class="form-group">
<label class="col-lg-3 control-label">Nomor Telepon</label>
<div class="col-lg-5">
<input type="text" class="form-control" placeholder="Nomor Telepon"
data-bv-notempty-message="Telepon tidak bisa dikosongkan"
pattern="[0-9]+"
data-bv-phone-message="Telepon hanya bisa menggunakan karakter alfanumerik"
name="telepon_pelamar" id="telepon_pelamar" required/>
</div>
</div>

<div class="form-group">
<label class="col-lg-3 control-label">Status</label>
<div class="col-lg-5">
<input type="radio" name="status_pelamar" id="status_pelamar" value="Menikah" required/> Menikah
<input type="radio" name="status_pelamar" id="status_pelamar" value="Belum Menikah" /> Belum Menikah
<input type="radio" name="status_pelamar" id="status_pelamar" value="Janda/Duda" /> Janda/Duda
</div>
</div>

<div class="form-group">
<label class="col-lg-3 control-label">Pendidikan Terakhir</label>
<div class="col-lg-2">
<select class="form-control" name="pendidikan_member" id="pendidikan_member" required>
<option value="" disabled selected>Pendidikan</option>
<option value="SD">SD</option>
<option value="SMP">SMP</option>
<option value="SMA/SMK">SMA/SMK</option>
<option value="D1">D1</option>
<option value="D2">D2</option>
<option value="D3">D3</option>
<option value="D4">D4</option>
<option value="S1">S1</option>
<option value="S2">S2</option>
<option value="S3">S3</option>
</select>
</div>
</div>

<div class="form-group">
<label class="col-lg-3 control-label">Tujuan Perusahaan</label>
<div class="col-lg-5">
<input type="text" class="form-control" placeholder="Perusahaan yang Dituju"
data-bv-notempty-message="Nama Perushaan tidak bisa dikosongkan"
pattern="[a-zA-Z0-9]+"
data-bv-regexp-message="Nama Perushaan hanya bisa menggunakan karakter alfanumerik"
name="perusahaan_pelamar" id="perusahaan_pelamar" required/>
</div>
</div>


<div class="form-group">
<label class="col-lg-3 control-label">Foto pelamar: <br/><small><i>"Max 1 MByte (png,jpg,gif)"</small><i></label> 
<div class="col-lg-5">
<input type="file" class="form-control" name="foto_pelamar" id="foto_pelamar" accept="image/*" required/>
</div>
</div>


<div class="form-group">
<label class="col-lg-9 col-lg-offset-3">
<!-- <input type="reset" class="btn btn-default"  value="Kosongkan"/> -->
<input type="submit" class="btn btn-default"  value="Tambah"/>
</div>


</div>
</form>

        </div


      </div>

    </div>


  </body>
</html>

And here is the script of submission :

input_script.php

<?php
include "connect.php";

$handle = fopen ($_FILES['foto_pelamar']['tmp_name'], "r");

$foto_pelamar = fread ($handle, filesize($_FILES['foto_pelamar']['tmp_name']));

   fclose ($handle);
   // Input image to database
   $foto_pelamar = mysql_real_escape_string($foto_pelamar);
   $type_foto = $_FILES['foto_pelamar']['type'];
   $nama_pelamar = $_POST['nama_pelamar'];
   $nama_pelamar = trim($nama_pelamar);
   $kelamin_pelamar = $_POST['kelamin_pelamar'];
   $kelamin_pelamar = trim($kelamin_pelamar);
   $tempat_pelamar = $_POST['tempat_pelamar'];
   $tempat_pelamar = trim($tempat_pelamar);
   $lahir_pelamar = $_POST['lahir_pelamar'];
   $lahir_pelamar = trim($lahir_pelamar);
   $berat_pelamar = $_POST['berat_pelamar'];
   $berat_pelamar = trim($berat_pelamar);
   $tinggi_pelamar = $_POST['tinggi_pelamar'];
   $tinggi_pelamar = trim($tinggi_pelamar);
   $alamat_pelamar = $_POST['alamat_pelamar'];
   $alamat_pelamar = trim($alamat_pelamar);
   $kec_pelamar = $_POST['kec_pelamar'];
   $kec_pelamar = trim($kec_pelamar);
   $kota_pelamar = $_POST['kota_pelamar'];
   $kota_pelamar = trim($kota_pelamar);
   $telepon_pelamar = $_POST['telepon_pelamar'];
   $telepon_pelamar = trim($telepon_pelamar);
   $status_pelamar = $_POST['status_pelamar'];
   $status_pelamar = trim($status_pelamar);
   $pendidikan_pelamar = isset($_POST["pendidikan_pelamar"]) ? $_POST['pendidikan_pelamar'] : '';
   $pendidikan_pelamar = trim($pendidikan_pelamar);
   $perusahaan_pelamar = $_POST['perusahaan_pelamar'];
   $perusahaan_pelamar = trim($perusahaan_pelamar);


   $sql = 'insert into pelamar (nama_pelamar,kelamin_pelamar,tempat_pelamar,lahir_pelamar,berat_pelamar,tinggi_pelamar,alamat_pelamar,kec_pelamar,kota_pelamar,telepon_pelamar,status_pelamar,pendidikan_pelamar,perusahaan_pelamar,foto_pelamar) VALUES ("' . $nama_pelamar . '","' . $kelamin_pelamar  . '","' . $tempat_pelamar  . '","' . $lahir_pelamar  . '","' . $berat_pelamar  . '","' . $tinggi_pelamar  . '","' . $alamat_pelamar . '","' . $kec_pelamar . '","' . $kota_pelamar . '","' . $telepon_pelamar . '","' . $status_pelamar . '","' . $pendidikan_pelamar . '","' . $perusahaan_pelamar . '","' . $foto_pelamar . '")';

  if ( !(mysql_query($sql)) ) {
      echo "<h2>Data gagal ditambahkan</h2>";
      //echo "<meta http-equiv='refresh' content='1; url=input.php'>";
   }

   else {
      echo "<h2>Data berhasil ditambahkan</h2>";
      //echo "<meta http-equiv='refresh' content='1; url=input.php'>";
   }
?>

Please help me solving this, maybe it's not the script, but the input form causing the problems. I've tried fixing the select form and file submit, but instead of working, the layout is broken and the bootstrap validation not working.

UPDATE 3 : Typo on input_script

  • I've removed two lines which is not supposed to be there.
  • Still the error maybe from the select form

ERROR showing Notice: Undefined index: pendidikan_pelamar in E:\xampp\htdocs\gyankapratama\administrator\input_script.php on line 34

Data gagal ditambahkan

Regards,

IndraWP

FuzzyTree

Change the name of your Pendidikan Terakhir select from pendidikan_member to pendidikan_pelamar, so it matches your PHP script ($_POST["pendidikan_pelamar"]).

From

<select class="form-control" name="pendidikan_member" id="pendidikan_member" required>

To

<select class="form-control" name="pendidikan_pelamar" id="pendidikan_pelamar" required>

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related