0

我收到这些错误:

注意:未定义变量:第 11 行 login.php 中的链接

警告:mysqli_real_escape_string() 期望参数 1 为 mysqli,在第 11 行的 login.php 中给出 null

注意:未定义变量:第 18 行 login.php 中的链接

警告:mysqli_query() 期望参数 1 为 mysqli,在第 18 行的 login.php 中给出 null

警告:mysql_result() 期望参数 1 是资源,在第 19 行的 login.php 中给出 null

这是代码:

<?php

session_start();


$link = mysqli_connect('localhost','root','') or die(); 
mysqli_select_db($link,'lr') or die();  


function sanitize($data) {
    return mysqli_real_escape_string($link, $data);     <<line 11
}



function user_exists($username) {
    $username = sanitize($username);    
    $query = mysqli_query($link, "SELECT COUNT('user_id') FROM 'users' WHERE 'username' = '$username'");        <<line 18
    return (mysql_result($query, 0) ==1) ? true : false;        <<line19

}


if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password';    

    } else if (user_exists($username) === false) {  
        $errors[] = 'User not found';
        }


}

?>

有什么问题?

4

2 回答 2

0

您需要在函数内部使用 $_GLOBALS['link'] 。

像这样:

    function sanitize($data) {
    return mysqli_real_escape_string($_GLOBALS['$link'], $data);     <<line 11
}

user_exist 函数内部也是如此。

于 2013-09-19T06:47:03.557 回答
0

全局可能已经解决了这个问题,但最好将变量传递给函数。

function sanitize($data, $A) {
    return mysqli_real_escape_string($A, $data);     <<line 11
}
function user_exists($username, $A) {
    $username = sanitize($username);    
    $query = mysqli_query($A, "SELECT COUNT('user_id') FROM 'users' WHERE 'usernam' = '$username'");        <<line 18
    return (mysql_result($query, 0) ==1) ? true : false;        <<line19

}

if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username, $link) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password';    

    } else if (user_exists($username, $link) === false) {  
        $errors[] = 'User not found';
        }


}
于 2015-01-22T21:47:23.183 回答