我有一个未定义的变量,但我不知道为什么


I have an undefined variable, but i don't know why

这是我有问题的代码:http://tutsforweb.blogspot.hu/2012/02/php-installation-script.html

Notice: Undefined variable: pre_error in C:'wamp'www'torolni'install.php
on line 110 Call Stack #TimeMemoryFunctionLocation 
10.0022297152{main}( )..'install.php:0 20.0022297824step_2( )..'install.php:13

我有同样的问题,作为第一个评论者,但我不知道如何"关闭通知消息在你的php ini文件"。那是什么?我在哪里可以找到它?我用WAMP。这在"真实"服务器中会是一个问题吗?(不在localhost)

由于错误,我无法进入第三步。

他们建议不显示PHP通知,但我认为这是一个坏建议,因为该方法只是隐藏消息而不是修复可能的代码问题。解决这个问题的方法是初始化变量:

function step_2(){ $pre_error = ''; //... }

我首先要说的是,关闭通知来隐藏PHP错误根本不是很好的做法!

查看错误,您不能echo一个不存在的变量。$pre_error在事情正常工作的情况下没有定义。你可以在'Step 2'开头声明它。

function step_2(){
    $pre_error = '';
    if....

更新if语句中的条件也是一个好主意,以便在测试其值之前检查数组键是否存在。例如,&& $_POST['pre_error'] != ''应更改为&& (isset($_POST['pre_error']) && $_POST['pre_error'] != '')

点击任务栏上的WAMP图标> PHP> PHP .ini。这将把您带到设置基本PHP行为的文本文件。您可以通过以下引用自定义这些行为:http://www.php.net/manual/en/function.error-reporting.php

另外,请不要制作PHP安装脚本。各种各样的安全问题都会浮现出来,特别是如果您不使用SSL上的安全FTP。

查找php.ini文件:

选项1:导航到计算机上相应的文件夹,用记事本打开php.ini文件。我的目录是C:'wamp'bin'apache'Apache2.2.17'bin(你的php的确切位置和版本可能略有不同。

选项2 点击系统托盘中的wamp图标->PHP-> PHP .ini

在记事本中按ctrl+f搜索display_errors = On。设置为display_errors = Off

重新启动wamp服务器,通知将不再显示

这是一个非常糟糕的修复,但正如其他人所提到的。我还建议您在完成教程后重新打开它们,因为在开发过程中显示错误是非常宝贵的。