Возвращает null

157
22 ноября 2018, 15:00

Когда пользователь входит в аккаунт, ему выводятся вся его информация. Username выводится, а email нет. Решил я проверить через var_dump и мне вывелось NULL. Почему? Помогите пожалуйста. Прошу вас

// LOGIN USER 
if (isset($_POST['login_user'])) { 
  $username = mysqli_real_escape_string($db, $_POST['username']); 
  $password = mysqli_real_escape_string($db, $_POST['password']); 
  $email = mysqli_real_escape_string($db, $_POST['email']); 
 
  if (empty($username)) { 
  	array_push($errors, "Username is required"); 
  } 
  if (empty($password)) { 
  	array_push($errors, "Password is required"); 
  } 
 
  if (count($errors) == 0) { 
  	$password = md5($password); 
  	$query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; 
    $rows = mysqli_query("SELECT 'email' FROM 'users' WHERE 'email'='$email' "); 
    $email_user = mysqli_fetch_array($rows); 
  	$results = mysqli_query($db, $query, $rows); 
  	if (mysqli_num_rows($results) == 1) { 
  	  $_SESSION['username'] = $username; 
      $_SESSION['email'] = $email_user['email']; 
  	  $_SESSION['success'] = "You are now logged in"; 
  	  header('location: index.php'); 
  	}else { 
  		array_push($errors, "Wrong username/password combination"); 
  	} 
  } 
}

// Настройки 
<?php  
  session_start();  
 
  if (!isset($_SESSION['username'])) { 
    $_SESSION['msg'] = "Вы должны зарегистрироваться"; 
    header('location: login.php'); 
  } 
  if (isset($_GET['logout'])) { 
    session_destroy(); 
    unset($_SESSION['username']); 
    header("location: login.php"); 
  } 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Home</title> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
</head> 
<body> 
 
<div class="header"> 
    <h2>Настройки</h2> 
    <a href="settings.php">Настройки</a></span> 
</div> 
<div class="content"> 
    <!-- notification message --> 
    <?php if (isset($_SESSION['success'])) : ?> 
      <div class="error success" > 
        <h3> 
          <?php  
            echo $_SESSION['success'];  
            unset($_SESSION['success']); 
          ?> 
        </h3> 
      </div> 
    <?php endif ?> 
 
   
    <?php  if (isset($_SESSION['username'])) : ?> 
        <p>Имя пользователя <strong><?php echo $_SESSION['username']; ?></strong></p> 
        <p>Email <strong><?php var_dump($SESSION); echo $_SESSION['email']; ?></strong></p> 
        <p>Текущий пароль <strong><?php echo $_SESSION['password']; ?></strong></p> 
        <p> <a href="index.php?logout='1'" style="color: red;">logout</a> </p> 
    <?php endif ?> 
</div> 
         
</body> 
</html>

Answer 1

Когда вставляете переменную PHP в запрос или в любой другой текст вы должны обернуть его в фигурные скобки или использовать конкатенацию чтобы корректно его выявить

$rows = mysqli_query("SELECT 'email' FROM 'users' WHERE 'email'='". $email ."' ");

или

$rows = mysqli_query("SELECT 'email' FROM 'users' WHERE 'email'='{$email}'");
READ ALSO
Странное поведение xdebug

Странное поведение xdebug

Возникла проблема при работе xdebug

174
Как получить все дочерние элементы при парсинге с помощью DiDOM

Как получить все дочерние элементы при парсинге с помощью DiDOM

Сайт-донор имеет такой вот блок со списком:

147
Поисковый движок для сайта

Поисковый движок для сайта

Я хочу организовать поиск по сайту, сайт многоязычный, есть два варианта для поиска: elasticsearch или sphinxВторой вариант мне показался проще в понимании...

184
БД пользователей в Redis

БД пользователей в Redis

Всем привет, как хранить данные регистрации пользователей в Redis?

134