首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OO的简单登录

使用OO的简单登录
EN

Stack Overflow用户
提问于 2012-10-30 18:29:45
回答 6查看 116关注 0票数 1

在提交usernamepassword不为空的表单时,我只想验证一下。

表单

代码语言:javascript
复制
<form action="usercheck.php" method="post">
    User: <input type="text" name="username" maxlength="10" />
    Pass: <input type="password" name="password" maxlength="10" />      
    <input type="submit" value="Submit" />
</form>

usercheck.php

代码语言:javascript
复制
<?php

class Vuln{
    
    public $username = $_POST['username'];
    public $password = $_POST['password'];
    
    public function ShowErrors(){
        if($this->username == '' || $this->password == ''){
            return 'username or password field blank';  
        }
        else{
            echo stripslashes('we\'re good');
        }   
    }
    
    $entered = new Vuln;
    echo $entered->ShowErrors();
    
}


?>

当我测试的时候,它说:

分析错误:语法错误,意外T_VARIABLE,在线期待T_FUNCTION: $entered =新外阴;

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-30 18:31:41

在这样的类定义中不能有代码

代码语言:javascript
复制
    class Vuln {
       //> Your class definition
    }

    //> Outside of the class

    $entered = new Vuln;
    echo $entered->ShowErrors();

我强烈建议您阅读PHP Doc的所有基础知识。

票数 5
EN

Stack Overflow用户

发布于 2012-10-30 18:32:16

代码的一部分直接放在类中:

代码语言:javascript
复制
$entered = new Vuln;
echo $entered->ShowErrors();

这些应该放在类定义之外。如下文所述,改变:

代码语言:javascript
复制
public $username = $_POST['username'];
public $password = $_POST['password'];

代码语言:javascript
复制
public $username;
public $password;

并在构造函数中或类之外启动变量。

票数 1
EN

Stack Overflow用户

发布于 2012-10-30 18:33:35

就像这样

代码语言:javascript
复制
$entered = new Vuln;
$entered->username = $_POST['username'];
$entered->password = $_POST['password'];
$entered->ShowErrors();

您目前正在从类中实例化类。

编辑:添加以获得更多澄清--这将实例化类,并且应该在类之外。删除类中的实例化。

另一个编辑更改了变量名以匹配示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13145457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档