目录
回复讨论(解决方案)
首页 后端开发 php教程 WinInet模拟HTTP的POST请求出错

WinInet模拟HTTP的POST请求出错

Jun 23, 2016 pm 01:55 PM
http post 出错 模拟 请求

在VS2012里面设置断点跟踪执行,发现请求该php文件获取的不是正确的返回字串,而是如下出错信息:

Invalid query: 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Whole query: 
select id,name from index_activities where top=0

这段信息是我在PHP的

$result = mysql_query($query);
登录后复制

语句行后面,“if”请求不成功才输出的,显然是mysql请求没成功,且可以确定,调用该PHP文件是成功的。

但是当我在网页中用同样的参数调用同一个PHP文件时(GET方式),返回值则是正确的。

我php文件中获取传参是用的
$top = $_REQUEST['top'];
登录后复制

所以POST和GET参数应该都可以同样获取的。

不知道可能是哪里出了问题?用WinInet传参会造成这个请求字串有什么异常吗?


回复讨论(解决方案)

数据库连接正确吗?

数据库连接正确吗?


连接正确啊,不正确就返回unable to connect to mysql了,就不会执行到下面的请求,也不会出现MySQL的请求出错信息了。

另有一个同样的模拟HTTP请求,也有参数,返回就是正确的:

void CDllValidateDlg::ValidateAPerson(char* Name, char* Code){	CString post_data;	post_data.Format("userid='%s'&name='%s'",Code,Name); //请求的附加参数	CString result; //返回的结果	CString post_page = "test_id_validater/validateid.php"; //请求的php	PostHttpPage(result,post_page,post_data);	AfxMessageBox(result);}
登录后复制

而我现在调试不明白的这个HTTP请求,到底哪里不一样,我把原本由变量决定的参数都写死了,仍然返回说mysql请求不正确:
void CDllValidateDlg::getActs(HTREEITEM root){	CString post_data="top=0";//	char top[10];//	itoa(ActivitiesTree.GetItemData(root),top,10);//	post_data.Format("top=%s",top);	CString result;	CString post_page = "test_id_validater/GetActivities.php";//	AfxMessageBox("post_page:"+post_page+", "+"post_data:"+post_data);	PostHttpPage(result, post_page, post_data);	AfxMessageBox(result);    ……    ……
登录后复制

感觉好像是PHP端的问题,像下面这么写就返回正确了:

<?phprequire "use_daoru.php";$top = $_REQUEST['top'];$query = "select id,name from index_activities where top=0";$result = mysql_query($query);//if(!$result){//$message = 'Invalid query: '.mysql_error()."\n";//$message.= 'Whole query: '.$query;//die($message);//}$num = mysql_num_rows($result);for($i=0;$i<$num;$i++){	$row = mysql_fetch_row($result);	echo($row[0].":".$row[1].",");}?>
登录后复制

原来我写的代码是:
<?phprequire "use_daoru.php";$top = $_REQUEST['top'];$query = "select id,name from index_activities where top=$top";$result = mysql_query($query);//if(!$result){//$message = 'Invalid query: '.mysql_error()."\n";//$message.= 'Whole query: '.$query;//die($message);//}$num = mysql_num_rows($result);for($i=0;$i<$num;$i++){	$row = mysql_fetch_row($result);	echo($row[0].":".$row[1].",");}?>
登录后复制

Invalid query: 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Whole query: 
select id,name from index_activities where top=0
这个信息分明是数据库报的错!

如果 $query = "select id,name from index_activities where top=0"; 可以
而 $query = "select id,name from index_activities where top=$top"; 不可以
这就表示 $top 无值或不是数字

$top = $_REQUEST['top']; 改为  $top = intval($_REQUEST['top']); 试试

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1673
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
http状态码520是什么意思 http状态码520是什么意思 Oct 13, 2023 pm 03:11 PM

http状态码520是指服务器在处理请求时遇到了一个未知的错误,无法提供更具体的信息。用于表示服务器在处理请求时发生了一个未知的错误,可能是由于服务器配置问题、网络问题或其他未知原因导致的。通常是由服务器配置问题、网络问题、服务器过载或代码错误等原因导致的。如果遇到状态码520错误,最好联系网站管理员或技术支持团队以获取更多的信息和帮助。

理解网页重定向的常见应用场景并了解HTTP301状态码 理解网页重定向的常见应用场景并了解HTTP301状态码 Feb 18, 2024 pm 08:41 PM

掌握HTTP301状态码的含义:网页重定向的常见应用场景随着互联网的迅猛发展,人们对网页交互的要求也越来越高。在网页设计领域,网页重定向是一种常见且重要的技术,通过HTTP301状态码来实现。本文将探讨HTTP301状态码的含义以及在网页重定向中的常见应用场景。HTTP301状态码是指永久重定向(PermanentRedirect)。当服务器接收到客户端发

HTTP 200 OK:了解成功响应的含义与用途 HTTP 200 OK:了解成功响应的含义与用途 Dec 26, 2023 am 10:25 AM

HTTP状态码200:探索成功响应的含义与用途HTTP状态码是用来表示服务器响应状态的数字代码。其中,状态码200表示请求已成功被服务器处理。本文将探索HTTP状态码200的具体含义与用途。首先,让我们了解一下HTTP状态码的分类。状态码被分为五个类别,分别是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的响应。而200是2xx中最常见的状态码

http请求415错误解决方法 http请求415错误解决方法 Nov 14, 2023 am 10:49 AM

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。

如何使用C++实现HTTP流传输? 如何使用C++实现HTTP流传输? May 31, 2024 am 11:06 AM

如何在C++中实现HTTP流传输?使用Boost.Asio和asiohttps客户端库创建SSL流套接字。连接到服务器并发送HTTP请求。接收HTTP响应头并打印它们。接收HTTP响应正文并打印它。

PHP跳转页面并携带POST数据的实现方法 PHP跳转页面并携带POST数据的实现方法 Mar 22, 2024 am 10:42 AM

PHP是一种广泛应用于网站开发的编程语言,而页面跳转并携带POST数据是在网站开发中常见的需求。本文将介绍如何实现PHP页面跳转并携带POST数据,包括具体的代码示例。在PHP中,页面跳转一般通过header函数实现。如果需要在跳转过程中携带POST数据,可以通过以下步骤完成:首先,创建一个包含表单的页面,用户在该页面填写信息并点击提交按钮。在表单的acti

AI模拟器拿下物理仿真新SOTA! AI模拟器拿下物理仿真新SOTA! Feb 19, 2024 pm 06:50 PM

机器学习让计算机图形学(CG)仿真更真实了!方法名为神经流向图(NeuralFlowMaps,NFM),四个涡旋的烟雾也能精确模拟的那种:更为复杂的也能轻松实现:要知道,在这个AI应用满天飞的时代,CG物理仿真仍然是传统数值算法的天下。△NFM模拟“蛙跳”尽管神经网络应用在CG能创造目眩神迷的视觉效果,它却无法严格、鲁棒地描述物理性质。△NFM模拟“墨滴”也正是因此,基于神经网络的物理仿真至今还处于概念验证(proofofconcept)的阶段,所生成的效果也远非SOTA。为了解决这个复杂问题,

PHP代码示例:如何用POST方式传参并实现页面跳转 PHP代码示例:如何用POST方式传参并实现页面跳转 Mar 07, 2024 pm 01:45 PM

标题:PHP代码示例:使用POST方式传参并实现页面跳转的方法在Web开发中,经常会涉及到如何通过POST方式传递参数,并在服务器端进行处理后实现页面跳转的需求。PHP作为一种流行的服务器端脚本语言,提供了丰富的函数和语法来实现这一目的。下面将通过一个实际的示例来介绍如何使用PHP来实现这一功能。首先,我们需要准备两个页面,一个用来接收POST请求并处理参数

See all articles