CI 묻고 답하기

제목 안녕하세요 전 질문글 결과 값이 출력에 관한 것.
글쓴이 매롱~ 작성시각 2015/08/08 11:31:18
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 21461   RSS
 
web결과
Caption










 
라즈베리파이(데이터전송)DB출력결과
Caption











첫번째 이미지는 아파치서버가 있는 pc에서 web으로 확인한 출력 결과고

두번 째 이미지는 send측에서 get방식으로 array를 보내고   잘 보내졌는지 확인한 결과 입니다.

일단 소스는 전에 질문 받은 것처럼 해봤는데 web에서는 왜 값이 안뜨는 지 궁금합니다.
 
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class sensorYn extends CI_Controller {


	public function index()
	{
		//print_r($this->input->get());
		//$data['segment'] = $this->uri->segment(3);
		$data1=$this->input->get();
		
		print_r($data1);
		//$user = $this->input->get('pi');
		//print_r($user);
		//print_r($data);
		
	
	}
}
 다음글 ci 2.2.3 버그인가요? (3)
 이전글 http get방식으로 URL을 통해 controlle... (3)

댓글

변종원(웅파) / 2015/08/08 17:30:08 / 추천 0
자바에서는 api로 작업한 것을 읽어 들일 때 어떻게 하시는지요?

이건 ci의 사용법상의 문제가 아니라 언어상의 문제입니다.

api에서는 보통 json이나 xml로 출력을 합니다. 
php에서는 curl 이라는 라이브러리를 이용해서 결과를 가져오기도 하고
file_get_contents 라는 php함수를 이용해서 가져오기도 합니다. (http://php.net/manual/kr/function.file-get-contents.php)

$a = file_get_contents('http://a.com/api/test');
//만약 json으로 리턴을 한다면
var_dump(json_decode($a));
변종원(웅파) / 2015/08/08 17:34:28 / 추천 0
api가 아니라 ci의 컨트롤러에 값을 전달하고자 한다면 

a.com/controller/index/123 형태로 호출을 하고 컨트롤러 내부에서는 
$a = $this->uri->segment(3); 하면 $a 변수에 123 이란 값이 담깁니다.
이 방식은 배열을 직접 전달하지 못합니다. 이건 어떤 언어든지 마찬가지 입니다.
배열을 전달하고 싶으면 json으로 변환하여 작업하거나 아래 방식처럼 post로 전달하면 됩니다.

a.com/controller/index에 post로 전송을 한다면
$a = $this->input->post(null, true);
var_dump($a);
한대승(불의회상) / 2015/08/10 09:09:35 / 추천 0
PC에서 웹 호출 할 때 어떤식으로 호출 하셨나요?
매롱~ / 2015/08/12 08:54:02 / 추천 0
아 죄송합니다.. 갑짜기 로그인이 안되길래 덧글을 이제야 달게 됬네요.

일단 자답 쓰겠습니다.

일단 requests.get[send]측에서는 데이터가 담긴 url을 던져주는건 apache log 로 확인해서 바로 MYSQL로 던져주니 데이터가 들어왔습니다.

다들 관심가져주셔서 감사합니다.