Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: команда $_SESSION

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не могу разобраться
yogeswar
Отправлено: 17 Июня, 2013 - 13:19:43
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Здраствуйте !
Вопрос у меня такой.
У меня есть двумерный массив $a[x][y]. Этот массив я использую для формления таблицы на своей странице, причем x - строки таблицы, а y - столбцы. Для построения таблицы я использую цикл. Т.е. таблица выглядит так:
<table>
<?php
for($i = 0; $i < sizeof($a); $i++)
{
?>
<tr>
<td><h5><?=$a[$i][1]?></h5></td>
<td><h5><?=$a[$i][2]?></h5></td>
<td><h5><?=$a[$i][5]?></h5></td>
<a href="wasy.php?wan2=Таки">

<?php
echo 'Выбрать';
$_SESSION['pered']= $a[$i][0];
?>
</a></h5></td>

</tr>
<?php
}
?>
</table>
Мне нужно после нажатия кнопки «Выбрать» перенести на страницу wasy.php первое значение строки i.
Как я только не комбинировал, все равно переносится только первое значение последней(!) строки, т. е. если max($i) = k, то $_SESSION['pered'] переносит на страницу wasy.php значение $a[k][0].
Можно конечно опять использовать GET, но я его не люблю. Слишком много жалоб на хакеров, что они через GET проникают на сайт. Извините, это письмо не профессионала. Я вообще недавно узнал, что данные можно переносить с помощью $_SESSION, хотелось бы дальше поиспользовать эту команду и на ней набить руку.
Вопрос такой, как можно с помощью команды $_SESSION перенести на страницу wasy.php именно первое значение i-й строки после нажатия кнопки «Выбрать».
 
 Top
DelphinPRO
Отправлено: 17 Июня, 2013 - 13:26:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. // $a[x][y]
  3.  
  4. foreach ($a as $row) { ?>
  5. <tr>
  6.   <td><h5><?=$row[1]?></h5></td>
  7.   <td><h5><?=$row[2]?></h5></td>
  8.   <td><h5><?=$row[5]?></h5></td>
  9.   <td>
  10.     <a href="wasy.php?wan2=Таки&pered=<?=$row[0]?>">Выбрать</a>
  11.   </td>
  12. </tr>
  13. <?php } ?>

в wasy.php ловим переданное значение:

(Отредактировано автором: 17 Июня, 2013 - 13:27:01)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
yogeswar
Отправлено: 17 Июня, 2013 - 13:29:12
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо DelphinPRO!
А без GET никак нельзя?
 
 Top
DelphinPRO
Отправлено: 17 Июня, 2013 - 13:30:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




yogeswar пишет:
Слишком много жалоб на хакеров, что они через GET проникают на сайт.

Улыбка
а вы проверяйте, что получаете от пользователя.

PHP:
скопировать код в буфер обмена
  1. if (!isset($_GET['pered'])) {
  2.   die('неверный параметр');
  3. }
  4. $pered = $_GET['pered'];


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
fizzle
Отправлено: 17 Июня, 2013 - 13:30:45
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2013  


Помог: 1 раз(а)




Postom через ajax
 
 Top
DelphinPRO
Отправлено: 17 Июня, 2013 - 13:32:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




yogeswar пишет:
А без GET никак нельзя?

можно ПОСТом, но это сути не меняет - все равно нужно проверять внешние данные.
Можно даже извратиться и заюзать сессии, но вам все равно придется передавать ГЕТом или ПОСТом как минимум номер выбранной строки, а его тоже подделать можно...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
yogeswar
Отправлено: 17 Июня, 2013 - 13:34:03
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо DelphinPRO, спасибо fizzle!
Возможно ли с помощью $_SESSION?
 
 Top
DelphinPRO
Отправлено: 17 Июня, 2013 - 13:38:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




давайте думать. массив $a формируется на сервере. Вы боитесь поддделки данных, содержащихся в данном массиве. Значит не нужно вообще передавать эти данные. Передавайте только номер выбранной строки, а данные на сервере получайте занового из источника, так как получаете при выводе таблицы.
Ну и чтобы вас успокоить - сохраняйте весь массив данных в сессию Улыбка



если он не очень большой

а потом доставайте.
Допустим ссылка такая ?row=1

PHP:
скопировать код в буфер обмена
  1. $rowID = $_GET['row'];
  2. $_SESSION['a'][$rowID][0];// первая ячейка выбранной строки

(Отредактировано автором: 17 Июня, 2013 - 13:42:02)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
yogeswar
Отправлено: 17 Июня, 2013 - 13:40:31
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо DelphinPRO!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB