在PHP页面中,我有以下代码: if($_REQUEST['c']!="") // I get error on this line itself. Why? { $pidis=(int)($_REQUEST['c']); } 我一直遇到未定义的索引错误. 在谷歌搜索时,我设法理解,如果一个页面无需参数(在URL)访问(我们正在尝试访问),我们可以获得此错误/警告.我相信,如果在URL中未定义参数,则应仅返回空而不是提供错误/警告消息. 我知道可以通过添加 来抑制错误和警告 error_reporting(E_ALL ^ E_NOTICE); ,但我不想这样做. 此页面在我们公司的Web服务器上正常工作,但在我们的客户端网络服务器上不起作用. 为什么会发生这种情况? 如何解决这个问题? 解决方案 您正在遇到该错误,因为您正在尝试将$_REQUEST['c']与某物进行比较. 解决方案是在比较之前使用 isset().这将删
以下是关于 request 的编程技术问答
我目前正在使用具有巨大数据库的CRM系统. 如果用户想搜索客户,他可以使用Ajax搜索.每当他在搜索字段中更改某些内容时,在呼叫待处理时,旧的呼叫将被取消,并且将发送新的呼叫. 我的问题是,服务器端的PHP进程继续运行.因此,如果用户开始输入地址,则启动和取消了几个请求,并且服务器需要越来越多的时间来回答. 取消AJAX调用时,是否可以取消运行的PHP进程? 或者在服务器端可能存在可能的解决方案,以检测同一用户的搜索请求是否正在运行并在启动新的请求? 之前取消它? 预先感谢您的回答. 解决方案 您是否正在寻找ignore_user_abort()? http://www.php.net/manual/manual/en/function.ignore-user-abort.php 其他解决方案 您的服务器端PHP必须输出一些检测请求的东西.但是,由于您可能执行冗长的SQL查询,因此无法输出任何内容. 但您仍然可以将连接ID保存到会话中,并在检
这个理论问题来自对编程和服务器的经验不足的人,但是这里是. 如果我在服务器上存储了PHP文件,如果多人同时开始访问此脚本,会发生什么?多个请求堆叠还是可以并行处理?我应该寻找什么,以更好地了解服务器的工作方式? 我希望这是有道理的! 解决方案 Web服务器(例如,Apache)通常能够同时处理多个请求(默认为200或400的Apache) . 如果请求对应于仅阅读情况,则根本没有问题:几个进程可以同时读取相同的文件 - 如果该文件是PHP脚本,则几个进程可以在同一时间. 如果您的脚本正在查询数据库,则不应有太多问题:数据库是为了处理并发情况(即使读取比例比读取更好,如果它们要堆叠,如果它们必须堆叠,如果修改相同的数据). 如果您的脚本试图写入文件,则应将一些锁定的麦卡尼主义放在原地(使用 flock ,以避免这种情况;结果,每个过程都将等到文件写入之前没有其他书面写作. . 其他解决方案 这几乎是一个非问题,因为现代操作系统将愉快地让多个进程同
在Laravel 5中,有可能验证多个请求以在提交表单后插入相关模型吗? 我知道如何使用验证器验证多个模型,但我想在请求类中进行. Laravel 4: $validateUser = Validator::make(Input::all(), User::$rules); $validateRole = Validator::make(Input::all(), Role::$rules); if ($validateUser->fails() || $validateRole->fails()){ $validationMessages = array_merge_recursive( $validateUser->messages()->toArray(), $validateRole->messages()->toArray() ); } Laravel 5: 请求一个 class CreateUse
我正在处理一个控制器中的数据,并希望将其进一步传递到另一个控制器中以避免重复代码. 是否有一种方法可以在其他控制器的store -Method中设置请求对象?我已经追踪了请求继承,并来到了Symfony的请求对象,该对象具有request属性,实际上是A ParameterBag,该属性ParameterBag持有方法add以添加带有值的参数. 我已经尝试了以下操作,但是结果null结果: $myRequest = new Request(); $myRequest->request->add(['foo' => 'bar']); var_dump($myRequest->foo); 我在这个项目的Laravel 5.1上. 解决方案 您可以使用replace(): $request = new \Illuminate\Http\Request(); $request->replace(['foo' => 'bar']); dd($request-
如何使用guzzlehttp(版本5.0)进行发布请求. 我正在尝试执行以下操作: $client = new \GuzzleHttp\Client(); $client->post( 'http://www.example.com/user/create', array( 'email' => 'test@gmail.com', 'name' => 'Test user', 'password' => 'testpassword' ) ); 但是我遇到了错误: php致命错误:邮件中未接收的异常"无效" 解决方案 现在在6.0中对此方法进行了弃用.而不是body使用form_params 尝试这个 $client = new \GuzzleHttp\Client(); $client->post( 'http://www.example.com/user/creat
我有一个表: id name position status 1 A 1,2 1 2 B 1 1 3 C 1 4 D 2 1 其中:position列是文本字段; 我的要求在这里: SELECT `id` FROM `table` WHERE `status`=1 AND `position` > '' AND `position` = FIND_IN_SET( 1, `position` ) OR `position` = FIND_IN_SET( 2, `position` ) 此请求将返回:1,2,3,4.我需要这是错误的:1,2,4-> 条件:(position>>''). 问题在哪里以及如何更改我的请求? 谢谢. 解决方案 您不需要在检查字段列表中检查数字时检查位置是否为空. 您不需要检查p
首先,我想说我发现Symfony2是一个了不起的框架,所以我使用fosrestbundle等与它创建了一个静止的API等.但是我并不是要与API仅支持一个Symfony2应用程序,我需要其他多个其他Symfony2应用程序与API交互.我确实可以使用卷曲的使用,然后向API提出普通的HTTP请求,但是因为API始终与我想直接处理API请求的所有其他项目在同一服务器上卷曲).这会带来惊人的速度提升,也较少使用资源. 因此,为了实现这一目标,我首先考虑了仅需要从其目的地的Appkernel,就像: : require_once '/path/to/external/AppKernel.php'; 然后,我将创建一个AppKernel的实例,并在此处处理"子要求".但是,然后我立即遇到了错误,说某些捆绑包无法加载等.这是合乎逻辑的,因为我只需要AppKernel文件,而不是依赖性.因此,我包括了API项目(/app/autoload.php)的自动加载器,但这无法解决问题,我
我正在从事Symfony项目.我以不会重定向到其自己的页面的表格进行战斗.操作属性设置为""和方法设置为发布.在这种情况下,它应该调用同一页面,但我要在404页上结束. 这是我在操作文件中的页面的代码: public function executedEtail(sfwebrequest $请求) { if($request->isMethod(sfRequest::POST)) { if(!$this->getUser()->isAuthenticated()) $this->redirect('@user_login'); $formData = $request->getParameter($this->form->getName()); $this->form->bind($formData, $request->getFiles($this->form->getName()));
我在管理JS对我自己的服务器上制作的简单XMLHTTPRequest的答案时遇到了一些困难.我有一些令人不安的答案,这是我的代码: javaScript: function callPHP () { var xml = new XMLHttpRequest(); xml.open("POST", "http://localhost/ajaxTest", false); xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xml.send("format=json"); var resp = xml.responseText; console.log(resp); } 和PHP:
我正在寻找有关我的WebSocket问题的帮助.我已经构建了一个简单的HTML5 Websocket,以在我的AngularJS网站(通过简单JS连接)和PHP-Server之间连接.连接也有效,并且发送和收回数据也有效.原因,为什么我需要一个Websocket是:我在同一家服务器上有不同的休息服务(PHP),这也与AngularJS站点进行了通信.因此,休息服务更改了数据库中的数据.现在,当我从AngularJS网站启动操作(例如创建一个新用户)时,休息服务将在宽松的人中创建作业,并且将从任何其他服务(不相关)执行该作业,之后几秒钟,如果完成工作,该服务将为休息服务提供标志.该作业将设置为完成(在数据库中). 现在,此时,由于将作业设置为完成,我需要将请求从休息服务发送到PHP WebSocket,ANT Websocket应将消息发送给AngularJS site.我知道,我可以通过Angular-JS进行轮询,但这会造成太大的流量,Beacuse许多用户会同时使用该系统.
我有此代码. $message = ""; if($_REQUEST['msg'] == "new"){ $message = "New User has been added successfully"; }else if($_REQUEST['msg'] == 'edit'){ $message = "User has been saved successfully"; }else if($_REQUEST['msg'] == 'update'){ $message = "User(s) has been Updated successfully"; } 可以在这里告诉我什么是 ['msg'] ,请说明$ _request的功能? 解决方案 $_REQUEST 数组(来自PHP文档): 默认情况下包含$ _get的内容的关联数组, $ _ post和$ _cookie. 喜欢$_GET,$_POST,$_COOKIE和$_SES
我想知道在PHP中使用HTTP请求的最佳方法是什么?我有很多数据要获取,我宁愿一次执行多个请求来检索所有数据. 有人知道我该怎么做吗?最好在匿名/回调功能Mannor中... 谢谢, 汤姆. 解决方案 您可以使用 curl_multi ,它在内部发射了多个.单个卷曲手柄下的单独请求. ,但否则php本身并非以任何方式/形状/形式"多线程",并且不允许并行运行,除非通过GROSS HACKS(多个并行脚本,一个脚本通过exec()触发多个背景任务,等等...). 其他解决方案 您可以尝试 curl_multi()或使用较低的函数 socket_select() 其他解决方案 您可以使用httprequestpool /人/de/httprequestpool.construct.php $multiRequests = array( new HttpRequest('http://www.google.com', HttpReque
许多网页加载其所有内容以更改很少的信息. 现在,我想知道为什么开发人员不应该仅将AJAX用于主页请求? 在我自己的网页上,我想使用Ajax在我的网页上开发主要请求,但我不知道这种方法的任何特定缺点. 有人知道为什么有人不应该这么多使用Ajax? 解决方案 搜索引擎,爬行者/蜘蛛,没有JavaScript的浏览器,屏幕阅读器和其他内容的消费者对此并不满意. ,如果您已经支持完整内容的标准服务器端导航,则可以在网站上提供大量的Ajax行为.看看渐进增强(so) 和其他解决方案 整个前提确实是,使用Ajax,您无需重新加载整个页面即可更新该网页的一小部分.这样可以节省带宽,并且通常比重新加载整个页面要快得多. 但是,如果您使用Ajax来加载 page 页面,这实际上是适得其反的.您必须编写自定义例程来处理AJAX数据的回调. ,它的额外工作几乎没有提高. 在何处使用ajax的一般规则:如果您的更新> 50%的页面,只需重新加载,否则使用ajax.
在大小〜9 000符号(将它们分为〜10个变量)上遇到此错误. . Request-URI Too Large The requested URL's length exceeds the capacity limit for this server. 这个问题的解决方法是什么? 解决方案 如果您想在没有更改服务器配置的情况下通过GET传递所有这些信息,则没有解决方法. 其他解决方案: 使用表格(或隐藏表格并在链接上添加onclick事件的帖子) 使用会话.当服务器生成链接时,将其存储在$ _Session中,使用唯一的ID(或RED,可以是完整URI的MD5),并通过Get传递. 使用数据库或文件存储(与会话的相同过程) 其他解决方案 这对我有用(需要FormData支持): //Load form var formData = new FormData(); formData.append("param
我正在尝试通过PHP卷曲登录站点,而我只会得到"不好的请求"响应. 我播放了主机文件,并将其设置为服务器,以检查我的浏览器发送的请求标题,并将其与Curl发送的请求标题进行比较. 除了: 以外,一切都相等 浏览器: Content-Type: application/x-www-form-urlencoded Content-Length: 51 php卷曲: Content-Length: 51, 359 Content-Type: application/x-www-form-urlencoded; boundary=----------------------------5a377b7e6ba7 我已经使用此命令设置了该值,但是它仍然发送错误的标题: curl_setopt($this->hCurl, CURLOPT_HTTPHEADER, array( 'Expect:', 'Content-Type: applicati
如果有人从some-client.com发送xhr请求到some-rest.com,我想获得php的请求的来源(域名,而不是客户端IP ). 可能的解决方案: 也许我可以使用$_SERVER['HTTP_ORIGIN'],但我不知道它是否是标准. 我看到了另一个标头,例如$_SERVER['HTTP_HOST']或$_SERVER['SERVER_NAME'],但是有些情况下返回真实的hostname,而不是真正的domain. . 和$_SERVER['REMOTE_ADDR']给予客户端IP. 如何获得请求来源的正确方法,例如带有PHP的域名? 谢谢! 解决方案 根据文章 必须设置所有请求Origin标题在CORS(跨孔资源共享)机制下正确工作. " Origin "请求标头是 MDN的描述: Origin请求标头指示提取起点的位置.它 不包括任何路径信息,而只包括服务器名称.这是 带有CORS请求以及邮政请求发送.这是相似的 对于推荐
在Symfony 2中,我的控制器中有以下代码: // prepare to render the seller info panel $response = array( 'data' => $data, ); // render the seller info panel return $this->redirect($this->generateUrl('route', $response)); 路线在哪里: route: pattern: /listing/complete/{data} defaults: { _controller: FooBundle:Foo:action } requirements: _method: POST 这是不起作用的,因为重定向正在提出GET请求.我也尝试过这种模式,但它与路线不匹配: route: pattern: /listing/complete