установить переменные сеанса по нажатию на ссылку - PullRequest
0 голосов
/ 10 января 2012

как мне установить переменные сеанса при нажатии на ссылку. У меня много ссылок на одной странице. в зависимости от нажатой ссылки должна быть установлена ​​переменная сеанса. Например: у меня 5 ссылок

<a
 href="page1.php">
page1
</a>

<a href="page2.php">
page2</a>

<a href="page3.php">
page3</a>


<a href="page4.php">
page4</a>

<a href="page5.php">
page5</a>

если щелкнуть первую ссылку, нужно установить $ _SESSION ['category'] = page1

если щелкнуть по второй ссылке, нужно установить $ _SESSION ['category'] = page2 и т. Д. как я могу получить это ?? любая идея ??

Ответы [ 5 ]

2 голосов
/ 10 января 2012

Лучше всего установить $ _SESSION ['category'] в начале каждого из этих файлов php.Если это не вариант, возможно, создайте файл page.php, который принимает строку запроса.

Примерно так:

<?php //example: page.php?p=1
// don't forget to clean $_GET['p']
$p = $_GET['p'];
$_SESSION['category'] = $p;
include("page$p.php");
1 голос
/ 10 января 2012

В качестве предложения gavinbear для размещения в верхней части страницы, вы можете использовать следующее, чтобы получить соответствие вашему первоначальному соглашению об именах:

$requested_uri = $_SERVER['REQUEST_URI']
$requested_path = parse_url($requested_uri)[path]
$_SESSION['category'] = basename($requested_path, ".php")
0 голосов
/ 10 января 2012

Вам не нужны сеансы для обнаружения текущей страницы.Вместо этого вы можете использовать это:

<?php
    $pageName = basename($_SERVER[PHP_SELF]);
?>

Полагаю, вы можете сохранить это в переменной сеанса, но она будет перезаписываться на каждой странице.

0 голосов
/ 10 января 2012

На каждой странице вам нужно установить сеанс.

Например, на page1.php:

<?php
  session_start();
  $_SESSION['category']='page1';
?>
Any content on page1.php

и т. Д. Для каждой страницы.

Еслиоднако вы хотите, чтобы он располагался на той же странице, но устанавливал сеанс и использовал этот сеанс для управления чем-либо на странице (например, категорией), тогда вы могли бы передать параметр через URL и установить сеанс таким образом, например,пример будет page.php?category=page1

<?php
  session_start();
  if (isset($_GET['category'])) {
    $_SESSION['category']=$_GET['category'];
  }
?>
Any content on page.php
0 голосов
/ 10 января 2012

хорошо, вы всегда можете смешать JavaScript с php.use событие onclick для тега привязки.когда ссылка нажата, просто установите сеанс в JavaScript, написанном для события onclick. Надеюсь, это имеет смысл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...