Извиняюсь за мой самый длинный вопрос о SO когда-либо. Я пытаюсь взаимодействовать с php-интерфейсом для базы данных mysql в ROOT (среда CERN в C ++ для анализа физики высоких энергий). Для начала я попытался заставить этот php-интерфейс хорошо играть сначала с wget
и curl
, потому что я более знаком с ними. Следующая команда работает:
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, если мое «сообщение»
"POST http://some.host.edu/log/log_query_matlab.php?hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases"
Это может быть напрасно, но кто-то знает, как мне отформатировать «сообщение», включающее что-то, что эквивалентно переключателю --post-data
. Или есть ли стандартный способ форматирования POST-запросов в одну строку (я видел многострочный материал . Это верно?) Извините, я не знаю!
PS. Запрос mysql show databases
, но пробел был заменен на _spazio_
, итальянский для пробела. Автор интерфейса db и php требует этого (и различные замены для символов), но кто-нибудь видел это раньше? Попытка устранить это было ужасно!