Крымский форум (Crimea-Board) Поиск Участники Помощь Текстовая версия Crimea-Board.Net
Здравствуйте Гость .:: Вход :: Регистрация ::. .:: Выслать повторно письмо для активации  
 
> Рекламный блок.
 

Реклама на форуме

 
> Ваша реклама, здесь
 
 
 

  Start new topic Start Poll 

> Вопрос по Php, удаление строки из базы
Denni | Профиль
Дата 6 Июня, 2013, 12:26
Quote Post




Group Icon

Группа: Silver Member
Сообщений: 704
Регистрация: 15.01.07
Авторитет: 1
Вне форума

Предупреждения:
(0%) -----


Проблема такая - Не могу удалить из таблицы базы строку, в которой находится номер текущей сессии.

Сам код:
Код

[b]Запись в базу сессии:[/b]
session_start(); - стартуем сессию

---какие-то действия-----

$currsession = session_id(); // запихиваем ид сессии в переменную
$sqlsess = mysql_query("INSERT INTO 'base'.'table' (id) VALUES ('$currsession')",$db_connect);
header('location: rand/first.php?sid='.htmlspecialchars($currsession));

---сессия успешно записалась в базе-----

[b]Попытка удалить из базы:[/b]
session_start(); - стартуем сессию

---какие-то действия-----

$exitsession = $_GET['sid'];
if(isset($_POST['exit'])) {
$deletesession = mysql_query("DELETE FROM 'base'.'table' WHERE 'table'.'id' = '".$exitsession."'",$db_connect);
session_destroy();
header('location: ../index.html');
}
print_r('<form method="post"><input type="submit" name="exit" value="EXIT"></input></form>

---сессия НЕ удалилась из базы-----

Где у меня ошибка?[glow=][/glow]


____________________
я постоянно учусь...
PMEmail Poster
Бобер | Бездомный
Реклама двигатель прогресса       
Quote Post



А кому сча лехко?
Group Icon
















_________________
Желающим разместить рекламу смотреть сюдой
/   
killer8080 | Профиль
Дата 6 Июня, 2013, 13:06
Quote Post




Group Icon

Группа: Silver Member
Сообщений: 525
Регистрация: 03.03.10
Авторитет: 21
Вне форума

Предупреждения:
(0%) -----


Код
mysql_query("DELETE FROM table WHERE id = '".session_id()."'");


P.S. кстати расширение mysql помечено как deprecated в версии PHP5.5. Лучше уже сегодня переходить на mysqli или PDO, чтоб не было проблем в будущем.

Отредактировал killer8080 - 6 Июня, 2013, 13:15
PMEmail Poster
ITsb |
Дата 6 Июня, 2013, 13:26
Quote Post



Unregistered









а в логах что?
Denni | Профиль
Дата 6 Июня, 2013, 13:38
Quote Post




Group Icon

Группа: Silver Member
Сообщений: 704
Регистрация: 15.01.07
Авторитет: 1
Вне форума

Предупреждения:
(0%) -----


Спасибо =) работает =)
а почему тогда не сработало, если сессию запихать в переменную?


____________________
я постоянно учусь...
PMEmail Poster
killer8080 | Профиль
Дата 6 Июня, 2013, 16:24
Quote Post




Group Icon

Группа: Silver Member
Сообщений: 525
Регистрация: 03.03.10
Авторитет: 21
Вне форума

Предупреждения:
(0%) -----


Цитата(Denni @ 6 Июня, 2013, 12:38)
а почему тогда не сработало, если сессию запихать в переменную?

Потому что, во первых имя сессии по умолчанию PHPSESSID, а не sid, во вторых по умолчанию используется только куки, если вы сами не включили в настройках session.use_trans_sid. Поэтому в $_GET['sid'] ничего не было.
PMEmail Poster
killer8080 | Профиль
Дата 6 Июня, 2013, 16:29
Quote Post




Group Icon

Группа: Silver Member
Сообщений: 525
Регистрация: 03.03.10
Авторитет: 21
Вне форума

Предупреждения:
(0%) -----


Да, еще session_id() нужно прогонять через mysql_real_escape_string(). Т.к идентификатор сессии - это пользовательские данные, защита от инъекций должна быть обязательно.
PMEmail Poster
Denni | Профиль
Дата 7 Июня, 2013, 13:28
Quote Post




Group Icon

Группа: Silver Member
Сообщений: 704
Регистрация: 15.01.07
Авторитет: 1
Вне форума

Предупреждения:
(0%) -----


спасибо за пояснения, будем исправлять)


____________________
я постоянно учусь...
PMEmail Poster

Topic Options Start new topic Start Poll 

 



[ Script Execution time: 0.0112 ]   [ 12 queries used ]   [ GZIP включён ]






Политика конфиденциальности

Top