我是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>
index.php
的源代码:
<?php
// venushka thisara dharmasiri
require 'config.php';
require 'thems\login.html';
?>
login.php
的源代码:
<?php
if(isset($_POST("Submit_button"))==true)
print("Submit button pressed");
else
print("submit button sorry");
?>
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> ");
?>
答案 0 :(得分:11)
应该是$_POST["Submit_button"]
而不是$_POST("Submit_button")
答案 1 :(得分:2)
脚本返回的错误解释了它:
致命错误:无法在写入上下文中使用函数返回值 第3行的C:\ xampp \ htdocs \ forsiteSystem \ login.php
如果您不理解错误的含义 - 并且相信我,即使对于有经验的程序员来说,大多数错误消息都是奇怪的 - 查看引用的行号。在login.php
中查看第3行显示错误; $_POST("Submit_button")
无效:
if(isset($_POST("Submit_button"))==true)
print("Submit button pressed");
else
print("submit button sorry");
应为$_POST["Submit_button"]
:
if(isset($_POST["Submit_button"])==true)
print("Submit button pressed");
else
print("submit button sorry");
但进一步观察,为什么会有==true
?它可以是这样的:
if(isset($_POST["Submit_button"]))
print("Submit button pressed");
else
print("submit button sorry");
但我建议更好地检查一下这个值:
if(array_key_exists("Submit_button", $_POST) && !empty(trim($_POST["Submit_button"])))
print("Submit button pressed");
else
print("submit button sorry");
我发现使用array_key_exists
以及!empty
和trim
的组合更适合基本用户提交的数据验证。
答案 2 :(得分:1)
首先清理一些代码可能有所帮助。 PHP不需要if() else
语法中的大括号;然而,一个很好的起点。我建议深入研究PHP here的基本语法。那不是什么都行不通。
if(condition){
//do something
} else {
//do something else
}
您遇到的主要问题是PHP中数组的正确语法。这样就可以解决你的致命错误。
//old
$_POST("Submit_button")
//new
$_POST['foo']
这解决了你的第一个致命错误;相反,不会让你更进一步。由于您的表单使用“ GET ”而非“ POST ”将变量发送到脚本。提交按钮不返回变量;相反,使用另一个<input>
或向表单<form name="form" action="file.php" method="post">
添加名称以检索变量。因此使用:
if(isset($_POST['form'])){
echo $_POST['name'];
}
此外,使用$_GET
变量和mysql_connect
存在许多问题。在继续之前,我建议使用Google在PHP mysqli 或 PDO 上找到一些好的教程。