2010-04-08 2 views
0

SO에 대한 나의 가장 긴 질문에 대한 사과. 내가 루트 (MySQL은 고 에너지 물리학 분석을위한 C + +에서 CERN 프레임 워크)에 MySQL 데이터베이스에 대한 프론트 엔드와 인터페이스하려고합니다. 우선,이 PHP 인터페이스를 wgetcurl과 함께 사용하면 좋을 텐데요. 왜냐하면 그것들을 더 잘 알고 있기 때문입니다. 다음 명령이 작동 :PHP에서 컨텐츠 가져 오기 : POST 및 쿼리 관련 문제

wget --post-data "hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases;" http://some.host.edu/log/log_query_matlab.php 

이 결과는 다음과 같습니다

database1 

database2 

좋은 그. 나는 다음 --post-data을두면 나는 결과를 얻을 :

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'admin'@'localhost' (using password: NO) in /log/log_query_matlab.php on line 6 
i'm dead! Access denied for user 'admin'@'localhost' (using password: NO) 
Warning: mysql_query() [function.mysql-query]: Access denied for user 'admin'@'localhost' (using password: NO) in /log/log_query_matlab.php on line 29 

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /log/log_query_matlab.php on line 29 

나는 PHP 스크립트에 대한 액세스 권한 (읽기 전용)을하지만, 오류 자체도 중요하지 않습니다. ROOT를 사용하여, 나는 socket.SendRaw(message, message.Length())로 불리는 함수를 사용하여 중요한 무엇 (소켓은 TSocket이다)이 데이터가 내 "메시지"경우 전환 후없이 나에게 wget와 같은 "오류"를 제공

"POST http://some.host.edu/log/log_query_matlab.php?hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases" 

이입니다 헛수고 일 수도 있지만 누군가가 --post-data 스위치와 동일한 내용을 포함하는 "메시지"를 형식화해야하는 방법을 알고 있습니다. 또는 한 줄에 POST 요청을 형식화하는 표준 방법이 있습니다 (필자는 multi-line stuff을 보았습니다. 맞습니까?) 미안하지만 나는 단서가 없습니다!

추신. mysql 쿼리는 show databases이지만 공간은 이탈리아어로 _spazio_으로 바뀌 었습니다. db와 php 인터페이스의 작성자는 그것을 필요로합니다 (그리고 심볼을위한 다양한 대체물). 그 문제를 해결하려고 시도하는 것은 끔찍했습니다!

+0

보인다. ROOT 프레임 워크를 사용하여 POST HTTP 요청을 보내는 방법 (또는이 프레임 워크를 사용하여 명령 줄 유틸리티를 실행하는 방법을 찾는 방법) "이라고 짧을 수 있습니다. –

+0

나는 그렇게 생각한다. 또한 "하나의 라이너에서 POST HTTP 요청을 보내는 방법"일 수도 있습니다. ROOT는 C++이기 때문에, 아마도 C++ 라이브러리가 SendRaw를 구현하는 데 사용됩니다. HTTP 요청을 제출하기위한 공통 C++ 형식이 있습니까? 사실, HTTP 요청에 대해 더 많이 알 필요가 있습니다! – physicsmichael

답변

0

올바른 "하나 라이너"(멀티이어야했다)이었다

POST http://some.host.edu/log/log_query_matlab.php HTTP/1.1 
Host: some.host.edu 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 73 

hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show databases 

각 라인의 마지막에 \r\n있다. 콘텐츠 길이 이후의 틈에는 두 세트가 있습니다. 질문 MySQL을하지 않거나 PHP 또는 헤더와 관련된처럼