在PHP中使用过程单例?

时间:2015-08-20 11:36:54

标签: php mysqli

我想要实现的目标:我想要实现的目标:用户应该启动该功能,然后点击表单按钮。如果发布的信息与数据库中的信息匹配,那么他将被重定向到login.php,否则重定向到relogin.php。我希望能够找到一种方法来防止使用" global"如果可能,函数内的变量。

问题:它似乎无法读取我的变量中的mysql连接,好像它是空的或某些东西或我错了?在错误消息下面:

ko.validation.init({
    insertMessages: false
});

var patterns = {
    email: /^([\d\w-\.]+@([\d\w-]+\.)+[\w]{2,4})?$/
};

var ViewModel = function () {
    var self = this;
    self.CompanyName = ko.observable();
    self.ContactPerson = ko.observable();
    self.Email = ko.observable();

    self.test = ko.observable();

    self.step1Validation = ko.validatedObservable([
    self.CompanyName.extend({
        required: true
    }),
    self.ContactPerson.extend({
        required: true
    }),
    self.Email.extend({
        required: true,
        pattern: {
            message: 'Must be a valid email',
            params: patterns.email
        }
    })]);

    self.clickDone = function () {
        if (self.step1Validation.isValid()) {
            self.test('valid');
            return true;
        } else {
            self.test('invalid');
            self.step1Validation.errors.showAllMessages()
            return false;
        };
    };
};

var model = new ViewModel();
ko.applyBindings(model);

我尝试过:尝试删除global关键字并将$ connection作为参数添加到我的login_check函数中,这导致了错误。我也读过关于php define()但是它只用于常量(在这种情况下它是什么?)但是它使它成为全局的。我知道有OOP方式,但我想先掌握程序方法。

链接到我的代码 - > phpfiddle

3 个答案:

答案 0 :(得分:0)

实际上是通过为包含它的变量赋值来终止与数据库的连接。

此外,你不应该同时使用mysqli_secure()和mysql_real_escape_string()或其他任何类型。

答案 1 :(得分:-1)

这样的一些小调整会检查数据库中的get,并检查username是否正确。

password

答案 2 :(得分:-1)

我修改了你的代码以使用mysqli面向对象。在我查询之后,我打印出结果。希望能帮助到你。

<?php
session_start();

$servername = "localhost";
$username = "root";
$password = "";
$database = "project";

$connection = new mysqli($servername, $username, $password, $database);

function login_check() {
    global $connection;
    $no_match = 'Sorry, password and name do not match.';
    $not_found = 'Your login information does not exist within our database.';

    $name = strtolower($_POST['name']);
    $password = $_POST['password'];    

    $stmt = $connection->prepare("SELECT id FROM members WHERE name = ? AND password = ?");
    $stmt->bind_param('ss', $name, $password);
    $stmt->execute();

    $result = $stmt->get_result();
    while ($row = $result->fetch_array())
    {
        print_r($row);
    }

    $connection->close();
}

login_check();
相关问题