致命错误:函数名称必须是/home/..中的字符串/第3行的public_html/updater.php
1: <?php
2:
3: $user_id = $_GET("uid"); /* <-- Line 3 */
4: $user_name = $_GET("uname");
5: $setting = $_GET("setting");
6:
7: $MyString = $user_name + '[' + $user_id + ']{' + $setting + '} 'n';
8:
9: $myfile = fopen('database.txt', 'a');
10: fwrite($myfile, $MyString . ''n');
11: fclose($myfile);
12:
13: ?>
出了什么问题
用方括号将$_GET()
代码更改为$_GET[]
。
- $_GET是一个超全局(预定义/内置变量),而不是一个函数
- http://php.net/manual/en/language.variables.superglobals.php
除了使用方括号而不是括号外,还应该将第7行更改为
$MyString = $user_name . "[" . $user_id . "]{" . $setting . "} 'n";
线路10至
fwrite($myfile, $MyString . "'n");
字符串串联应使用句点(.),而不是加号(+)。此外,在编写特殊字符(换行符)时,需要使用双引号字符串,而不是单引号字符串。
要在php中获取数组值,请使用方括号[]
,而不是vb,即$user_id = $_GET["uid"];
语法错误。正确的语法是:
$user_id = $_GET["uid"];
在适用的情况下应用更改。
混淆了为什么要使用两个换行符。一个还不够吗?
此外,您的代码中有"''n"错误,您不能这样做。
你需要;
"''n"正确解释的隐含换行符(或chr(10))
CRLF(chr(13)+chr(10)),用于DOS格式的文本文件。
CR,用于linux格式的文本文件。(或chr(13))
此外,我建议在fopen调用中使用"ta"。从fopen()php页面中提取;
如果使用纯文本文件,并且在脚本中使用''n分隔行尾,但希望文件在记事本等应用程序中可读,则应使用"t"模式。在所有其他情况下都应该使用"b"。
参考文献:
http://php.net/manual/en/function.fopen.php
http://www.december.com/html/spec/ascii.html(13被视为回车或/r,10被视为换行或/n)
更改所有GET方法:
$user_id = $_GET("uid"); /* <-- Line 3 */
至
$user_id = $_GET["uid"];
完成