3

Fatal error: Function name must be a string in /home/../public_html/updater.php on line 3

 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: ?>

What's the problem ?

4

6 回答 6

24

Change your $_GET() code to $_GET[] with square brackets.

于 2012-07-29T04:03:28.500 回答
5

除了使用方括号代替圆括号之外,您还应该将第 7 行更改为

$MyString = $user_name . "[" . $user_id . "]{" . $setting . "} \n";

和第 10 行到

fwrite($myfile, $MyString . "\n");

您应该使用句点 (.) 代替加号 (+) 来连接字符串。此外,在编写特殊字符(换行符)时,您需要使用双引号字符串而不是单引号。

于 2012-07-29T04:05:49.950 回答
3

要在 php 中获取数组值,请使用方括号[],不像 vb,即 $user_id = $_GET["uid"];

于 2012-07-29T04:04:49.607 回答
2

语法错误。正确的语法是:

$user_id = $_GET["uid"];

在适用的地方应用更改。

于 2012-07-29T04:10:49.820 回答
1

很困惑为什么要使用两个换行符。一个应该不够吗?

你的代码也有'\ 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)

于 2012-07-29T04:15:26.230 回答
-1

更改所有 GET 方法:

$user_id = $_GET("uid"); /* <-- Line 3 */

$user_id = $_GET["uid"];

完毕

于 2021-01-13T08:56:46.377 回答