الحصول على المحتوى من PHP: مشكلة مع المنشور والاستعلام

StackOverflow https://stackoverflow.com/questions/2597768

سؤال

أعتذر عن أطول سؤالي على الإطلاق. أحاول التفاعل مع واجهة PHP لقاعدة بيانات MySQL في الجذر (إطار 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 (اقرأ فقط) ، لكن الخطأ نفسه ليس مهمًا للغاية. ما يهم ذلك باستخدام الجذر ، أستخدم وظيفة تسمى AS 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 تحول. أو ، هل هناك طريقة قياسية لتنسيق الطلبات النشر في سطر واحد (رأيت أشياء متعددة الخطوط. هل هذا صحيح؟) آسف أنا جاهل!

ملاحظة. استعلام MySQL show databases ولكن تم استبدال المساحة بـ _spazio_, ، الإيطالية للفضاء. يتطلب مؤلف واجهة DB و PHP (والبدائل المختلفة للرموز) ، ولكن هل رأى أي شخص هذا من قبل؟ في محاولة لاستكشاف الأخطاء وإصلاحها كان فظيعا!

هل كانت مفيدة؟

المحلول

كان "بطانة واحدة" الصحيحة (كان يجب أن تكون متعددة):

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. الفجوة بعد طول المحتوى لها مجموعتان من هؤلاء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top