$а = 3, но при переходе на новую страницу - теряется

12
P
На сайте с 06.01.2009
Offline
601
1060

Здравствуйте

прошу помочь. сайт на php

есть сайт.

3 раздела (1,2,3)

50 коллекций материалов

надо понять с какого раздела (1,2 или 3) человек приходит в коллекцию и выводить в коллекции соответствующий текст.

в разделе 1 прописал

<? $a = 1; ?>

в коллекции прописал

<? if ($a == 1) echo ("ВЫ ПРИШЛИ из раздела №1. вернуться можно здесь"); ?>

но почему то при переходе из раздела на страницу коллекции - переменная а ничему не равна. она теряется где то (

очень нужна ваша помощь. думаю пустяки для вас. спасибо заранее.

embo
На сайте с 05.12.2008
Offline
24
#1

$_SESSION['a'] = 3;
Плавно двигаемся от сапы к статьям (http://miralinks.ru/users/registration/from:4223)
R.Major
На сайте с 23.03.2008
Offline
25
#2

В самом начале всех файлов пишите session_start();

В разделе №1 пишите:

$_SESSION['razdel'] = 1;

Далее:

<? if ($_SESSION['razdel'] == 1) echo ("ВЫ ПРИШЛИ из раздела №1. вернуться можно здесь"); ?>

Пишу на PHP (+JS) (/ru/forum/507055)
Maxouni
На сайте с 18.11.2008
Offline
119
#3

Перменные объявленные в скрипте не сохраняются, при загрузке другого или переходе на другую страницу. Для таких случаев используется суперглобальные массивы $_GET. В ссылке на страницу товаров добавть к пути ?cat=1(2 и 3 соответственно для других ссылок), а вскрипте уже обращайтесь:

if ($_GET['cat'] == 1)

{

тогда то то.

}

if ($_GET['cat'] == 2)

{

тогда то то.

}

но лучше используй конструкцию switch - case.

Также можно сессиями, смотря какая ситуация.

Создание, продвижение, поддержка сайтов и приложений.
P
На сайте с 06.01.2009
Offline
601
#4
R.Major:
В самом начале всех файлов пишите session_start();
В разделе №1 пишите:
$_SESSION['razdel'] = 1;
Далее:
<? if ($_SESSION['razdel'] == 1) echo ("ВЫ ПРИШЛИ из раздела №1. вернуться можно здесь"); ?>

вставил в самый верх 2-х файлов session_start();

и какая то ерунда вылезает на странице в самом верху

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/host/ и т.д.

. помогите плиз. спасибо

postavkin добавил 28.04.2009 в 17:28

Maxouni:
Перменные объявленные в скрипте не сохраняются, при загрузке другого или переходе на другую страницу. Для таких случаев используется суперглобальные массивы $_GET. В ссылке на страницу товаров добавть к пути ?cat=1(2 и 3 соответственно для других ссылок),

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

Maxouni
На сайте с 18.11.2008
Offline
119
#5

Тогда действительно тебе только сессиями. Что каксается ошибки, смотреть код надо, найми кодера и не парься))

M
На сайте с 23.01.2009
Offline
12
#6

Тип:

Общие предупреждение (E_WARNING)

Возможные причины:

- Перед функцией session_start() был допущен вывод в браузер, каких либо данных.

Пример:


здесь возможно находиться дынные, возможно даже пробелы, которых не видно
<?php
session_start()
...
?>


Пример:
<?php
echo 'hello'; <<< неверная запись, возовет предупреждение
session_start();
?>

Решение:

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

написание скриптов... icq 377816882
P
На сайте с 06.01.2009
Offline
601
#7

для modobaks

да я просто не пойму

1. строку

session_start();

именно так и вставить или ещё какие нмить кавычки нужны?

2. в какое место, перед head после него или где

R.Major
На сайте с 23.03.2008
Offline
25
#8
postavkin:
для modobaks

да я просто не пойму
1. строку
session_start();
именно так и вставить или ещё какие нмить кавычки нужны?
2. в какое место, перед head после него или где

Именно так и вставить в САМОЕ начало файла.

syrpo
На сайте с 20.03.2009
Offline
104
#9

обычные переменные используются только внутри одного блока <?php ?>

чтобы она была доступна во всем сайте можно либо объявить ее как глобальную либо воспользоваться сессиями.

либо на каждом разделе, откуда идет переход, передавай переменную методом get, например

text.php?a=1 для первого раздела итд. а на странице text.php вывода статьи лови $a=$_GET[a];

adrin02
На сайте с 12.04.2006
Offline
85
#10
R.Major:
Именно так и вставить в САМОЕ начало файла.

session_start();

и перед скобками открытия <?php не должно быть пробелов или пустых строк.

Так:

<?php session_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Хостинг изображений (http://likepic.net) SpeedTest (http://speed-tester.info)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий