不能使用函数返回值

Ven*_*kaT 5 php mysql login runtime-error function

我是PHP新手并开发一个登录表单.请在下面找到我使用的代码.当我尝试它时给了我以下错误:

致命错误:第3行的C:\ xampp\htdocs\forsiteSystem\login.php中的写入上下文中不能使用函数返回值

请帮我解决这个问题.

源代码thems/login.html:

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form action=".\login.php" method="get">
        Name: <input type="text" name="name"><br>
        E-mail: <input type="text" name="email"><br>
                <input type="submit"  id="Submit_button">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

源代码index.php:

<?php
        // venushka thisara dharmasiri

        require 'config.php';
        require 'thems\login.html';

 ?>
Run Code Online (Sandbox Code Playgroud)

源代码login.php:

<?php

  if(isset($_POST("Submit_button"))==true)  
      print("Submit button pressed");
  else
      print("submit button sorry");

?>
Run Code Online (Sandbox Code Playgroud)

源代码config.php:

<?php

$dbUser="root";
$dbPassword="";
$dbName="forsitelogin";
$dbHost="localHost";

$dbConnection= mysql_connect($dbHost, $dbUser, $dbPassword);

if($dbConnection)
{
    mysql_select_db($dbName);
    //print("Sucessfully connected to database");
}
else
    die("<strong>Cound not connect to database </strong> ");

?>
Run Code Online (Sandbox Code Playgroud)

Sha*_*ran 11

应该是$_POST["Submit_button"]而不是$_POST("Submit_button")

  • `$ _POST`是一个全局数组,但是OP就像一个函数一样调用它. (2认同)

Jak*_*uld 2

脚本返回的错误对此进行了解释:

\n
\n

致命错误:无法在第 3 行的 C:\\xampp\\htdocs\\forsiteSystem\\login.php 中的写入上下文中使用函数返回值

\n
\n

如果您不理解错误的含义,并且相信我,即使对于经验丰富的程序员来说,大多数错误消息也会很奇怪,看看引用的行号。查看第 3 行login.php显示了错误;$_POST("Submit_button")是无效的:

\n
if(isset($_POST("Submit_button"))==true)  \n    print("Submit button pressed");\nelse\n    print("submit button sorry");\n
Run Code Online (Sandbox Code Playgroud)\n

它应该是$_POST["Submit_button"]

\n
if(isset($_POST["Submit_button"])==true)  \n    print("Submit button pressed");\nelse\n    print("submit button sorry");\n
Run Code Online (Sandbox Code Playgroud)\n

但再进一步看,为什么会有一个==true?它可以简单地是这样的:

\n
if(isset($_POST["Submit_button"]))  \n    print("Submit button pressed");\nelse\n    print("submit button sorry");\n
Run Code Online (Sandbox Code Playgroud)\n

但我建议更好地检查该值,如下所示:

\n
if(array_key_exists("Submit_button", $_POST) && !empty(trim($_POST["Submit_button"])))  \n    print("Submit button pressed");\nelse\n    print("submit button sorry");\n
Run Code Online (Sandbox Code Playgroud)\n

我发现使用和的array_key_exists组合对于基本的用户提交的数据验证效果更好。!emptytrim

\n