Komang Putra Ответов: 2

Отправка данных с помощью CRUL на PHP


Мне нужна помощь, чтобы решить эту проблему.. я уже отправляю данные с curl, но он не появляется в базе данных
вот мой код ...

curl.php
  1  <?php
  2  error_reporting(0);
  3  session_start();
  4  $url    = "http://localhost/db_eis/izin_full_insert.php";
  5  
  6  $post = [
  7  	$no_pengajuan_full_day = $_POST['no_pengajuan_full_day'];
  8  	$nik_full_day = $_POST['nik_full_day'];
  9  	$jabatan_full_day  = $_POST['jabatan_full_day'];
 10  	$jenis_full_day  = $_POST['jenis_full_day'];
 11  
 12  	$start_full_day = $_POST['start_full_day'];
 13  	$karyawan_pengganti = $_POST['karyawan_pengganti'];
 14  	$ket_tambahan = $_POST['ket_tambahan'];
 15  	$status_full_day = $_POST['status_full_day'];
 16  	$status_full_day_2 = $_POST['status_full_day_2']; 
 17  
 18  		$image = base64_decode($_POST['upload_full_day']);
 19   
 20      	$nama = $no_pengajuan_full_day.".jpeg";
 21   
 22      	$targer_dir = "C:/xampp/htdocs/eis/uploads/izin/full_day/".$nama;
 23      	if (file_put_contents($targer_dir, $image)) {
 24          echo json_encode(array('response'=>'Success'));
 25      	}else{
 26          echo json_encode(array("response" => "Image not uploaded"));
 27      	}
 28      $nama = $_POST['upload_full_day']; 
 29  ];
 30  
 31  $ch = curl_init();
 32  curl_setopt($ch, CURLOPT_URL, $url);
 33  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 34  curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
 35  
 36  $output = curl_exec($ch);
 37  curl_close($ch);
 38  
 39  $result = json_decode($output); 
 40  ?>

izin_full_insert.php
  1  <?php
  2  include 'connect2.php';
  3  $tanggal = date('Y-m-d');
  4  
  5  $sql = "INSERT INTO tbl_izin_full_day
  6  (no_pengajuan_full_day,
  7  	nik_full_day,
  8  	jabatan_full_day,
  9  	jenis_full_day,
 10  	start_full_day,
 11  	karyawan_pengganti,
 12  	ket_tambahan,
 13  	status_full_day,
 14  	status_full_day_2,
 15  	upload_full_day) 
 16  
 17  	VALUES (
 18  	'$no_pengajuan_full_day',
 19  	'$nik_full_day',
 20  	'$jabatan_full_day',
 21  	'$jenis_full_day',
 22  	'$start_full_day',
 23  	'$karyawan_pengganti',
 24  	'$ket_tambahan',
 25  	'$status_full_day',
 26  	'$status_full_day_2',
 27  	'$nama'
 28  	)";
 29  $result = mysqli_query($conn, $sql);
 30  ?>


Что я уже пробовал:

он сохраняет ошибку..
в сообщении об ошибке говорится:

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное ';', ожидание ']' в C:\xampp\htdocs\eis_api\curl.php на линии 7

Richard Deeming

У тебя гораздо большая проблема. Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]

2 Ответов

Рейтинг:
19

Richard Deeming

Ваш синтаксис создания массива совсем не похож на документацию:
PHP: массивы - руководство пользователя[^]

Наиболее близким кажется новый синтаксис из версии 5.4.0:
PHP: новые возможности - руководство пользователя[^]

Это все равно должно быть:

$post = [
    "no_pengajuan_full_day" => $_POST['no_pengajuan_full_day'],
    "nik_full_day" => $_POST['nik_full_day'],
    ...
];

NB: Не игнорируйте это SQL-инъекция[^] уязвимость в вашем izin_full_insert.php код. Это критическая уязвимость, которая тривиальна для использования и может привести к полному уничтожению вашего сайта.

PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]


Рейтинг:
11

Richard MacCutchan

Ваш синтаксис неверен для объявления $post Правильный способ указания массивов подробно описан в разделе PHP: массивы - руководство пользователя[^].

Также внимательно обратите внимание на комментарий Ричарда Диминга.