У меня есть к примеру две страницы(код одной ниже) С первой страницы я из формы методом POST посылаю на следующую страницу переменные: Код (Text): $_POST['Down'] $_POST['Up'] $_POST['Left'] $_POST['Right'] $_POST['resolution_litron'] Вот страница на которой я их получаю Код (Text): <!-- СКРИПТ ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ ИЗ ФОРМЫ В ПЕРЕМЕННУЮ --> <?php session_start(); // Старт сессии if($_POST['resolution_litron']){ $res_lit = $_POST['resolution_litron']; if($res_lit == '1') // Скрипт задания ширины и высоты ==> {$width = 615; $height = 460;} elseif($res_lit == '2') { $width = 700; $height = 500;} elseif($res_lit == '3') { $width = 600; $height = 416;} elseif($res_lit == '4') { $width = 540; $height = 520;} elseif($res_lit == '5') { $width = 610; $height = 430;} else echo "Значение не выбрано"; // <== Конец скрипт задания ширины и высоты $_SESSION['width'] = $width; // Запись значений в Сессию $_SESSION['height'] = $height; // Запись значений в Сессию unset($_POST['resolution_litron']); } else{ $width = $_SESSION['width']; $height = $_SESSION['height']; } ?> <!-- КОНЕЦ СКРИПТА ДЛЯ ЗАПИСИ ЗНАЧЕНИЯ ИЗ ФОРМЫ В ПЕРЕМЕННУЮ --> <html> <head> <title>LITRON-28</title> <link rel="stylesheet" type="text/css" href="index.css"> </head> <body> <!-- ФОРМА ДЛЯ ЕСЛИ НЕОБХОДИМО ИЗМЕНЕНИЯ ДЛЯ УСЛОВИЙ ПЕЧАТИ --> <form name="conditions" action="index.php" method="POST"> <table> <tr> <th>Условия печати</th> <th></th> <th></th> </tr> <tr> <th>Нижний отступ</th> <th><input type="text" name="Down" value="<?php if($_POST['Down']) { $_SESSION['down'] = $_POST['Down']; echo $_POST['Down']; unset($_POST['Down']); } elseif($_SESSION['down']) { echo $_SESSION['down']; } else echo 0;?>"/></th> <th>мм</th> </tr> <tr> <th>Верхний отступ</th> <th><input type="text" name="Up" value="<?php if($_POST['Up']) { $_SESSION['up'] = $_POST['Up']; echo $_POST['Up']; unset($_POST['Up']); } elseif($_SESSION['up']) { echo $_SESSION['up']; } else echo 0;?>"/></th> <th>мм</th> </tr> <tr> <th>Левый отступ</th> <th><input type="text" name="Left" value="<?php if($_POST['Left']) { $_SESSION['left'] = $_POST['Left']; echo $_POST['Left']; unset($_POST['Left']); } elseif($_SESSION['left']) { echo $_SESSION['left']; } else echo 0;?>"/></th> <th>мм</th> </tr> <tr> <th>Правый отступ</th> <th><input type="text" name="Right" value="<?php if($_POST['Right']) { $_SESSION['right'] = $_POST['Right']; echo $_POST['Right']; unset($_POST['Right']); } elseif($_SESSION['right']) { echo $_SESSION['right']; } else echo 0;?>"/></th> <th>мм</th> </tr> <tr> <th></th> <th><input type="submit" name="POST_1" value="ИЗМЕНИТЬ"></th> <th></th> </tr> </table> </form> <!-- КОНЕЦ ФОРМА ДЛЯ ЕСЛИ НЕОБХОДИМО ИЗМЕНЕНИЯ ДЛЯ УСЛОВИЙ ПЕЧАТИ --> <?php // Скрипт для формы "conditions" ==> $left = $_SESSION['left']; $right = $_SESSION['right']; $down = $_SESSION['down']; $up = $_SESSION['up']; // <== // Расчет печатного поля // ==> $width_field = $width - ( $left + $right ); $height_field = $height - ( $down + $up ); // <== // Конец расчет печатного поля // ==> ?> <!-- ВЫВОД ПЕЧАТНОГО ПОЛЯ --> <table> <tr> <th>Печатное поле, мм</th> <th><?php echo "$width_field x $height_field";?></th> </tr> </table> <!-- КОНЕЦ ВЫВОД ПЕЧАТНОГО ПОЛЯ --> </body> </html> И проблема в том что при нажатии на кнопку изменить, происходит расчет всех остальных параметров только почему то это можно сделать всего несколько раз дальше система почему то ломается и куда то пропадают переменные $width и $height ? Перегрузка ПК только помогает. И еще один вопрос на какую страницу разместить? Код (Text): session_start(); Ну как я понял работу сессий. У меня при переходе на эту страницу $_POST['resolution_litron'] существует и к примеру он равен 1 то есть получается : Код (Text): $width = 615; $height = 460; Их помещаю в сессию. А само значение $_POST['resolution_litron'] удаляю. То есть после перезагрузки страницы при помощи кнопки изменить, я помещаю эти значения из сессии в переменные.
Ок, а как тогда при обновлении страницы новую сессию не создавать, а продолжить работать с существующей? И как решить описанную проблему?
ты видимо не понимаешь как работает механизм сессий php. http://ru2.php.%6eet/manual/ru/book.session.php основа всего — сессионная кука, которую скрипт однажды выставляет, а браузер запоминает и отсылает вместе с новыми запросами. пока значение этой куки неизменно, php идентифицирует "текущую сессию". кука выставляется в особом заголовке (header), а заголовок можно выставить только тогда, когда еще не было никакого вывода — ни echo ни "простого текста до <?php" — это тоже команда вывода, на самом деле. убери нафиг <!-- --> до команды start_session() !!! Добавлено спустя 1 минуту 29 секунд: и вообще включи вывод ошибок и предупреждений И НЕ ИГНОРИРУЙ ИХ. каждый Warning это ценная подсказка тебе о твоих проблемах. http://phpfaq.ru/debug
Если ты используешь сессии т.е. твой проект предполагает повсеместное использование сессий, то вставляй этот код во все файлы, в самое начало. Перезапустить сессию не возможно, если ее нет, то она запустится, если она есть то запуск новой будет пропущен (грубо говоря так).
Эхехе. И что это даст? Ну вот инклудит он 30 файлов. Надо 30 раз сессию дернуть? Сессия должна отрабатывать только в точке входа.
Я забыл дописать - "что бы наверняка" PS мы не знаем структуру его проекта, если там единая точка входа тогда в самом начале этой точки, а раз не дает точной информации и не читает описание функции, пускай ставить везде.