由于某些未知原因,Php登录出现错误
我的PHP知识水平:新手 学习资源:编解码器、Newboston、维基百科、PHP文档由于某些未知原因,Php登录出现错误,php,Php,我的PHP知识水平:新手 学习资源:编解码器、Newboston、维基百科、PHP文档 我正在努力实现的目标:我正在努力学习如何使用面向对象的PHP,因为从长远来看,它比过程方法更有效。如果输入的名称和密码与数据库和relogin.php匹配,我将尝试将用户重定向到login.php页面,但失败。您的函数声明丢失(),因此出现错误 public function __construct() { } public function DB_Connect() { } public function
我正在努力实现的目标:我正在努力学习如何使用面向对象的PHP,因为从长远来看,它比过程方法更有效。如果输入的名称和密码与数据库和relogin.php匹配,我将尝试将用户重定向到login.php页面,但失败。您的函数声明丢失
()
,因此出现错误
public function __construct() { }
public function DB_Connect() { }
public function Validate() { }
此外,您正在使用不在函数范围内的变量。你需要在声明中传递它们
public function __construct($name, $password)
如果要调用非静态函数static,请将$this::
替换为$this->
您在if
语句中使用了反勾号,您只能使用“
或”
您正在SQL语句中使用反向反勾号
您的$connection
未在登录
类中传递
您正在Login
中设置变量,而不使用private
、public
或protected
如果没有错误,为什么要设置error\u reporting
有太多错误,我建议您使用合适的IDE。两件事:
- 您的构造声明错误(缺少(),未传递您使用的参数)
- 字符串使用撇号'代替`
- 将类中的全局变量设置为私有或受保护
- 对post变量使用setter和getter,而不是直接赋值。post数组可以为空
class Login
{
// Not specially need these globals.
private $userName;
private $password;
/* better is this, because you use it one time.
Sanatize your input before passing to method below!
Sanatizing input is general logic: outside your login class :-)
*/
public function login($userName, $password)
{
// logic
}
}
但我们为什么要使用()如果我没有或不需要手动更改任何参数?我想我可以省去它们。@Asperger有时做一些事情会更好,例如使用带一行if/for/while的括号。更多不带括号的行可能会导致奇怪的事情:-)我现在将测试它。HenriI建议,因为您是PHP新手,也许尝试获取此代码在考虑OOP之前,先按程序进行工作。代码中几乎没有任何正确的东西,这表明您对基本级别的工作方式缺乏了解。但是,尝试OOP做得很好!$Eamonn您能陈述一些您认为错误的事情吗?当然。首先,您需要使用
()
声明或调用函数-因此函数验证{…}
和$this->Validate
不会为您做任何事情。您还需要理解“范围”的概念-您需要将数据传递到函数中(通过()
)例如,您的验证
函数需要您的$connection
对象,以及$name
和$password
变量,但不能访问其中任何一个。它的声明应该是这样的:函数验证(connection$connection,$name,$password){…}