[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как удалить переменную с ключом из сессии
xenkook
Пытаюсь удалить один ключ из сессии, удаляется весь массив. Подскажите, пожалуйста, что я делаю не так?

session_start (); // стартуем сессию
$tt=$_SESSION['tt']; // получаем переменную $tt из сессии
$del=$_GET['del']; // получаем переменную $del из массива GET
if (isset ($del)){ // если переменная $del существует
session_unset ($tt[$del]); // удаляем из массива сессии переменную $tt c ключом $del
}
else {
echo "Удалять нечего.";
if (isset($tt)){ // если $tt существует
for($i=0;$i<count($tt);$i++){ // перебираем массив и генерируем страницу
$imp=extract($tt[$i]); // вытаскиваем из массива переменные
echo "<div class=\"tov\"> // формируем саму страницу
<a rel=\"lightbox[portfolio]\" href=\"images/product/$foto_l.jpg\" title=\"Смеситель\"><img src=\"images/product/$foto.jpg\" width=\"200\" height=\"150\" style=\"float:left\"/></a>
<table>
<tr><td height=\"20\" width=\"160\">Наименование:</td>
<td>$naim</td>
</tr
<tr>
<td height=\"20\">Модель: </td>
<td>$model</td>
</tr>
<tr>
<td height=\"20\">Производитель: </td>
<td>$country</td>
</tr>
<tr>
<td height=\"20\">Цена: </td>
<td>$price р</td>
</tr>
<tr>
<td height=\"20\">
Количество: <input type=\"text\" name=\"col\" value=\"$col\" style=\"width: 20px; text-align: right\" />
</td>
<td><a href=\"shoppingcart2.php?del=$i\">Удалить</a></td>
</tr>
</table>
<div class=\"cleaner h50\"></div>
</div>";
}
}
forza
Просто
unset($_SESSION['key']);


_____________
Заработок для веб-разработчиков: CodeCanyon
Мое Портфолио
xenkook
Изменил код, переменная из сессии удаляется. Только из-за
for ($i=0; $i<count ($str); $i++) получается, что генерируется пустое поле вместо удаленного ключа 0. Значит надо после удаления ключа, например [0] перебрать массив, чтобы пересчитать снова количество ключей и сделать [1] => [0]. Тогда генерироваться пустое поле не будет. Как это сделать?

Изменённый код:

<?php
session_start();
$del=$_GET['del'];
$tt=$_SESSION['tt'];
session_unregister ($tt);
if (isset ($del)){
unset ($tt[$del]);
}
else {
echo "Удалять нечего.";
}
echo '<div id="content"><h2>Корзина</h2>';
if (isset($tt)){
for($i=0;$i<count($tt);$i++){
$imp=extract($tt[$i]);
echo "<div class=\"tov\">
<a rel=\"lightbox[portfolio]\" href=\"images/product/$foto_l.jpg\" title=\"Смеситель\"><img src=\"images/product/$foto.jpg\" width=\"200\" height=\"150\" style=\"float:left\"/></a>
<table>
<tr><td height=\"20\" width=\"160\">Наименование:</td>
<td>$naim</td>
</tr
<tr>
<td height=\"20\">Модель: </td>
<td>$model</td>
</tr>
<tr>
<td height=\"20\">Производитель: </td>
<td>$country</td>
</tr>
<tr>
<td height=\"20\">Цена: </td>
<td>$price р</td>
</tr>
<tr>
<td height=\"20\">
Количество: <input type=\"text\" name=\"col\" value=\"$col\" style=\"width: 20px; text-align: right\" />
</td>
<td><a href=\"shoppingcart2.php?del=$i\">Удалить</a></td>
</tr>
</table>
<div class=\"cleaner h50\"></div>
</div>";
}
}
else {
echo 'Ваша корзина пуста!';
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.