Автор Тема: Въпрос свързан с унищожаване на определен ключ от масив  (Прочетена 1155 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Darnel

  • Full Member
  • ***
  • Благодарности
  • -Казани: 32
  • -Получени: 3
  • Публикации: 139
Здравейте. Искам да разбера как яджеба да унищожа определен ключ от масив. Като за конкретен пример искам да премахна определена сесия/ключ от масив примерно паролата. Как да стане това ?

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 269
  • Публикации: 2595
  • meow
В PHP ключ от масив може да се премахне с unset

Код: PHP
  1. <?php
  2.  
  3. $data = array('password' => '123456');
  4. var_dump($data);
  5. // array(1) { ["password"]=> string(6) "123456" }
  6.  
  7. unset($data['password']);
  8. var_dump($data);
  9. // array(0) { }
  10.  
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

Darnel

  • Full Member
  • ***
  • Благодарности
  • -Казани: 32
  • -Получени: 3
  • Публикации: 139
Опитах с ънсет-а но не го маха остава си сесията. Опитвах няколко начина и при преглед с вар дъмп установявам че си стои и не се маха. Правя отпит да го махна при логин. Някакви идеи или да предоставя кода ?

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 120
  • -Получени: 73
  • Публикации: 995
  • Кибик
За каква сесия става дума?
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой

Darnel

  • Full Member
  • ***
  • Благодарности
  • -Казани: 32
  • -Получени: 3
  • Публикации: 139
За каква сесия става дума?
Става въпрос за логване. Искам при логване. Използвам сесии за показване на информация от база данни , но искам при логване да унищожа сесията за паролата и да не седи в сесия т.е да махна точно този ключ от масива но не се получава.
пробвах така но никакъв успех
<?php
$row 
mysqli_fetch_array($result);
$pass $row['pass'];
if (
count($row) > && password_verify($user_pass$pass)) {
$_SESSION $row;
unset(
$_SESSION['pass']);
//I taka sushto
$_SESSION $row;
unset(
$row['pass']);
//i taka
//$_SESSION = array_values($row);
unset($row['pass']);
//unset($_SESSION['pass'])

Но ключа продължава да си седи.

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 120
  • -Получени: 73
  • Публикации: 995
  • Кибик
!!! какво прави паролата в сесията ? ? ?
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой

Darnel

  • Full Member
  • ***
  • Благодарности
  • -Казани: 32
  • -Получени: 3
  • Публикации: 139
!!! какво прави паролата в сесията ? ? ?
Нещо не те разбрах ??

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 120
  • -Получени: 73
  • Публикации: 995
  • Кибик
Защо запазваш паролата в сесията?
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой

Darnel

  • Full Member
  • ***
  • Благодарности
  • -Казани: 32
  • -Получени: 3
  • Публикации: 139
Защо запазваш паролата в сесията?
Не я запазвам , разбрал си ме погрешно. Просто искам за всеки случай да я премахна като потребителя се логва това е :)

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 120
  • -Получени: 73
  • Публикации: 995
  • Кибик
Но нали не я запазваш, тогава защо ти е да я махаш!
Аз бих го направил така:
Код: MySQL
  1. SELECT pass FROM table WHERE user_name = ?;
като "?" е името за вход(или имейл ако го правиш така)
Код: PHP
  1. ...
  2. $pass = fetch_assoc($result);
  3. if (password_verify($user_pass, $pass['pass'])) {
  4. //тогава ще направя заявка да си взема само това, което ми трябва от БД и ще го метна в сесията!!!
  5. }
  6. ...
  7.  
« Последна редакция: 23 Юли 2016, 12:00:48 от HanKrum »
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой