如何在PHP中覆盖register_argc_argv?
我正在使用共享主机(FasthostingDirect),由于某些原因,他们默认情况下关闭了此标志.这意味着我无法访问php命令行参数...除非我在-n(= --no-php-info)标志php.exe>. 之后使用 在我的PHP文件中尝试了ini_set('register_argc_argv', 1),但没有效果.我猜这是由于托管提供商的夹紧性质所致,但是它们并不停止-n选项 - 不确定使用此功能的其他含义.有人有更好的建议吗? 解决方案 ini_set('register_argc_argv', 1)不起作用,因为到执行代码时,它们已经被注册(或未). 看来您可以直接运行php,因此请复制自己的php.ini文件并传递: php -c yourphp.ini 其他解决方案 无需创建一个全新的INI文件,只需使用-d flag php -d register_argc_argv=1 myscript.php
0 2024-03-03
编程技术问答社区
通过URL传递会话ID
我试图让我的脚本使用URL会话ID代替cookie. 以下页面没有将URL中的变量作为会话ID拾取. 我一定缺少一些东西. 第一页 http://www.website.com/start.php ini_set("session.use_cookies",0); ini_set("session.use_trans_sid",1); session_start(); $session_id = session_id(); header("location: target.php?session_id=". $session_id ); 以下页面 - = rj3ids98dhpa0mcf3jc89mq1t0 ini_set("session.use_cookies",0); ini_set("session.use_trans_sid",1); print_r($_SESSION); print(session_id()) 结果是不同的会话ID,会话为空白.
10 2023-11-09
编程技术问答社区
php会话和路径设置
我想将我的源文件夹分为两个:包含您在地址栏中输入的代码以及组成页面部分(图块)和其他代码(类等)的文件夹.因此,在每个PHP文件的开始时,我添加了: config迄今为止仅包含它,但是如果我需要其他目录(日志等) ,则允许我扩展 和会话在其他方面,在构造函数中,调用session_start.它还需要其他地方包括的其他类 - 需要在会话包含之前列出的配置.但是我得到错误
4 2023-08-30
编程技术问答社区
不能使用ini_set,因为会话是活动的。
我该如何修复? 警告:ini_set()[function.ini-set]:会话处于活动状态.您目前无法更改会话模块的INI设置在C:\ Xampp \ htdocs ** ** ** 我已经尝试使用session_destroy();,但我仍然会出现错误. 谢谢. 解决方案 使用session_start(); ini_set或@ ini_set之前的标志:@ini_set 其他解决方案 如果您将服务器配置为自动启动会话,则可以尝试: php_flag session.auto_start 0 在您的.htaccess文件中
14 2023-08-30
编程技术问答社区
PHP多域名会话;ini_set不工作?
我正在尝试设置它,因此,如果您登录我的网站,则会将会议携带到我网站的所有子域.例如,如果您转到domain.com并登录,然后转到sub.domain.com,您已经在sub.domain.com上登录. 对我的理解,您需要使用ini_set('session.cookie_domain','.domain.com'),然后session_start(),然后设置您的会话变量,但这不起作用. . 我正在做什么的示例: domain.com的代码: sub.domain.com的代码: 但是未设置$ _session ['variabl
10 2023-08-30
编程技术问答社区
如何检查在全局的 PHP.INI 或我的 PHP 脚本中是否启用了 ini_set()?
我有一个在安装上失败的应用程序.供应商说我可能有ini_set()禁用.我该如何检查? 解决方案 我对此进行了一些研究,事实证明,有时Ini_set不会返回false,而是一个空字符串.这在Gabriel1836指出的URL中提到.检查它是否有效的最佳方法是首先检查php.ini中的disable_functions标志,以查看它是否被禁用,然后(如果未禁用),请与之更改值,然后在此之后echo phpinfo().如果该值在本地列下更改,则您知道Ini_set Works. 其他解决方案 您可能想查看php.ini中的可更改指令: http://us3.php.net/manual/manual/en/eni.php#ini.list.list 要验证INI_SET函数是否有效,您可以检查返回值以确保其有效: 代码看起来像这样:
18 2023-05-31
编程技术问答社区
php.ini 与 ini_set()哪个更好?
我有一个简单的问题,应该在PHP文件上编写设置或php.ini文件或使用ini_set().表演更好? 非常感谢. 解决方案 取决于您的目标. php.ini默认情况下,将针对所有PHP应用程序应用设置,ini_set将为当前PHP应用程序即时更改PHP设置. 如果您有绩效问题,php.ini应该更快,因为您跳过ini_set的功能. 其他解决方案 在典型的2018年硬件运行ini_set('date.timezone', $timezone) 1,000,000次大约500ms. 对于php 7.1,ini_set()绝对不比加载另一个.ini文件慢.实际上,在带有require()的第二个文件中运行ini_set()比加载.ini文件要快. 即使是一个空的.ini文件也有一些开销.我怀疑内部.ini文件无论如何都会做类似于ini_set的事情. # Baseline (no .ini, empty script) $ time for (
16 2023-05-29
编程技术问答社区
即使有error_reporting(0),PHP也会回传错误,原因是什么?
无论您告诉什么禁用什么,PHP会迫使错误显示出什么原因? 我尝试了 error_reporting(0); ini_set('display_errors', 0); 没有运气. 解决方案 请注意手册中的注意>: 在编译时间中评估了大多数e_strict错误,因此在文件中未报告此类错误,其中error_reporting被增强以包括e_strict错误(反之亦然). 如果您的基础系统被配置为报告E_strict错误,则可能在考虑您的代码之前输出这些错误.别忘了,error_reporting/ini_set是运行时评估,在"前"阶段执行的任何内容都不会看到它们的效果. 根据您的评论,您的错误是... 解析错误:语法错误,出乎意料的t_variable,期望',''或;''在/usr/home/redacted/public_html/dev.php上,第11行 然后适用相同的一般概念.您的代码永远不会运行,因为它在句法上无效(您忘记
18 2023-05-28
编程技术问答社区
在OpenCart中不能禁用错误报告(PHP)。
我似乎无法禁用PHP中的错误报告 - 我尝试了所有内容,但仍显示"注意"错误. 我的php.ini有 display_errors = Off; error_reporting = 0; 我的.htaccess具有 php_value error_reporting 0 我的脚本有 ini_set('display_errors', 'Off'); ini_set('log_errors', 1); ini_set('error_reporting', 0); ini_set('display_startup_errors', 'Off'); php_info(); echo $my_undefined_var; php_info()输出确认display_errors和error_reporting确实关闭了,但我仍然收到通知, 注意:未定义的变量:my_undefined_var in/my/site/path/index.php?bla
30 2023-05-09
编程技术问答社区
Php CLI脚本无视memory_limit,在远远低于限制的情况下崩溃
由于某种原因,我的一个PHP脚本忽略了php.ini内存限制或ini_set. 当我执行print_r(ini_get_all)时,它显示了设置为100m的全局内存限制(以及我的本地),当我的脚本死于致命错误:不记忆(分配24714304)(尝试分配571个字节) 诊断此诊断的任何技巧?该服务器具有8GIG的内存,并且从未遇到过运行此脚本的问题. 关于调试此问题的任何提示 谢谢! 解决方案 这是最常见的原因是,通常CLI PHP二进制文件使用的php.ini文件与您预期的不同.这可能是由在这种情况下,操作系统施加的进程有很大的内存限制,在这种情况下,您必须弄清楚强制性来自何处. 我建议您看看线程,因为那张海报经历了与您的情况非常相似的事情. 其他解决方案 我的过程的虚拟内存很难受到限制(数量要低得多). 来自bash壳,我做到了: ulimit -v(memory_in_bytes,无括号) 这解决了我的问题.上帝我爱sta
26 2023-03-24
编程技术问答社区
PHP ini_set session gc_maxlifetime不工作
我正在尝试在 PHP 中设置 gc_maxlifetime. 这是“header.php"中的代码,我将其包含在每一页中. ini_set('session.cookie_lifetime', 1); ini_set('session.gc_maxlifetime', 1); session_start(); 我用 测试它 echo ini_get('session.gc_maxlifetime'); 它确实设置为 1. 但它仍然保持登录状态,即会话没有没有被删除. 可能的原因是什么? 解决方案 垃圾回收为什么不运行? GC 并不总是在每个请求上运行,默认的 PHP 设置是它有 1% 的机会运行 GC.session.gc_probability (默认 1)/session.gc_divisor (默认 100) = 0.01 (1% 几率) 相关手动输入:http://php.net/manual/en/session.config
482 2022-08-15
编程技术问答社区
如何改变PHP在错误日志文件中写入错误的方式?
我已经在我的网站上工作了一年多,我非常渴望最终把它放在那里供人们使用.然而它已经变得相当大了——我几乎想说我无法控制——除此之外,我真的只是一个自学成才的业余程序员. 所以我想确定,php 产生的任何错误都记录在一个文件中,这样我就可以访问这个文件并跟踪错误. 目前我的设置如下: 到目前为止工作得很好,我的 error.log 文件将包含以下内容: [2013 年 5 月 14 日 00:16:26] PHP 通知:未定义变量:第 14 行/home/www/dir/index.php 中不存在变量[2013 年 5 月 14 日 00:16:28] PHP 通知: 未定义变量:/home/www/dir/inde
282 2022-08-15
编程技术问答社区
ini_set('mbstring.internal_encoding','UTF-8')
ini_set('mbstring.internal_encoding','UTF-8') 这在 php 文件的开头表示什么以及它用于什么? 我知道有一个 php 手册,但它没有用普通人的语言解释它. 解决方案 将默认的内部字符编码定义为UTF-8字符集类型. 这用于通过更改 mbstring.internal_encoding 值使网站多语言. encoding 是用于 HTTP 输入的字符编码名称字符编码转换,HTTP输出字符编码转换,以及字符串函数的默认字符编码由 mbstring 模块定义.你应该注意到内部编码与多字节正则表达式的编码完全不同. 而 UTF-8(8 位 Unicode 转换格式)是 Unicode 的变长字符编码. 您可以使用 iso-8859-1、UTF-8 等进行更改. 这里是 Unicode 字符列表的列表.
180 2022-08-11
编程技术问答社区
PHP增加内存_限制超过128M
我已经使用标准Apache和PHP运行Debian挤压,通过能力安装. 否我尝试运行: 结果:1​​28m128m 我试图改变这种行为和一些事实: /etc/php5/apache2/php.ini: safe_mode = Off memory_limit = 128M /etc/php5/apache2/conf.d/suhosin.ini: [suhosin] suhosin.memory_limit = 2048M 我可以使用phpinfo(); service apache2 restart后验证此设置. 为什么我无法将内存限制设置在128米以上? 注意:
3932 2022-07-19
编程技术问答社区
热门专题