Использование неопределенной константы в скрипте

Я искал на сайте и видел исправления для проблемы, в которой пользователь должен был поставить одинарные кавычки вокруг переменной, но я все еще немного запутался.

Ошибки: (все относятся к строке 28)
Примечание: использование неопределенной константы log_id — предполагается, что ‘log_id’
Примечание: использование неопределенной константы log_username — предполагается, что ‘log_username’
Примечание: использование неопределенной константы log_password — предполагается, что ‘log_password’

Автор сценария:

     <?php
session_start();

include ("includes/connection.php");

$user_ok = false;
$log_id = "";
$log_username = "";
$log_password ="";function evalLoggedUser($con,$id,$u,$p){
$sql = "SELECT ip FROM users WHERE id='$id' AND username='$u' AND password='$p' AND activated='1' LIMIT 1";
$query = mysqli_query($con, $sql);
$numrows = mysqli_num_rows($query);
if($numrows > 0){
return true;
}
}

if(isset($_SESSION["userid"]) && isset($_SESSION["username"]) && isset($_SESSION["password"])) {
$log_id = preg_replace('#[^0-9]#', '',$_SESSION['userid']);
$log_username = preg_replace('#[^a-z0-9]#i','', $_SESSION ['username']);
$log_password = preg_replace('#[^a-z0-9]#i','', $_SESSION ['password']);

//VERIFY USER

$user_ok = evalLoggedUser($con,log_id,log_username,log_password);

} else if(isset($_COOKIE["id"]) && isset($_COOKIE["user"]) &&  isset($_COOKIE["pass"])) {
$_SESSION['userid'] =  preg_replace('#[^0-9]#', '',$_COOKIE['userid']);
$_SESSION ['username'] =preg_replace('#[^a-z0-9]#i','', $_COOKIE ['username']);
$_SESSION['password'] =  preg_replace('#[^a-z0-9]#i','', $_COOKIE ['username']);

//CREATE LOCAL SHORT VARIABLES

$log_id = $_SESSION['userid'];
$log_username = $_SESSION['username'];
$log_password = $_SESSION['password'];

if($user_ok == true){}
//UPDATE LAST LOGIN TIME
$sql = "UPDATE users SET lastlogin=now() WHERE id='$log_id' LIMIT 1";
$query = mysqli_query($con,$sql);
}?>

-1

Решение

Измените эту строку, вы забыли $ infront переменных:

$user_ok = evalLoggedUser($con,$log_id,$log_username,$log_password);
1

Другие решения

Вы забыли поставить знаки доллара.

Заменить это:

$user_ok = evalLoggedUser($con,log_id,log_username,log_password);

с этим:

$user_ok = evalLoggedUser($con,$log_id,$log_username,$log_password);
0

$user_ok = evalLoggedUser($con,log_id,log_username,log_password);

изменить на:

$user_ok = evalLoggedUser($con,$log_id,$log_username,$log_password);
0
По вопросам рекламы [email protected]