Господа, странная ситуация. Приведу код. На Денвере он работает. На реальном сервере переменная $_Session["x"] устанавливается равной первому значению в базе данных то есть тому первому которое мы выбираем и не меняется, даже если мы само это значение из базы удаляем.
<?session_start(); //Файл изменения новостей
if ($_SESSION["f"]!=="12sadasd12aad11asqsq" ) //Проверка авторизован ли пользователь
{
echo "<font color=#ff0000><b>Доступ до страницы запрещен, пожалуйста авторизуйтесь</b></font><br>";
echo "<a href=authorizeform.php>Перейти на страницу авторизации</a>";
}
else
{
include("config.php"); // Подключение к базе данных
echo "<font color=#000080><b>Изменить новость</b></font>";
$x=$_POST["mod"] ; // Считывание значения скрытого поля: оно используется для определения какая кнопка нажата
if($x==1) //Если нажата кнопка 1. То тогда идет выбор новости по номеру и помещение выбранной новости в текстовую эрию
{
$num=trim($_POST["num"]);
$_SESSION["x"]=$num; // ВАЖНО. После нажатия кнопки 2 переменная $num, означающая номер новости обнуляется, поэтому она записывается в сессию и затем используется
$qur="select news from news where id='$num'"; // Выбирается новость с номером введенным в поле номера выбора новости которую нужно изменить
$ent=mysql_query($qur,$cn);
$new=mysql_fetch_array($ent); // Считывается значение новости именно элемент массива этой переменной является значением текстовой эрии
}
elseif ($x==2)
{
$num2=$_SESSION["x"]; // считывается значение переменной сессии, означающей номер новости
echo "$num2";
$cho=trim($_POST["cho"]);
$entup="UPDATE news SET news='$cho' where ID=$num2"; // Обновляется новость с выбранным значением
mysql_query($entup,$cn);
}
}
?>
<form action="cheng.php" method="post">
<input type="text" name="num" size="40" maxlength="256"> <br>
<input type="hidden" name="mod" value="1">
<input type="submit" value="Выберите номер новости"> <br>
</form>
<form action="cheng.php" method="post">
<textarea name="cho" cols="30" rows="5">
<?echo"$new[news]";?>
</textarea>
<input type="hidden" name="mod" value="2"> <br>
<input type="submit" value="Изменить новость"> <br>
<a href="main.php">Перейти на главную страницу админ панели</a>
</form>
<? include("shownews.php");?>
1. leo - 24 Августа, 2008 - 18:01:45 - перейти к сообщению
2. pifon1989 - 24 Августа, 2008 - 19:07:24 - перейти к сообщению
leo пишет:
Господа, странная ситуация. Приведу код. На Денвере он работает. На реальном сервере переменная $_Session["x"] устанавливается равной первому значению в базе данных то есть тому первому которое мы выбираем и не меняется, даже если мы само это значение из базы удаляем.
А чего требуется то?
![Улыбка Улыбка](./im/emoticons/smile24.gif)
Чесслово, выглядит так, словно ты просто типо по приколу написал, что б все с серьёзными лицами посмотрели и призадумались о судьбе php-кодерства в условиях боёв в пересечённой местности html форм ;)
3. UA.ProG - 24 Августа, 2008 - 19:09:23 - перейти к сообщению
у тебя код немного трудно понимаеться...И где у тебя x применяеться чот не вижу выложу весь код
4. leo - 24 Августа, 2008 - 19:17:53 - перейти к сообщению
Этот код делает следующее. Мы вводим значение в тектстовое поле. Нажимаем кнопку. После нажатия текст новости с данным номером которое мы указали в текстовом поле, помещается в текстовую эрию. Мы редактируем этот код, и затем нажимаем кнопку и он обновляет запись в таблице. Переменная сессии $_SESSION["x"] хранит номер введенный в текстовое поле. После нажатия первой кнопки она обнуляется, поэтому она записана в сессию. Но вопрос решился - просто переименованием индекса ["x"], в чем было дело, понять все равно не могу. Всем спасибо. Но если кто-то захочет прокомментировать это, буду признателен.
5. pifon1989 - 24 Августа, 2008 - 20:55:27 - перейти к сообщению
Я не пойму, ты хочешь просто переменную $_SESSION["x"] удалить, чтобы использовать потом?
Т.е. убрать после добавления новости (она выполнила задачу для текущего момента, и нужна чтобы её использовать поздже, но уже с другим значением)?
И ты её юзаешь потом, спустя некоторое время, а оно, сабака, всё ещё прежнее?
Так, нет?
Т.е. убрать после добавления новости (она выполнила задачу для текущего момента, и нужна чтобы её использовать поздже, но уже с другим значением)?
И ты её юзаешь потом, спустя некоторое время, а оно, сабака, всё ещё прежнее?
Так, нет?
![Улыбка Улыбка](./im/emoticons/smile24.gif)
6. leo - 24 Августа, 2008 - 21:03:49 - перейти к сообщению
Нет. Здесь идея просто в том.Что в этой переменной хранится значение которое помещается в текстовое поле. Когда мы нажимаем первую кнопку то тогда сама эта переменная $num - обнуляет свое значение. Но нам нужно это значение. Поэтому оно записывается в пременную сессии и дальше считывается уже из нее. Оно считывается строкой: $num2=$_SESSION["x"]; это $num2 это то что было введено в текстовое поле. Затем именно это значение используется при выполнении запроса на обновление - $entup="UPDATE news SET news='$cho' where ID=$num2"; Где '$cho это то что мы ввели в текстовую эрию..а $num2 это то что мы ввели в текстовое поле. Сессия просто передает значение этой переменной из одного фрагмента скрипта в другой.
7. pifon1989 - 24 Августа, 2008 - 21:29:20 - перейти к сообщению
leo пишет:
Нет. Здесь идея просто в том.Что в этой переменной хранится значение которое помещается в текстовое поле. Когда мы нажимаем первую кнопку то тогда сама эта переменная $num - обнуляет свое значение. Но нам нужно это значение. Поэтому оно записывается в пременную сессии и дальше считывается уже из нее. Оно считывается строкой: $num2=$_SESSION["x"]; это $num2 это то что было введено в текстовое поле. Затем именно это значение используется при выполнении запроса на обновление - $entup="UPDATE news SET news='$cho' where ID=$num2"; Где '$cho это то что мы ввели в текстовую эрию..а $num2 это то что мы ввели в текстовое поле. Сессия просто передает значение этой переменной из одного фрагмента скрипта в другой.
Блин... тебя это радует?
![Ха-ха Ха-ха](./im/emoticons/laugh24.gif)
Я хорошо понял принцип работы. В чём проблема то? Что не работает? Проблема может быть в чём угодно, даже в том, что у тебя MySQL запрос малость кривоват и переменные так внутри запроса не пишут вообще то.
Всё, что я могу понять из проблемы (а не из работы скрипта как таковой), у тебя возникает конфликт между элементом суперглобального массива $_SESSION и переменной $x, которые по сути вообще то одно и то же.
Вызов $_SESSION["x"] будет приравнян к вызову $x. Что
что
одно и то же.
Но, поскольку $_SESSION["x"] менять себя никому не позволит без присваивания вида